import { AddressLookupTableAccount, type Connection, type Keypair, type TransactionInstruction, type VersionedTransaction } from "@solana/web3.js"; import { type Balance, type SolanaChain, type ToolBase, WalletClientBase } from "../../core"; import { type SolanaNetwork, type Token } from "./tokens.js"; import type { SolanaTransaction } from "./types"; export type SolanWalletClientCtorParams = { connection: Connection; network?: SolanaNetwork; tokens?: Token[]; enableSend?: boolean; }; export declare abstract class SolanaWalletClient extends WalletClientBase { protected connection: Connection; protected network: SolanaNetwork; protected tokens: Token[]; protected enableSend: boolean; constructor(params: SolanWalletClientCtorParams); getChain(): SolanaChain; getConnection(): Connection; balanceOf(address: string, tokenAddress?: string): Promise; decompileVersionedTransactionToInstructions(versionedTransaction: VersionedTransaction): Promise; sendToken(params: { recipient: string; baseUnitsAmount: string; tokenAddress?: string; }): Promise<{ hash: string; }>; getTokenInfoBySymbol(symbol: string): Promise; _getTokenDecimals(tokenAddress?: string): Promise; convertToBaseUnits(params: { amount: string; tokenAddress?: string; }): Promise; convertFromBaseUnits(params: { amount: string; tokenAddress?: string; }): Promise; getCoreTools(): ToolBase[]; protected getAddressLookupTableAccounts(keys: string[]): Promise; abstract sendTransaction(transaction: SolanaTransaction, additionalSigners?: Keypair[]): Promise<{ hash: string; }>; abstract sendRawTransaction(transaction: string, signer?: Keypair, additionalSigners?: Keypair[]): Promise<{ hash: string; }>; abstract getAddress(): string; }