import { ClientModule, ClientConfig, DebotModule } from "./modules";
import { BinaryLibrary, ResponseHandler } from "./bin";
import { DebotClientError } from "./errors";
export declare class DebotClient {
    private static _defaultConfig;
    private static _default;
    static set default(client: DebotClient);
    static get default(): DebotClient;
    static set defaultConfig(config: ClientConfig);
    static get defaultConfig(): ClientConfig;
    readonly client: ClientModule;
    readonly debot: DebotModule;
    private readonly config;
    private context;
    private contextCreation;
    private contextError;
    constructor(config?: ClientConfig);
    static useBinaryLibrary(loader: () => Promise<BinaryLibrary>): void;
    static toKey(d: string): string;
    static toHash64(d: string): string;
    static toHash128(d: string): string;
    static toHash256(d: string): string;
    static toHash512(d: string): string;
    static toHex(dec: string, bits?: number): string;
    close(): void;
    resolveError(functionName: string, params: any, err: DebotClientError): Promise<DebotClientError>;
    resolveErrorSync(functionName: string, params: any, err: DebotClientError): DebotClientError;
    private resolveApiError;
    private getClientConfig;
    private contextRequiredSync;
    private contextRequired;
    request(functionName: string, functionParams: any, responseHandler?: ResponseHandler): Promise<any>;
    requestSync(functionName: string, functionParams: any): any;
    resolve_app_request(app_request_id: number | null, result: any): Promise<void>;
    reject_app_request(app_request_id: number | null, error: any): Promise<void>;
}
//# sourceMappingURL=client.d.ts.map