/// /// /// /// /// /// /// /// /// /// import rx = require('rx'); import stream = require('stream'); import apihandler = require('apihandler'); export interface IRPC { getUser(): any | undefined; call(name: string, params?: any): rx.Observable; accept(name: string, service: any): this; open(): void; on(event: string, listener: Function): this; emit(event: string | symbol, ...args: any[]): boolean; } export interface IAuth { handshake(): Buffer; accept(buffer: Buffer): rx.Observable>; } export interface Options { name: string; auth: IAuth; duplex: stream.Duplex; loader?: apihandler.ILoader; timeout?: number; } export declare class Peer implements IRPC { private options; private user?; private idgen; private context; private pending; private streamBuffer; private recvBuffer; private timer; private state; private emitter; constructor(options: Options); getUser(): any | undefined; on(event: string, listener: Function): this; emit(event: string | symbol, ...args: any[]): boolean; open(): void; close(): void; call(name: string, params?: any): rx.Observable; accept(name: string, service: any): this; private init(); private handleTimeout(); private handlshake(); private onResponse(data); private handleRequest(code, data); private handleResponse(code, data); private handleAuth(code, data); private handleAuthResp(code, data); private onData(code, data); }