import { Observable } from 'rxjs'; import { RPCData } from './rpc-call'; import { IRPCDefinition } from './rpc-definition'; import { RPCMethod } from './rpc-method-decorator'; export declare type RPCPeerType = { [TName in TLocalDefinition['name']]: RPCMethod>; }; export interface IRPCAdapter { incoming$: Observable; connect$: Observable; send(outgoing: RPCData): Promise; } export declare class RPCPeer { private adapter; private requestHandlersMap; private incomingSubscription; constructor(adapter: IRPCAdapter); call(name: TName, ...args: Extract['args']): Promise['return']>; dispose(): void; private onIncoming; private handleRequest; private _handleRequest; private handleResponse; private callLocalMethod; }