import { ClientConfig, FetchConfig } from '../../client/types.js';
type Resolver = ReturnType<typeof get_fetcher>;
export declare class EscrowClient {
    readonly _fetcher: Resolver;
    readonly _host: string;
    readonly _oracle: string;
    constructor(config: ClientConfig);
    get fetcher(): <T>(config: FetchConfig) => Promise<import("../../index.js").ApiResponse<T>>;
    get host(): string;
    contract: {
        create: (proposal: import("../../index.js").ProposalData | import("./proposal.js").EscrowProposal, signatures?: string[] | undefined) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").ContractDataResponse>>;
        funds: (cid: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").DepositListResponse>>;
        list: (token: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").ContractListResponse>>;
        read: (cid: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").ContractDataResponse>>;
        submit: (cid: string, witness: import("../../index.js").WitnessData) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").ContractDataResponse>>;
        witness: (cid: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").WitnessListResponse>>;
    };
    deposit: {
        close: (req: import("../../index.js").ReturnData) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").DepositDataResponse>>;
        commit: (dpid: string, covenant: import("../../index.js").CovenantData) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").FundingDataResponse>>;
        fund: (agent_id: string, return_tx: string, covenant: import("../../index.js").CovenantData) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").FundingDataResponse>>;
        list: (token: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").DepositListResponse>>;
        read: (dpid: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").DepositDataResponse>>;
        register: (agent_id: string, return_tx: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").DepositDataResponse>>;
        request: (req: import("../../index.js").DepositRequest) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").AccountDataResponse>>;
    };
    oracle: {
        broadcast_tx: (txhex: string) => Promise<import("../../index.js").ApiResponse<string>>;
        fee_estimates: () => Promise<import("../../index.js").OracleFeeEstimate>;
        get_fee_target: (target: number) => Promise<number>;
        get_tx_data: (txid: string) => Promise<import("../../index.js").OracleTxData | null>;
        get_spend_out: (query: import("../../index.js").OracleQuery) => Promise<import("../../index.js").OracleSpendData | null>;
    };
    witness: {
        read: (wid: string) => Promise<import("../../index.js").ApiResponse<import("../../client/types.js").WitnessDataResponse>>;
    };
    toJSON(): {
        host: string;
    };
    toString(): string;
}
export declare function get_fetcher(fetcher: typeof fetch): <T>(config: FetchConfig) => Promise<import("../../index.js").ApiResponse<T>>;
export {};
