import { AddressLookupTableAccount, ConfirmOptions, Signer, Transaction, TransactionInstruction, TransactionSignature, VersionedTransaction, } from '@solana/web3.js'; import { IWallet } from '../types'; export enum ConfirmationStrategy { WebSocket = 'websocket', Polling = 'polling', Combo = 'combo', } export type TxSigAndSlot = { txSig: TransactionSignature; slot: number; }; export type ExtraConfirmationOptions = { onSignedCb: () => void; }; export interface TxSender { wallet: IWallet; send( tx: Transaction, additionalSigners?: Array, opts?: ConfirmOptions, preSigned?: boolean, extraConfirmationOptions?: ExtraConfirmationOptions ): Promise; sendVersionedTransaction( tx: VersionedTransaction, additionalSigners?: Array, opts?: ConfirmOptions, preSigned?: boolean, extraConfirmationOptions?: ExtraConfirmationOptions ): Promise; getVersionedTransaction( ixs: TransactionInstruction[], lookupTableAccounts: AddressLookupTableAccount[], additionalSigners?: Array, opts?: ConfirmOptions ): Promise; sendRawTransaction( rawTransaction: Buffer | Uint8Array, opts: ConfirmOptions ): Promise; getTimeoutCount(): number; }