import { Connection } from './connection';
import { DesigKeypair } from './keypair';
import type { ExtendedApprovalEntity, ExtendedProposalEntity, PaginationParams } from './types';
export declare class Proposal extends Connection {
    constructor(cluster: string, privkey: string, keypair: DesigKeypair);
    static deriveProposalId: (multisigId: string, msg: Uint8Array) => string;
    static deriveApprovalId(proposalId: string, signerId: string): string;
    watch: (callback: (approvalId: string, er?: string) => void) => () => void;
    getProposals: (chainId: string, { size, after }?: Partial<PaginationParams>) => Promise<ExtendedProposalEntity[]>;
    getProposal: (proposalId: string) => Promise<ExtendedProposalEntity>;
    getApproval: (approvalId: string) => Promise<ExtendedApprovalEntity>;
    initializeProposal: ({ raw, msg, chainId, ttl, }: {
        raw: Uint8Array;
        msg: Uint8Array;
        chainId: string;
        ttl?: number;
    }) => Promise<import("./types").ProposalEntity & {
        multisig: import("./types").MultisigEntity;
        approvals: (import("./types").ApprovalEntity & {
            signer: Omit<import("./types").SignerEntity, "encryptedShare">;
        })[];
    }>;
    approveProposal: (proposalId: string) => Promise<import("./types").ApprovalEntity & {
        proposal: import("./types").ProposalEntity;
        signer: Omit<import("./types").SignerEntity, "encryptedShare">;
    }>;
    private approveEd25519Proposal;
    private approveSecp256k1Proposal;
    updateTxHash: (proposalId: string, txHash: string) => Promise<import("./types").ProposalEntity & {
        multisig: import("./types").MultisigEntity;
        approvals: (import("./types").ApprovalEntity & {
            signer: Omit<import("./types").SignerEntity, "encryptedShare">;
        })[];
    }>;
    finalizeSignature: (proposalId: string) => Promise<{
        sig: Uint8Array;
        recv?: number;
    }>;
    verifySignature: (id: string, signature: Uint8Array) => Promise<boolean>;
}
