import { IFrameMainTransportOptions, IFrameTransportInternalOptions, ElectronMainTransportOptions, ElectronRendererTransportOptions, ServiceWorkerClientTransportOptions, ServiceWorkerServiceTransportOptions, WorkerMainTransportOptions, WorkerInternalTransportOptions, WebRTCTransport, WebRTCTransportOptions, BroadcastTransport, BroadcastTransportOptions, BrowserExtensionsMainTransport, BrowserExtensionsMainTransportOptions, BrowserExtensionsClientTransport, BrowserExtensionsClientTransportOptions, BrowserExtensionsGenericTransport, BrowserExtensionsGenericTransportOptions, SharedWorkerInternalTransportOptions, SharedWorkerClientTransportOptions, MessageTransport, MessageTransportOptions, IFrameMainTransport, IFrameInternalTransport, ElectronMainTransport, ElectronRendererTransport, ServiceWorkerClientTransport, ServiceWorkerServiceTransport, WorkerInternalTransport, WorkerMainTransport, SharedWorkerClientTransport, SharedWorkerInternalTransport, MainProcessTransport, ChildProcessTransport, MainProcessTransportOptions, ChildProcessTransportOptions } from './transports';
import { Transport } from './transport';
import type { TransportOptions } from './interface';
export interface TransportOptionsMap {
    IFrameMain: IFrameMainTransportOptions;
    IFrameInternal: IFrameTransportInternalOptions;
    BrowserExtensions: BrowserExtensionsGenericTransportOptions;
    BrowserExtensionsMain: BrowserExtensionsMainTransportOptions;
    BrowserExtensionsClient: BrowserExtensionsClientTransportOptions;
    ElectronMain: ElectronMainTransportOptions;
    ElectronRenderer: ElectronRendererTransportOptions;
    ServiceWorkerClient: ServiceWorkerClientTransportOptions;
    ServiceWorkerService: ServiceWorkerServiceTransportOptions;
    WebWorkerClient: WorkerMainTransportOptions;
    WebWorkerInternal: WorkerInternalTransportOptions;
    WebRTC: WebRTCTransportOptions;
    Broadcast: BroadcastTransportOptions;
    SharedWorkerClient: SharedWorkerClientTransportOptions;
    SharedWorkerInternal: SharedWorkerInternalTransportOptions;
    Base: TransportOptions;
    MessageTransport: MessageTransportOptions;
    MainProcess: MainProcessTransportOptions;
    ChildProcess: ChildProcessTransportOptions;
}
export interface Transports {
    Base: Transport;
    MessageTransport: MessageTransport;
    IFrameMain: IFrameMainTransport;
    IFrameInternal: IFrameInternalTransport;
    SharedWorkerClient: SharedWorkerClientTransport;
    SharedWorkerInternal: SharedWorkerInternalTransport;
    ServiceWorkerClient: ServiceWorkerClientTransport;
    ServiceWorkerService: ServiceWorkerServiceTransport;
    WebWorkerClient: WorkerMainTransport;
    WebWorkerInternal: WorkerInternalTransport;
    BrowserExtensions: BrowserExtensionsGenericTransport;
    BrowserExtensionsMain: BrowserExtensionsMainTransport;
    BrowserExtensionsClient: BrowserExtensionsClientTransport;
    ElectronMain: ElectronMainTransport;
    ElectronRenderer: ElectronRendererTransport;
    WebRTC: WebRTCTransport;
    Broadcast: BroadcastTransport;
    MainProcess: MainProcessTransport;
    ChildProcess: ChildProcessTransport;
}
export declare const TransportMap: {
    Base: typeof Transport;
    MessageTransport: typeof MessageTransport;
    IFrameMain: typeof IFrameMainTransport;
    IFrameInternal: typeof IFrameInternalTransport;
    BrowserExtensions: typeof BrowserExtensionsGenericTransport;
    BrowserExtensionsMain: typeof BrowserExtensionsMainTransport;
    BrowserExtensionsClient: typeof BrowserExtensionsClientTransport;
    ElectronMain: typeof ElectronMainTransport;
    ElectronRenderer: typeof ElectronRendererTransport;
    ServiceWorkerClient: typeof ServiceWorkerClientTransport;
    ServiceWorkerService: typeof ServiceWorkerServiceTransport;
    WebWorkerClient: typeof WorkerMainTransport;
    WebWorkerInternal: typeof WorkerInternalTransport;
    WebRTC: typeof WebRTCTransport;
    Broadcast: typeof BroadcastTransport;
    SharedWorkerClient: typeof SharedWorkerClientTransport;
    SharedWorkerInternal: typeof SharedWorkerInternalTransport;
    MainProcess: typeof MainProcessTransport;
    ChildProcess: typeof ChildProcessTransport;
};
/**
 * Create a transport instance.
 *
 * @param name transport type name
 * @param options transport options
 *
 * @returns Return a transport instance.
 */
export declare const createTransport: <T extends keyof typeof TransportMap>(name: T, options: TransportOptionsMap[T]) => Transports[T];
//# sourceMappingURL=createTransport.d.ts.map