import { ContractConfig, ContractData, ContractDigest, MemberData, PaymentEntry, ProposalData, SpendTemplate } from '../types/index.js';
export declare function create_contract(config: ContractConfig, members: MemberData[], terms: ProposalData, signatures?: string[]): ContractData;
export declare function create_contract_digest(contract: ContractData): Promise<ContractDigest>;
export declare function update_contract(data: ContractData, digest: ContractDigest): Promise<({
    pending: number;
    deadline: number;
    feerate: number;
    moderator: string | null;
    published: number;
    members: {
        pub: string;
        xpub: string;
        id: string;
        sig: string;
        pol?: string | undefined;
    }[];
    status: "funded" | "pending" | "spent" | "settled" | "expired" | "error" | "closed" | "published" | "secured" | "active" | "canceled";
    signatures: string[];
    terms: {
        network: "regtest" | "main" | "testnet" | "signet" | "mutiny";
        content: string;
        duration: number;
        paths: [string, number, string][];
        payments: [number, string][];
        programs: [string, string, string, ...(string | number | boolean | null)[]][];
        schedule: [number, string, string][];
        title: string;
        value: number;
        version: number;
        deadline?: number | undefined;
        effective?: number | undefined;
        fallback?: string | undefined;
        feerate?: number | undefined;
        moderator?: string | undefined;
    };
    expires_at: number | null;
    agent_id: string;
    agent_pk: string;
    cid: string;
    updated_at: number;
    agent_pn: string;
    activated: number | null;
    balance: number;
    est_txfee: number;
    est_txsize: number;
    total: number;
    txin_count: number;
    vm_state: {
        error: string | null;
        paths: [string, number][];
        programs: [string, string, string, string, ...(string | number | boolean | null)[]][];
        status: "init" | "open" | "disputed" | "closed";
        commits: [number, number, string, string, string, string][];
        head: string;
        output: string | null;
        start: number;
        steps: number;
        store: [string, string][];
        tasks: [number, string, string][];
        updated: number;
    } | null;
    agent_fee: [number, string];
    outputs: [string, string][];
    prop_id: string;
    pubkeys: string[];
    subtotal: number;
    vout_size: number;
} & ({
    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_contract_id(prop_id: string, published: number, templates: SpendTemplate[]): string;
export declare function activate_contract(contract: ContractData, activated?: number): ContractData;
export declare function get_max_vout_size(outputs: SpendTemplate[]): number;
export declare function get_spend_templates(proposal: ProposalData, fees: PaymentEntry[]): SpendTemplate[];
