import { Contract, Provider, TransactionRequest } from 'ethers'; import { TradeInput, TradeResponse, MarginUpdateType } from '../types'; import { PairsCache } from './pairs_cache'; /** * RPC module for trading operations */ export declare class TradeRPC { private provider; private tradingContract; private tradingStorageContract; private pairsCache; constructor(provider: Provider, tradingContract: Contract, tradingStorageContract: Contract, pairsCache: PairsCache); /** * Build transaction to open a trade * @param tradeInput - Trade input parameters * @returns Transaction request */ buildTradeOpenTx(tradeInput: TradeInput, trader: string): Promise; /** * Build transaction to open a trade via delegation * @param tradeInput - Trade input parameters * @param trader - Trader address * @returns Transaction request */ buildTradeOpenTxDelegate(tradeInput: TradeInput, trader: string): Promise; /** * Build transaction to close a trade * @param pairIndex - Pair index * @param tradeIndex - Trade index * @returns Transaction request */ buildTradeCloseTx(pairIndex: number, tradeIndex: number): Promise; /** * Build transaction to close a trade via delegation * @param pairIndex - Pair index * @param tradeIndex - Trade index * @param trader - Trader address * @returns Transaction request */ buildTradeCloseTxDelegate(pairIndex: number, tradeIndex: number, trader: string): Promise; /** * Build transaction to cancel a pending order * @param pairIndex - Pair index * @param orderIndex - Order index * @returns Transaction request */ buildOrderCancelTx(pairIndex: number, orderIndex: number): Promise; /** * Build transaction to update trade margin * @param pairIndex - Pair index * @param tradeIndex - Trade index * @param marginDelta - Margin change amount (USDC) * @param updateType - Deposit or withdraw * @returns Transaction request */ buildTradeMarginUpdateTx(pairIndex: number, tradeIndex: number, marginDelta: number, updateType: MarginUpdateType): Promise; /** * Build transaction to update take profit and stop loss * @param pairIndex - Pair index * @param tradeIndex - Trade index * @param tp - Take profit price * @param sl - Stop loss price * @returns Transaction request */ buildTradeTpSlUpdateTx(pairIndex: number, tradeIndex: number, tp: number, sl: number): Promise; /** * Get trade execution fee * @returns Execution fee in native token (wei) */ getTradeExecutionFee(): Promise; /** * Get all trades for a trader * @param traderAddress - Trader address * @param maxPairs - Maximum pair indices to check (default: 100) * @returns Array of trades */ getTrades(traderAddress: string, maxPairs?: number): Promise; /** * Convert order type string to numeric value * @param orderType - Order type string * @returns Numeric order type */ private getOrderTypeValue; }