TeaSpeak-Client/imports/shared-app/ipc/MethodProxy.d.ts

47 lines
1.4 KiB
TypeScript

import { BasicIPCHandler } from "../ipc/BrowserIPC";
export interface MethodProxyInvokeData {
method_name: string;
arguments: any[];
promise_id: string;
}
export interface MethodProxyResultData {
promise_id: string;
result: any;
success: boolean;
}
export interface MethodProxyCallback {
promise: Promise<any>;
promise_id: string;
resolve: (object: any) => any;
reject: (object: any) => any;
}
export declare type MethodProxyConnectParameters = {
channel_id: string;
client_id: string;
};
export declare abstract class MethodProxy {
readonly ipc_handler: BasicIPCHandler;
private _ipc_channel;
private _ipc_parameters;
private readonly _local;
private readonly _slave;
private _connected;
private _proxied_methods;
private _proxied_callbacks;
protected constructor(ipc_handler: BasicIPCHandler, connect_params?: MethodProxyConnectParameters);
protected setup(): void;
protected finalize(): void;
protected register_method<R>(method: (...args: any[]) => Promise<R> | string): void;
private _handle_message;
private _handle_finalize;
private _handle_remote_callback;
private _send_result;
private _handle_invoke;
private _handle_result;
generate_connect_parameters(): MethodProxyConnectParameters;
is_slave(): boolean;
is_master(): boolean;
protected abstract on_connected(): any;
protected abstract on_disconnected(): any;
}