import { ABI, InitRequest, InitResponse, InitStateMachineRequest, InitStateMachineResponse, InitGenesisStateRequest, InitGenesisStateResponse, InsertAssetsRequest, InsertAssetsResponse, VerifyAssetsRequest, VerifyAssetsResponse, BeforeTransactionsExecuteRequest, BeforeTransactionsExecuteResponse, AfterTransactionsExecuteRequest, AfterTransactionsExecuteResponse, VerifyTransactionRequest, VerifyTransactionResponse, ExecuteTransactionRequest, ExecuteTransactionResponse, CommitRequest, CommitResponse, RevertRequest, RevertResponse, ClearRequest, ClearResponse, FinalizeRequest, FinalizeResponse, MetadataRequest, MetadataResponse, QueryRequest, QueryResponse, ProveRequest, ProveResponse } from '../abi';
import { Logger } from '../logger';
export declare class ABIClient implements ABI {
    private readonly _socketPath;
    private readonly _dealer;
    private readonly _logger;
    private _pendingRequests;
    private _globalID;
    constructor(logger: Logger, socketPath: string);
    start(): Promise<void>;
    stop(): void;
    init(req: InitRequest): Promise<InitResponse>;
    initStateMachine(req: InitStateMachineRequest): Promise<InitStateMachineResponse>;
    initGenesisState(req: InitGenesisStateRequest): Promise<InitGenesisStateResponse>;
    insertAssets(req: InsertAssetsRequest): Promise<InsertAssetsResponse>;
    verifyAssets(req: VerifyAssetsRequest): Promise<VerifyAssetsResponse>;
    beforeTransactionsExecute(req: BeforeTransactionsExecuteRequest): Promise<BeforeTransactionsExecuteResponse>;
    afterTransactionsExecute(req: AfterTransactionsExecuteRequest): Promise<AfterTransactionsExecuteResponse>;
    verifyTransaction(req: VerifyTransactionRequest): Promise<VerifyTransactionResponse>;
    executeTransaction(req: ExecuteTransactionRequest): Promise<ExecuteTransactionResponse>;
    commit(req: CommitRequest): Promise<CommitResponse>;
    revert(req: RevertRequest): Promise<RevertResponse>;
    clear(req: ClearRequest): Promise<ClearResponse>;
    finalize(req: FinalizeRequest): Promise<FinalizeResponse>;
    getMetadata(req: MetadataRequest): Promise<MetadataResponse>;
    query(req: QueryRequest): Promise<QueryResponse>;
    prove(req: ProveRequest): Promise<ProveResponse>;
    private _call;
    private _listenToRPCResponse;
}
