import { BlockhashWithExpiryBlockHeight, ConfirmOptions, SignaturePubkeyPair, Transaction, TransactionInstruction } from '@solana/web3.js'; import { SendAndConfirmTransactionResponse } from '../plugins/rpcModule'; import type { Convergence } from '../Convergence'; import type { OperationOptions, Signer } from '../types'; export declare const DUMMY_BLOCKHASH = "H9cCgV1suCbdxMGDGUecdgJPZzdCe4CbNYa6ijP1uBLS"; export type InstructionWithSigners = { instruction: TransactionInstruction; signers: Signer[]; key?: string; }; type TransactionOptions = { /** Additional signatures. */ signatures?: Array; }; export type TransactionBuilderOptions = Pick; export declare class TransactionBuilder { /** The list of all instructions and their respective signers. */ protected records: InstructionWithSigners[]; /** Options used when building the transaction. */ protected transactionOptions: TransactionOptions; /** The signer to use to pay for transaction fees. */ protected feePayer: Signer | undefined; /** Any additional context gathered when creating the transaction builder. */ protected context: C; constructor(transactionOptions?: TransactionOptions); checkTransactionFits: () => boolean; static make(transactionOptions?: TransactionOptions): TransactionBuilder; prepend(...txs: (InstructionWithSigners | TransactionBuilder)[]): TransactionBuilder; append(...txs: (InstructionWithSigners | TransactionBuilder)[]): TransactionBuilder; add(...txs: (InstructionWithSigners | TransactionBuilder)[]): TransactionBuilder; splitUsingKey(key: string, include?: boolean): [TransactionBuilder, TransactionBuilder]; splitBeforeKey(key: string): [TransactionBuilder, TransactionBuilder]; splitAfterKey(key: string): [TransactionBuilder, TransactionBuilder]; getInstructionsWithSigners(): InstructionWithSigners[]; getInstructions(): TransactionInstruction[]; getInstructionCount(): number; isEmpty(): boolean; getSigners(): Signer[]; setTransactionOptions(transactionOptions: TransactionOptions): TransactionBuilder; getTransactionOptions(): TransactionOptions | undefined; setFeePayer(feePayer: Signer): TransactionBuilder; getFeePayer(): Signer | undefined; setContext(context: C): TransactionBuilder; getContext(): C; when(condition: boolean, callback: (tx: TransactionBuilder) => TransactionBuilder): TransactionBuilder; unless(condition: boolean, callback: (tx: TransactionBuilder) => TransactionBuilder): TransactionBuilder; toTransaction(blockhashWithExpiryBlockHeight: BlockhashWithExpiryBlockHeight, options?: TransactionOptions): Transaction; toPartiallySignedTransaction(blockhashWithExpiryBlockHeight: BlockhashWithExpiryBlockHeight, options?: TransactionOptions): Transaction; protected cloneWithoutRecords(): TransactionBuilder; divideToMultipleBuildersThatFit(): TransactionBuilder[]; sendAndConfirm(convergence: Convergence, confirmOptions?: ConfirmOptions): Promise<{ response: SendAndConfirmTransactionResponse; } & C>; addStaticComputeBudgetIxs(convergence: Convergence, computeUnits: number, disableSettingComputeUnits?: boolean): TransactionBuilder; addDynamicComputeBudgetIxs(microLamports: number, computeUnits: number, disableSettingComputeUnits?: boolean): TransactionBuilder; } export {};