import type { InitResponse } from '../../proto/api.ts';
import type { IAttestorClient, IAttestorClientCreateOpts, RPCRequestData, RPCResponseData, RPCType } from '../../types/index.ts';
import { AttestorSocket } from '../../utils/socket-base.ts';
export declare class AttestorClient extends AttestorSocket implements IAttestorClient {
    private waitForInitPromise;
    initResponse?: InitResponse;
    constructor({ url, initMessages, signatureType, logger, authRequest, makeWebSocket }: IAttestorClientCreateOpts);
    rpc<T extends RPCType>(type: T, request: Partial<RPCRequestData<T>>, timeoutMs?: number): Promise<Exclude<import("../../proto/api.ts").RPCMessage[`${T}Response`], undefined>>;
    waitForResponse<T extends RPCType>(id: number, timeoutMs?: number): Promise<RPCResponseData<T>>;
    waitForInit: () => Promise<void>;
}
