1 | type ChannelHandler = (event: ChannelEvent) => void;
|
2 | interface ChannelTransport {
|
3 | send(event: ChannelEvent, options?: any): void;
|
4 | setHandler(handler: ChannelHandler): void;
|
5 | }
|
6 | interface ChannelEvent {
|
7 | type: string;
|
8 | from: string;
|
9 | args: any[];
|
10 | }
|
11 | interface Listener {
|
12 | (...args: any[]): void;
|
13 | }
|
14 | interface ChannelArgs {
|
15 | transport?: ChannelTransport;
|
16 | async?: boolean;
|
17 | }
|
18 | declare 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 |
|
41 | export { Channel, ChannelEvent, ChannelHandler, ChannelTransport, Listener, Channel as default };
|