type callModule = typeof import("libkmodule").callModule; type connectModule = typeof import("libkmodule").connectModule; type logErr = typeof import("libkmodule").logErr; type log = typeof import("libkmodule").log; import type { ErrTuple, DataFn } from "@siaweb/libweb"; import EventEmitter from "eventemitter2"; type callModuleBound = (method: string, data?: any) => Promise; type connectModuleBound = (method: string, data: any, receiveUpdate: DataFn) => [sendUpdate: DataFn, response: Promise]; declare let callModule: callModule; declare let connectModule: connectModule; declare let log: log; declare let logErr: logErr; export interface ModuleBag { callModule: callModule; connectModule: connectModule; log: log; logErr: logErr; } export interface ModuleBagBound extends ModuleBag { callModule: callModuleBound; connectModule: connectModuleBound; } export declare abstract class Client extends EventEmitter { private _callModule?; get callModule(): callModuleBound; private _log?; get log(): log; private _logErr?; get logErr(): logErr; private _connectModule?; get connectModule(): connectModuleBound; loadLibs(module: string): Promise; loadBound(module: string): Promise; protected handleError(ret: ErrTuple): void; protected handleErrorOrReturn(ret: ErrTuple): any; protected callModuleReturn(method: string, data?: any): Promise; } export declare function load(module?: string): Promise; type ClientConstructor = new (...args: any[]) => U; export declare const factory: (type: ClientConstructor, module: string) => (...args: any) => T; export declare function maybeGetAsyncProperty(object: any): Promise; export declare function isPromise(obj: Promise): boolean; export {}; //# sourceMappingURL=index.d.ts.map