///
///
import { ConfirmationStrategy, TxSender, TxSigAndSlot } from './types';
import { Commitment, ConfirmOptions, RpcResponseAndContext, Signer, SignatureResult, Transaction, TransactionSignature, Connection, VersionedTransaction, TransactionInstruction, AddressLookupTableAccount, BlockhashWithExpiryBlockHeight } from '@solana/web3.js';
import { TxHandler } from './txHandler';
import { IWallet } from '../types';
import NodeCache from 'node-cache';
export declare abstract class BaseTxSender implements TxSender {
connection: Connection;
wallet: IWallet;
opts: ConfirmOptions;
timeout: number;
additionalConnections: Connection[];
timeoutCount: number;
confirmationStrategy: ConfirmationStrategy;
additionalTxSenderCallbacks: ((base58EncodedTx: string) => void)[];
txHandler: TxHandler;
trackTxLandRate?: boolean;
throwOnTimeoutError: boolean;
lookbackWindowMinutes: number;
txSigCache?: NodeCache;
txLandRate: number;
lastPriorityFeeSuggestion: number;
landRateToFeeFunc: (landRate: number) => number;
constructor({ connection, wallet, opts, timeout, additionalConnections, confirmationStrategy, additionalTxSenderCallbacks, trackTxLandRate, txHandler, txLandRateLookbackWindowMinutes, landRateToFeeFunc, throwOnTimeoutError, }: {
connection: Connection;
wallet: IWallet;
opts?: ConfirmOptions;
timeout?: number;
additionalConnections?: any;
confirmationStrategy?: ConfirmationStrategy;
additionalTxSenderCallbacks?: ((base58EncodedTx: string) => void)[];
txHandler?: TxHandler;
trackTxLandRate?: boolean;
txLandRateLookbackWindowMinutes?: number;
landRateToFeeFunc?: (landRate: number) => number;
throwOnTimeoutError?: boolean;
});
send(tx: Transaction, additionalSigners?: Array, opts?: ConfirmOptions, preSigned?: boolean): Promise;
prepareTx(tx: Transaction, additionalSigners: Array, opts: ConfirmOptions, preSigned?: boolean): Promise;
getVersionedTransaction(ixs: TransactionInstruction[], lookupTableAccounts: AddressLookupTableAccount[], _additionalSigners?: Array, opts?: ConfirmOptions, blockhash?: BlockhashWithExpiryBlockHeight): Promise;
sendVersionedTransaction(tx: VersionedTransaction, additionalSigners?: Array, opts?: ConfirmOptions, preSigned?: boolean): Promise;
sendRawTransaction(rawTransaction: Buffer | Uint8Array, opts: ConfirmOptions): Promise;
simulateTransaction(tx: VersionedTransaction): Promise;
confirmTransactionWebSocket(signature: TransactionSignature, commitment?: Commitment): Promise>;
confirmTransactionPolling(signature: TransactionSignature, commitment?: Commitment): Promise | undefined>;
confirmTransaction(signature: TransactionSignature, commitment?: Commitment): Promise>;
getTimestamp(): number;
promiseTimeout(promises: Promise[], timeoutMs: number): Promise;
sendToAdditionalConnections(rawTx: Buffer | Uint8Array, opts: ConfirmOptions): void;
addAdditionalConnection(newConnection: Connection): void;
getTimeoutCount(): number;
checkConfirmationResultForError(txSig: string, result: SignatureResult): Promise;
getTxLandRate(): number;
private defaultLandRateToFeeFunc;
getSuggestedPriorityFeeMultiplier(): number;
}