import { DepositContext, DepositData, DepositState, OracleTxStatus, Network, AgentSession, RegisterRequest, CommitRequest, DepositDigest } from '../types/index.js';
export declare function create_deposit(created_at: number, request: RegisterRequest, session: AgentSession, state: DepositState): DepositData;
export declare function create_deposit_digest(deposit: DepositData): Promise<DepositDigest>;
export declare function update_deposit(data: DepositData, digest: DepositDigest): Promise<(({
    value: number;
    status: "reserved" | "pending" | "stale" | "open" | "locked" | "spent" | "settled" | "expired" | "error";
    created_at: number;
    txid: string;
    vout: number;
    scriptkey: string;
    agent_id: string;
    agent_pk: string;
    deposit_pk: string;
    sequence: number;
    spend_xpub: string;
    covenant: {
        cid: string;
        pnonce: string;
        psigs: [string, string][];
    } | null;
    updated_at: number;
    agent_pn: string;
    dpid: string;
    return_psig: string | null;
} & ({
    confirmed: true;
    block_hash: string;
    block_height: number;
    block_time: number;
    expires_at: number;
} | {
    confirmed: false;
    block_hash: null;
    block_height: null;
    block_time: null;
    expires_at: null;
})) & ({
    spent: true;
    spent_at: number;
    spent_txid: string;
} | {
    spent: false;
    spent_at: null;
    spent_txid: null;
})) & ({
    settled: true;
    settled_at: number;
} | {
    settled: false;
    settled_at: null;
})>;
export declare function get_deposit_ctx(agent_pk: string, deposit_pk: string, return_pk: string, sequence: number): DepositContext;
export declare function get_deposit_id(created_at: number, request: RegisterRequest | CommitRequest): string;
export declare function get_deposit_address(context: DepositContext, network?: Network): string;
export declare function get_spend_state(sequence: number, txstatus: OracleTxStatus): DepositState;
export declare function get_ext_pubkey(xpub: string): string;
export declare function get_close_tx_template(txfee: number, value: number, xpub: string): string;
