export declare type ChannelHandler = (event: ChannelEvent) => void; export interface ChannelTransport { send(event: ChannelEvent, options?: any): void; setHandler(handler: ChannelHandler): void; } export interface ChannelEvent { type: string; from: string; args: any[]; } export interface Listener { (...args: any[]): void; } interface ChannelArgs { transport?: ChannelTransport; async?: boolean; } export declare class Channel { readonly isAsync: boolean; private sender; private events; private data; private readonly transport; constructor({ transport, async }?: ChannelArgs); readonly hasTransport: boolean; addListener(eventName: string, listener: Listener): void; addPeerListener: (eventName: string, listener: Listener) => void; emit(eventName: string, ...args: any): void; last(eventName: string): any; eventNames(): string[]; listenerCount(eventName: string): number; listeners(eventName: string): Listener[] | undefined; once(eventName: string, listener: Listener): void; removeAllListeners(eventName?: string): void; removeListener(eventName: string, listener: Listener): void; on(eventName: string, listener: Listener): void; off(eventName: string, listener: Listener): void; private handleEvent; private onceListener; } export default Channel;