/// <reference types="node" />
/// <reference types="node" />
import { ConfirmationStrategy, TxSigAndSlot } from './types';
import { ConfirmOptions, Connection, Signer, Transaction, VersionedTransaction } from '@solana/web3.js';
import { BaseTxSender } from './baseTxSender';
import { TxHandler } from './txHandler';
import { IWallet } from '../types';
type ResolveReference = {
    resolve?: () => void;
};
export declare class WhileValidTxSender extends BaseTxSender {
    connection: Connection;
    wallet: IWallet;
    opts: ConfirmOptions;
    timeout: number;
    retrySleep: number;
    additionalConnections: Connection[];
    timoutCount: number;
    untilValid: Map<string, {
        blockhash: string;
        lastValidBlockHeight: number;
    }>;
    useBlockHeightOffset: boolean;
    private checkAndSetUseBlockHeightOffset;
    constructor({ connection, wallet, opts, retrySleep, additionalConnections, confirmationStrategy, additionalTxSenderCallbacks, txHandler, trackTxLandRate, txLandRateLookbackWindowMinutes, landRateToFeeFunc, throwOnTimeoutError, throwOnTransactionError, }: {
        connection: Connection;
        wallet: IWallet;
        opts?: ConfirmOptions;
        retrySleep?: number;
        additionalConnections?: any;
        additionalTxSenderCallbacks?: ((base58EncodedTx: string) => void)[];
        confirmationStrategy?: ConfirmationStrategy;
        txHandler?: TxHandler;
        trackTxLandRate?: boolean;
        txLandRateLookbackWindowMinutes?: number;
        landRateToFeeFunc?: (landRate: number) => number;
        throwOnTimeoutError?: boolean;
        throwOnTransactionError?: boolean;
    });
    sleep(reference: ResolveReference): Promise<void>;
    prepareTx(tx: Transaction, additionalSigners: Array<Signer>, opts: ConfirmOptions, preSigned?: boolean): Promise<Transaction>;
    sendVersionedTransaction(tx: VersionedTransaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>;
    sendRawTransaction(rawTransaction: Buffer | Uint8Array, opts: ConfirmOptions): Promise<TxSigAndSlot>;
}
export {};
