import type { Context } from './Context'; import type { RpcConfirmTransactionResult, RpcSendTransactionOptions } from './RpcInterface'; import type { Transaction, TransactionSignature } from './Transaction'; import { TransactionBuilder, TransactionBuilderSendAndConfirmOptions } from './TransactionBuilder'; export type TransactionBuilderGroupOptions = { /** Whether to run the builders in parallel or, if false, sequentially. */ parallel?: boolean; }; export declare class TransactionBuilderGroup { readonly builders: TransactionBuilder[]; readonly options: TransactionBuilderGroupOptions; constructor(builders?: TransactionBuilder[], options?: TransactionBuilderGroupOptions); prepend(builder: TransactionBuilder | TransactionBuilder[]): TransactionBuilderGroup; append(builder: TransactionBuilder | TransactionBuilder[]): TransactionBuilderGroup; add(builder: TransactionBuilder | TransactionBuilder[]): TransactionBuilderGroup; sequential(): TransactionBuilderGroup; parallel(): TransactionBuilderGroup; isParallel(): boolean; merge(): TransactionBuilder; build(context: Pick): Transaction[]; setLatestBlockhash(context: Pick): Promise; buildWithLatestBlockhash(context: Pick): Promise; buildAndSign(context: Pick): Promise; send(context: Pick, options?: RpcSendTransactionOptions): Promise; sendAndConfirm(context: Pick, options?: TransactionBuilderSendAndConfirmOptions): Promise>; map(fn: (builder: TransactionBuilder, index: number, array: TransactionBuilder[]) => TransactionBuilder): TransactionBuilderGroup; filter(fn: Parameters['filter']>[0]): TransactionBuilderGroup; runAll(array: T[], fn: (item: T, index: number, array: T[]) => Promise): Promise; } export declare function transactionBuilderGroup(builders?: TransactionBuilder[]): TransactionBuilderGroup;