UNPKG

923 BPlain TextView Raw
1import {EventInterface} from 'microevent.ts';
2
3interface 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
23module 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
35export default RpcProviderInterface;