import { SecretSharing } from '@desig/core';
import { Connection } from '../connection';
import { DesigKeypair } from '../keypair';
import { ExtendedSignatureEntity, ExtendedSignerEntity, ExtendedTransactionEntity, PaginationParams, TransactionParams, TransactionType } from '../types';
export declare class Transaction extends Connection {
    sss: SecretSharing;
    constructor(cluster: string, privkey: string, keypair: DesigKeypair);
    static deriveTransactionId: (msg: string) => string;
    static deriveSignatureId(transactionId: string, signerId: string): string;
    watch: (callback: (signatureId: string, er?: string) => void) => () => void;
    getTransactions: ({ approved, size, after, }?: Partial<{
        approved: boolean;
    } & PaginationParams>) => Promise<ExtendedTransactionEntity[]>;
    getTransaction: (transactionId: string) => Promise<ExtendedTransactionEntity>;
    getSignature: (signatureId: string) => Promise<ExtendedSignatureEntity>;
    initializeTransaction: ({ type, params, ttl, }: {
        type: TransactionType;
        params: TransactionParams;
        ttl?: number;
    }) => Promise<import("../types").TransactionEntity & {
        multisig: import("../types").MultisigEntity;
        signatures: (import("../types").SignatureEntity & {
            signer: Omit<import("../types").SignerEntity, "encryptedShare">;
        })[];
    }>;
    signTransaction: (transactionId: string) => Promise<import("../types").SignatureEntity & {
        transaction: import("../types").TransactionEntity;
        signer: Omit<import("../types").SignerEntity, "encryptedShare">;
    }>;
    execTransaction: (transactionId: string) => Promise<import("../types").TransactionEntity & {
        multisig: import("../types").MultisigEntity;
        signatures: (import("../types").SignatureEntity & {
            signer: Omit<import("../types").SignerEntity, "encryptedShare">;
        })[];
    }>;
    syncTransaction: () => Promise<ExtendedSignerEntity>;
}
