/// import { EventEmitter } from "events"; export declare const MSG_RESOLVE = "resolve"; export declare const MSG_REJECT = "reject"; export declare const MSG_ERROR = "error"; export interface Listener { (event: T): any; } export interface Disposable { dispose(): void; } export interface Transaction { id: number; htimeout?: any; resolve(result: any): void; reject(error: string): void; } export declare enum MessageType { signal = 0, rpc = 1, internal = 2, } export interface Dispatcher { (message: Message, transfer?: Array): boolean; } export interface Message { type: MessageType; name: string; id?: number; payload?: any; } export interface ProviderOptions { dispatch?: Dispatcher; timeout?: number; } export declare class Provider extends EventEmitter { private _nextId; private _methods; private _pendings; protected _dispatch?: Dispatcher; protected _timeout: number; constructor(dispatch?: Dispatcher); constructor(options?: ProviderOptions); protected dispatch(message: Message): boolean; method(name: string, definition: any): void; methods(methods: { [name: string]: any; }): this; hasMethod(name: string): boolean; removeMethod(name: string): void; listen(event: string, listener: Listener): Disposable; off(event: string, listener: Listener): void; call(name: string, params: any): Promise; handle(message: Message): boolean; request(method: string, params?: T, options?: any | number): Promise; signal(name: string, payload?: any): boolean; private _raiseError(error); private _handleSignal(message); private _handelRequest(message); private _handleInternal(message); private _handleTimeout(transaction); private _clearTransaction(transaction); }