///
import { AccountInfo, AddressLookupTableAccount, BlockhashWithExpiryBlockHeight, Commitment, Connection, PublicKey, RpcResponseAndContext, SignatureStatus, Signer, Transaction, TransactionInstruction, VersionedTransaction } from '@solana/web3.js';
import { Buffer } from 'buffer';
import { TxV0WithHeight, TxWithHeight } from '.';
type MaybeBlockhash = {
type: 'blockhash';
blockhash: string;
} | {
type: 'blockhashArgs';
args: GetRpcMultipleConnsArgs;
};
type BuildTxArgs = {
feePayer: PublicKey;
instructions: TransactionInstruction[];
additionalSigners?: Array;
maybeBlockhash: MaybeBlockhash;
};
export declare const buildTx: ({ feePayer, instructions, additionalSigners, maybeBlockhash, }: BuildTxArgs) => Promise;
export declare const buildTxV0: ({ feePayer, instructions, additionalSigners, addressLookupTableAccs, maybeBlockhash, }: {
addressLookupTableAccs: AddressLookupTableAccount[];
} & BuildTxArgs) => Promise;
export declare const buildTxsLegacyV0: ({ feePayer, instructions, additionalSigners, addressLookupTableAccs, maybeBlockhash, }: {
addressLookupTableAccs: AddressLookupTableAccount[];
} & BuildTxArgs) => Promise<{
tx: Transaction;
txV0: VersionedTransaction;
blockhash: any;
lastValidBlockHeight: any;
}>;
type GetRpcMultipleConnsArgs = {
connections: Array;
commitment?: Commitment;
maxRetries?: number;
startTimeoutMs?: number;
maxTimeoutMs?: number;
};
export declare const getLatestBlockhashMultConns: ({ connections, commitment, maxRetries, startTimeoutMs, maxTimeoutMs, }: GetRpcMultipleConnsArgs) => Promise;
/**
* Races multiple connections to confirm a tx.
*
* This will throw TransactionExpiredBlockheightExceededError
* if we cannot confirm by the tx's lastValidBlockHeight.
*/
export declare const confirmTransactionMultConns: ({ conns, sig, timeoutMs, maxDelayMs, startingDelayMs, numOfAttempts, }: {
conns: Connection[];
sig: string;
timeoutMs?: number | undefined;
maxDelayMs?: number | undefined;
startingDelayMs?: number | undefined;
numOfAttempts?: number | undefined;
}) => Promise>;
export declare const getLatestBlockHeight: ({ connections, commitment, maxRetries, startTimeoutMs, maxTimeoutMs, }: GetRpcMultipleConnsArgs) => Promise;
type AccountWithSlot = {
slot: number;
account: AccountInfo | null;
pubkey: PublicKey;
};
/** Use this vs getAccountInfo w/ minContextSlot since minContextSlot just spam retries.
* See getMultiAccountsWaitSlot if you have a batch of accounts. */
export declare const getAccountWaitSlot: ({ conn, slot, pubkey, beforeHook, retries, }: {
conn: Connection;
slot: number;
pubkey: PublicKey;
/** Hook right before RPC call */
beforeHook?: (() => Promise) | undefined;
/** Retries for connection request. */
retries?: number | undefined;
}) => Promise;
export declare const getMultipleAccountsWaitSlot: ({ conn, slot, pubkeys, beforeHook, retries, }: {
conn: Connection;
slot: number;
pubkeys: PublicKey[];
/** Hook right before RPC call */
beforeHook?: (() => Promise) | undefined;
/** Retries for connection request. */
retries?: number | undefined;
}) => Promise;
export {};
//# sourceMappingURL=rpc.d.ts.map