UNPKG

1.33 kBTypeScriptView Raw
1type ChannelHandler = (event: ChannelEvent) => void;
2interface ChannelTransport {
3 send(event: ChannelEvent, options?: any): void;
4 setHandler(handler: ChannelHandler): void;
5}
6interface ChannelEvent {
7 type: string;
8 from: string;
9 args: any[];
10}
11interface Listener {
12 (...args: any[]): void;
13}
14interface ChannelArgs {
15 transport?: ChannelTransport;
16 async?: boolean;
17}
18declare class Channel {
19 readonly isAsync: boolean;
20 private sender;
21 private events;
22 private data;
23 private readonly transport;
24 constructor({ transport, async }?: ChannelArgs);
25 get hasTransport(): boolean;
26 addListener(eventName: string, listener: Listener): void;
27 emit(eventName: string, ...args: any): void;
28 last(eventName: string): any;
29 eventNames(): string[];
30 listenerCount(eventName: string): number;
31 listeners(eventName: string): Listener[] | undefined;
32 once(eventName: string, listener: Listener): void;
33 removeAllListeners(eventName?: string): void;
34 removeListener(eventName: string, listener: Listener): void;
35 on(eventName: string, listener: Listener): void;
36 off(eventName: string, listener: Listener): void;
37 private handleEvent;
38 private onceListener;
39}
40
41export { Channel, ChannelEvent, ChannelHandler, ChannelTransport, Listener, Channel as default };