///
import { ReplaySubject } from 'rxjs';
import { Commitment, ConfirmedSignatureInfo, ConfirmedSignaturesForAddress2Options, Connection, ContactInfo, EpochInfo, Finality, GetAccountInfoConfig, GetProgramAccountsFilter, GetSlotConfig, GetVersionedTransactionConfig, Logs, PerfSample, PublicKey, SignatureResult, SignatureSubscriptionCallback, SignatureSubscriptionOptions, Signer, SimulateTransactionConfig, SlotChangeCallback, SlotInfo, SlotUpdate, SlotUpdateCallback, StakeActivationData, Transaction, TransactionConfirmationStrategy, TransactionInstruction, TransactionResponse, TransactionSignature, VersionedTransaction, VoteAccountStatus } from '@solana/web3.js';
import { Buffer } from 'buffer';
import { ISolanaAccountUpdate, ISolanaClusterInfo, ISolanaRecentHash, ISolanaSimulationBalances } from '../../interfaces';
import { CompatibleTransaction, IMap, SolanaConnection, SolanaRpcTag } from '../../types';
import { BaseLoggerService } from '../base-logger.service';
import { SolanaKey } from '../../utils';
import { SolanaRpcService } from './solana-rpc.service';
export declare class SolanaApiService {
protected readonly logger: BaseLoggerService;
protected readonly solanaRpc: SolanaRpcService;
readonly logPrefix = "[SolanaApi]";
readonly MAX_TRANSACTION_BATCH_SIZE = 100;
readonly RESOLVE_QUEUE_INTERVAL_MS = 300;
readonly UPDATE_QUEUE_INTERVAL_MS = 300;
readonly accountUpdates$: IMap>;
readonly accountUpdatesMaxSlots: IMap;
readonly logUpdates$: IMap>;
readonly resolvedAccounts: IMap;
private readonly slotChanges$;
readonly slotInfo$: import("rxjs").Observable;
private readonly slotUpdates$;
readonly slotUpdate$: import("rxjs").Observable;
constructor(logger: BaseLoggerService, solanaRpc: SolanaRpcService);
connect(commitment?: Commitment, tag?: SolanaRpcTag): Connection;
getClusterNodes(): Promise;
getStakeActivation(key: SolanaKey): Promise;
getVoteAccounts(): Promise;
findRpcNodes(delayMs?: number): Promise;
getMinBalanceForRentExemption(n: number): Promise;
getBalance(accountKey: SolanaKey): Promise;
getSlot(connection?: Connection, commitmentOrConfig?: Commitment | GetSlotConfig): Promise;
getPerformanceSamples(connection?: Connection, limit?: number): Promise;
getAccount(accountKey: SolanaKey, connection?: Connection, commitmentOrConfig?: Commitment | GetAccountInfoConfig): Promise;
getMultipleAccounts(keys: SolanaKey[], connection?: Connection, chunkSize?: number, delayMs?: number): Promise>;
getFilteredProgramAccounts(programId: SolanaKey, filters?: GetProgramAccountsFilter[], commitment?: Commitment, dataSlice?: {
offset: number;
length: number;
}, connection?: SolanaConnection): Promise;
getRentExcemptionBalance(dataLength: number, connection?: Connection): Promise;
getLatestBlockhash(commitment?: Commitment, connection?: Connection, withBlockHeight?: boolean): Promise;
sendRawTransaction(rawTransaction: Buffer | Uint8Array | Array, connection: Connection, skipPreflight?: boolean, minContextSlot?: number): Promise;
simulateTransactionV2(transaction: VersionedTransaction, config?: SimulateTransactionConfig, connection?: Connection): Promise;
sendSignedTransaction(signedTransaction: CompatibleTransaction, connection?: Connection, skipPreflight?: boolean, minContextSlot?: number): Promise;
confirmTransaction(config: TransactionConfirmationStrategy, commitment?: Finality, connection?: SolanaConnection): Promise;
getTransaction(txId: string, commitment?: Finality, connection?: SolanaConnection): Promise;
getTransactions(txIds: string[], commitmentOrConfig: GetVersionedTransactionConfig | Finality, connection?: SolanaConnection, batchDelayMs?: number): Promise<(TransactionResponse | null)[]>;
getFirstAvailableBlock(connection?: SolanaConnection): Promise;
getBlockHeight(connection?: SolanaConnection, commitment?: Commitment, minContextSlot?: number): Promise;
getMinimumLedgerSlot(connection?: SolanaConnection): Promise;
getBlockTime(slot: number, connection?: SolanaConnection): Promise;
getEpochInfo(connection?: SolanaConnection, commitment?: Finality): Promise;
getSignatures(address: SolanaKey, options?: ConfirmedSignaturesForAddress2Options, connection?: Connection, commitment?: Finality, delayMs?: number, minBlockTime?: number): Promise;
subscribeToSlotChanges(connection?: SolanaConnection, callback?: SlotChangeCallback): void;
subscribeToSlotUpdates(connection?: SolanaConnection, callback?: SlotUpdateCallback): void;
subscribeToSignatureChanges(signature: string, callback: SignatureSubscriptionCallback, options?: SignatureSubscriptionOptions, connection?: Connection): void;
private handleSlotChange;
private handleSlotUpdate;
createMemoInstruction(memo: string, signerPubkeys?: Array): TransactionInstruction;
createAccountIx(payer: SolanaKey, owner: SolanaKey, space: number, signer?: Signer): Promise<[TransactionInstruction, Signer]>;
additionalComputeBudgetInstruction(units: number, microLamports: number): TransactionInstruction[];
mergeTransactions(transactions: (Transaction | undefined)[]): Transaction;
mergeTransactionsWithSigners(transactions: (Transaction | undefined)[]): Transaction;
private getMultipleAccountsCore;
}
//# sourceMappingURL=solana-api.service.d.ts.map