import { JsonRpcProvider, TransactionReceipt, TransactionRequest } from 'ethers'; import { BaseSigner } from './signers/base'; import { FeedClient } from './feed/feed_client'; import { PairsCache } from './rpc/pairs_cache'; import { AssetParametersRPC } from './rpc/asset_parameters'; import { CategoryParametersRPC } from './rpc/category_parameters'; import { FeeParametersRPC } from './rpc/fee_parameters'; import { TradingParametersRPC } from './rpc/trading_parameters'; import { BlendedRPC } from './rpc/blended'; import { TradeRPC } from './rpc/trade'; import { SnapshotRPC } from './rpc/snapshot'; import { TradingOperationsRPC } from './rpc/trading_operations'; import { DelegationRPC } from './rpc/delegation'; import { PairInfoQueriesRPC } from './rpc/pair_info_queries'; import { ReferralOperationsRPC } from './rpc/referral_operations'; import { MulticallRPC } from './rpc/multicall'; /** * Main client for interacting with Avantis trading platform */ export declare class TraderClient { provider: JsonRpcProvider; signer?: BaseSigner; feedClient?: FeedClient; private contracts; pairsCache: PairsCache; assetParams: AssetParametersRPC; categoryParams: CategoryParametersRPC; feeParams: FeeParametersRPC; tradingParams: TradingParametersRPC; blendedParams: BlendedRPC; tradeRPC: TradeRPC; snapshotRPC: SnapshotRPC; tradingOps: TradingOperationsRPC; delegation: DelegationRPC; pairInfoQueries: PairInfoQueriesRPC; referral: ReferralOperationsRPC; multicall: MulticallRPC; /** * Create a new TraderClient * @param providerUrl - Ethereum RPC endpoint * @param signer - Transaction signer (optional) * @param feedClient - Feed client for price updates (optional) */ constructor(providerUrl: string, signer?: BaseSigner, feedClient?: FeedClient); /** * Initialize contract instances */ private initializeContracts; /** * Get a contract instance * @param name - Contract name * @returns Contract instance */ private getContract; /** * Set signer for transaction signing * @param signer - Signer instance */ setSigner(signer: BaseSigner): void; /** * Set local signer using private key * @param privateKey - Private key */ setLocalSigner(privateKey: string): void; /** * Set AWS KMS signer * @param kmsKeyId - KMS key ID * @param region - AWS region */ setAwsKmsSigner(kmsKeyId: string, region?: string): void; /** * Get native token balance * @param address - Address to check * @returns Balance in native token */ getBalance(address: string): Promise; /** * Get USDC balance * @param address - Address to check * @returns USDC balance */ getUsdcBalance(address: string): Promise; /** * Get USDC allowance for trading * @param address - Address to check * @returns Allowance amount */ getUsdcAllowanceForTrading(address: string): Promise; /** * Approve USDC for trading * @param amount - Amount to approve * @returns Transaction receipt */ approveUsdcForTrading(amount: number): Promise; /** * Sign transaction and wait for receipt * @param tx - Transaction to sign * @returns Transaction receipt */ signAndGetReceipt(tx: TransactionRequest): Promise; /** * Estimate gas for a transaction * @param tx - Transaction to estimate * @returns Estimated gas */ estimateGas(tx: TransactionRequest): Promise; /** * Get transaction count (nonce) * @param address - Address to check * @returns Transaction count */ getTransactionCount(address: string): Promise; /** * Get chain ID * @returns Chain ID */ getChainId(): Promise; }