import { IUser } from "./user"; export type txfn = (data: (string | IRemoteData)) => Promise | void; export interface IConnection { id: string; remoteDeviceId: string; lastAck: number; handlers: { [key: string]: ((err: any, result: any) => void); }; send: txfn; close: () => void; closed?: true; me?: IUser; remoteUser?: IUser; remoteUserVerified?: boolean; groups?: string[]; pingMS?: number; } export interface IRemoteData { type: 'call' | 'response' | 'chunk'; id: string; } export interface IRemoteCall extends IRemoteData { type: 'call'; fnName: string; args: any[]; } export interface IRemoteResponse extends IRemoteData { type: 'response'; result?: any; error?: any; } export interface IRemoteChunk extends IRemoteData { type: 'chunk'; iChunk: number; totalChunks: number; chunk: string; } export declare function ping(...args: any[]): Promise; export declare function testError(msg: string): Promise; export declare function verifyRemoteUser(connection: IConnection): Promise; export declare function setRemotelyCallableFunction(fn: Function, name?: string): void; export declare function RPC(connection: IConnection, fn: T): T; export declare const RPC_TIMEOUT_MS = 15000; export declare function makeRemoteCall(connection: IConnection, fnName: string, args: any[]): Promise; export declare const getCurrentConnection: () => IConnection; export declare function onRemoteMessage(connection: IConnection, message: string | IRemoteData): void;