1 | import {EventInterface} from 'microevent.ts';
|
2 |
|
3 | interface RpcProviderInterface {
|
4 |
|
5 | dispatch(message: any): void;
|
6 |
|
7 | rpc<T, U>(id: string, payload?: T, transfer?: Array<any>): Promise<U>;
|
8 |
|
9 | signal<T>(id: string, payload?: T, transfer?: Array<any>): this;
|
10 |
|
11 | registerRpcHandler<T, U>(id: string, handler: RpcProviderInterface.RpcHandler<T, U>): this;
|
12 |
|
13 | registerSignalHandler<T>(id: string, handler: RpcProviderInterface.SignalHandler<T>): this;
|
14 |
|
15 | deregisterRpcHandler<T, U>(id: string, handler: RpcProviderInterface.RpcHandler<T, U>): this;
|
16 |
|
17 | deregisterSignalHandler<T>(id: string, handler: RpcProviderInterface.SignalHandler<T>): this;
|
18 |
|
19 | error: EventInterface<Error>;
|
20 |
|
21 | }
|
22 |
|
23 | module RpcProviderInterface {
|
24 |
|
25 | export interface RpcHandler<T, U> {
|
26 | (payload?: T): Promise<U>|U;
|
27 | }
|
28 |
|
29 | export interface SignalHandler<T> {
|
30 | (payload?: T): void;
|
31 | }
|
32 |
|
33 | }
|
34 |
|
35 | export default RpcProviderInterface;
|