import { Blockhash, Commitment, Connection, SignatureStatus, Transaction, TransactionInstruction, TransactionSignature, Keypair } from '@safecoin/web3.js';
interface IBlockhashAndFeeCalculator {
    blockhash: Blockhash;
    lastValidBlockHeight: number;
}
/**
 * Attempt to send a transaction to the network.
 * @param connection  The connection to the cluster.
 * @param wallet  The wallet to use for signing.
 * @param instructions  The instructions to sign.
 * @param commitment  The commitment to use for the transaction.
 * @param block  The blockhash to use for the transaction.
 * @param beforeSend  The function to call before sending the transaction.
 * @returns  The transaction signature.
 */
export declare const sendTransactionWithRetryWithKeypair: (connection: Connection, wallet: any, instructions: TransactionInstruction[], commitment?: Commitment, block?: IBlockhashAndFeeCalculator, beforeSend?: () => void) => Promise<{
    txid: string;
    slot: number;
}>;
/**
 * Attempt to send a signed transaction to the network.
 * @param signedTransaction The signed transaction to send.
 * @param connection The connection to the cluster.
 * @returns  The transaction id and slot.
 */
export declare function sendSignedTransaction({ signedTransaction, connection, timeout, }: {
    signedTransaction: Transaction;
    connection: Connection;
    sendingMessage?: string;
    sentMessage?: string;
    successMessage?: string;
    timeout?: number;
}): Promise<{
    txid: string;
    slot: number;
}>;
/**
 * Wait for a transaction to be confirmed.
 * @param txid The transaction id to await confirmation for.
 * @param timeout  The timeout in milliseconds.
 * @param connection  The connection to the cluster.
 * @param commitment  The commitment to use for the transaction.
 * @param queryStatus  Whether to query the status of the transaction.
 * @returns  The transaction signature.
 */
export declare function awaitTransactionSignatureConfirmation(txid: TransactionSignature, timeout: number, connection: Connection, commitment?: Commitment, queryStatus?: boolean): Promise<SignatureStatus | null | void>;
export declare enum SequenceType {
    Sequential = 0,
    Parallel = 1,
    StopOnFailure = 2
}
/**
 * Execute a sequence of transactions.
 * @returns  The transaction signature.
 */
export declare const sendTransactions: (connection: Connection, wallet: any, instructionSet: TransactionInstruction[][], signersSet: Keypair[][], sequenceType?: SequenceType, commitment?: Commitment, successCallback?: (txid: string, ind: number) => void, failCallback?: (reason: string, ind: number) => boolean, block?: IBlockhashAndFeeCalculator, beforeTransactions?: Transaction[], afterTransactions?: Transaction[]) => Promise<{
    number: number;
    txs: {
        txid: string;
        slot: number;
    }[];
}>;
export {};
