import EventEmitter from "eventemitter3"; import { ChannelRpcMethod, EngineEvent, EngineEventMap, IVectorEngine, EngineParams } from "@connext/vector-types"; export declare function isEventName(event: string): event is EngineEvent; export declare function isMethodName(event: string): event is ChannelRpcMethod; export interface IframeOptions { id: string; src: string; } export declare function renderElement(name: string, attr: any, target: HTMLElement): HTMLElement; export interface IRpcChannelProvider { connected: boolean; send(payload: EngineParams.RpcRequest): Promise; open(): Promise; close(): Promise; on(event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean): void; once(event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean): void; } export declare class IframeChannelProvider extends EventEmitter implements IRpcChannelProvider { private readonly opts; iframe: HTMLIFrameElement | undefined; connected: boolean; private subscribed; private events; private constructor(); static connect(opts: IframeOptions): Promise; open(): Promise; close(): Promise; send(rpc: EngineParams.RpcRequest): Promise; on(event: string | ChannelRpcMethod | EngineEvent, listener: (...args: any[]) => void): any; once(event: string | ChannelRpcMethod | EngineEvent, listener: (...args: any[]) => void): any; removeAllListeners: () => any; exists(): boolean; render(): Promise; unrender(): Promise; handleIncomingMessages(e: MessageEvent): void; subscribe(): void; unsubscribe(): void; private onConnect; private onDisconnect; } export declare class DirectProvider implements IRpcChannelProvider { private readonly engine; connected: boolean; constructor(engine: IVectorEngine); send(payload: EngineParams.RpcRequest): Promise; open(): Promise; close(): Promise; on(event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean): void; once(event: T, callback: (payload: EngineEventMap[T]) => void | Promise, filter?: (payload: EngineEventMap[T]) => boolean): void; } //# sourceMappingURL=channelProvider.d.ts.map