///
import { AccountInfo, Blockhash, BlockhashWithExpiryBlockHeight, Commitment, ConfirmOptions, GetLatestBlockhashConfig, GetProgramAccountsConfig, PublicKey, RpcResponseAndContext, SendOptions, SignatureResult, Transaction, TransactionSignature } from '@solana/web3.js';
import { ConvergenceError } from '../../errors';
import type { Convergence } from '../../Convergence';
import { Signer, SolAmount, UnparsedAccount, UnparsedMaybeAccount } from '../../types';
import { TransactionBuilder } from '../../utils';
export type ConfirmTransactionResponse = RpcResponseAndContext;
export type SendAndConfirmTransactionResponse = {
signature: TransactionSignature;
confirmResponse: ConfirmTransactionResponse;
blockhash: Blockhash;
lastValidBlockHeight: number;
};
/**
* @group Modules
*/
export declare class RpcClient {
protected readonly convergence: Convergence;
protected defaultFeePayer?: Signer;
protected lastContextSlot?: number;
protected static contextRetryDelays: (number | null)[];
constructor(convergence: Convergence);
getTransactionSize(transaction: Transaction | TransactionBuilder, signers?: any): Promise;
protected prepareTransaction(transaction: Transaction | TransactionBuilder, signers: Signer[]): Promise<{
transaction: Transaction;
signers: Signer[];
blockhashWithExpiryBlockHeight: BlockhashWithExpiryBlockHeight;
}>;
signTransaction(transaction: Transaction, signers: Signer[]): Promise;
sendTransaction(transaction: Transaction | TransactionBuilder, sendOptions?: SendOptions, signers?: Signer[]): Promise;
sendAndConfirmRawTransaction(rawTransaction: Buffer, confirmOptions?: ConfirmOptions): Promise;
sendRawTransaction(rawTransaction: Buffer, sendOptions?: SendOptions, sourceTransaction?: Transaction): Promise;
serializeAndSendTransaction(transaction: Transaction, blockhashWithExpiryBlockHeight?: BlockhashWithExpiryBlockHeight, confirmOptions?: ConfirmOptions): Promise;
confirmTransaction(signature: TransactionSignature, blockhashWithExpiryBlockHeight: BlockhashWithExpiryBlockHeight, commitment?: Commitment): Promise;
sendAndConfirmTransaction(transaction: Transaction | TransactionBuilder, signers?: Signer[], confirmOptions?: ConfirmOptions): Promise;
getAccount(publicKey: PublicKey, commitment?: Commitment): Promise;
accountExists(publicKey: PublicKey, commitment?: Commitment): Promise;
getMultipleAccounts(publicKeys: PublicKey[], commitment?: Commitment): Promise;
protected retryGetAccountAction(action: () => Promise): Promise;
protected expandGetAccountCommitment(commitment?: Commitment): {
commitment: Commitment | undefined;
minContextSlot: number | undefined;
};
getProgramAccounts(programId: PublicKey, configOrCommitment?: GetProgramAccountsConfig | Commitment): Promise;
getRent(bytes: number, commitment?: Commitment): Promise;
getLatestBlockhash(commitmentOrConfig?: Commitment | GetLatestBlockhashConfig): Promise;
setDefaultFeePayer(payer: Signer): this;
getDefaultFeePayer(): Signer;
protected getUnparsedMaybeAccount(publicKey: PublicKey, accountInfo: AccountInfo | null): UnparsedMaybeAccount;
protected parseProgramError(error: unknown, transaction: Transaction): ConvergenceError;
}