UNPKG

data-transport

Version:
59 lines 2.3 kB
import { callbackKey } from '../constant'; import type { BaseInteraction, SendOptions, TransportOptions } from '../interface'; import { Transport } from '../transport'; type Browser = typeof global.browser | typeof global.chrome; type Port = browser.runtime.Port | chrome.runtime.Port; interface SendResponse { _sendResponse?: (response?: SendOptions<SendResponse>) => void; } export interface BrowserExtensionsGenericTransportOptions extends Partial<TransportOptions<SendResponse>> { /** * browser extension API. */ browser?: Browser; } export interface BrowserExtensionsMainTransportOptions extends Partial<TransportOptions<BrowserExtensionsMainPort>> { /** * browser extension API. */ browser?: Browser; } export interface BrowserExtensionsClientTransportOptions extends Partial<TransportOptions> { /** * browser extension API. */ browser?: Browser; /** * browser extension client port. */ port?: Port; } interface BrowserExtensionsMainPort { _port?: Port; } type ClientCallback = () => void | Promise<void>; type MainCallback = (clientId: string) => void | Promise<void>; export declare abstract class BrowserExtensionsGenericTransport<T extends BaseInteraction = any> extends Transport<T> { private [callbackKey]; constructor(_options?: BrowserExtensionsGenericTransportOptions); } export declare abstract class BrowserExtensionsMainTransport<T extends BaseInteraction = any> extends Transport<T> { protected ports: Map<string, Port>; private [callbackKey]; constructor(_options?: BrowserExtensionsMainTransportOptions); private _onConnectCallback; onConnect(callback: MainCallback): () => void; private _onDisconnectCallback; onDisconnect(callback: MainCallback): () => void; } export declare abstract class BrowserExtensionsClientTransport<T extends BaseInteraction = any> extends Transport<T> { constructor(_options?: BrowserExtensionsClientTransportOptions); private _onConnectCallback; onConnect(callback: ClientCallback): () => void; } export declare const BrowserExtensionsTransport: { Main: typeof BrowserExtensionsMainTransport; Client: typeof BrowserExtensionsClientTransport; }; export {}; //# sourceMappingURL=browserExtensionsTransport.d.ts.map