import type { ITransportAdapter } from './ITransportAdapter';
import type { ITransportRegistry } from './ITransportRegistry';
/**
 * Instance-based registry mapping scheme → ITransportAdapter.
 *
 * Expert Panel Decision (2024-12):
 * Converted from static singleton to instance-based for:
 * - Test isolation (each test gets own registry)
 * - Dependency injection (no ambient authority)
 * - Future distributed implementations
 *
 * Martin Fowler (PoEAA):
 *   "Registry pattern is fine. Global access is not."
 *
 * Mark Miller (Capability Security):
 *   "The registry is a capability. Pass it explicitly."
 *
 * Joe Armstrong (Erlang):
 *   "In Erlang, we'd pass the registry PID. No globals."
 */
export declare class TransportRegistry implements ITransportRegistry {
    private readonly adapters;
    register(scheme: string, adapter: ITransportAdapter): void;
    unregister(scheme: string): void;
    has(scheme: string): boolean;
    resolveByScheme(scheme: string): ITransportAdapter;
    clear(): void;
}
/**
 * Get the default registry instance.
 * For backwards compatibility during migration.
 *
 * @deprecated Inject TransportRegistry via runtime config instead
 */
export declare function getDefaultTransportRegistry(): TransportRegistry;
/**
 * Reset the default registry (for testing).
 *
 * @deprecated Create new TransportRegistry() instances for tests
 */
export declare function resetDefaultTransportRegistry(): void;
export declare namespace TransportRegistry {
    /** @deprecated Use instance method: new TransportRegistry().register() */
    function register(scheme: string, adapter: ITransportAdapter): void;
    /** @deprecated Use instance method */
    function unregister(scheme: string): void;
    /** @deprecated Use instance method */
    function has(scheme: string): boolean;
    /** @deprecated Use instance method */
    function resolveByScheme(scheme: string): ITransportAdapter;
}
//# sourceMappingURL=TransportRegistry.d.ts.map