import { HTTPClient } from "../core/http-client";
import { SwapParams, OKXConfig, QuoteParams, QuoteData, APIResponse, SwapResult, SwapResponseData, ChainData, ApproveTokenParams, SwapSimulationParams, LiquidityData, TokenData, GasLimitParams, GasLimitData, GasPriceData, BroadcastTransactionParams, BroadcastTransactionData, TransactionOrdersParams, TransactionOrdersData } from "../types";
interface SimulationResult {
    success: boolean;
    gasUsed?: string;
    error?: string;
    logs?: any;
    assetChanges: Array<{
        direction: 'SEND' | 'RECEIVE';
        symbol: string;
        type: string;
        amount: string;
        decimals: number;
        address: string;
    }>;
    risks: Array<{
        addressType: string;
        address: string;
    }>;
}
export declare class DexAPI {
    private readonly client;
    private readonly config;
    private readonly defaultNetworkConfigs;
    constructor(client: HTTPClient, config: OKXConfig);
    private getNetworkConfig;
    private toAPIParams;
    getQuote(params: QuoteParams): Promise<APIResponse<QuoteData>>;
    getLiquidity(chainIndex: string): Promise<APIResponse<LiquidityData>>;
    getChainData(chainIndex: string): Promise<APIResponse<ChainData>>;
    getSwapData(params: SwapParams): Promise<SwapResponseData>;
    getTokens(chainIndex: string): Promise<APIResponse<TokenData>>;
    getSolanaSwapInstruction(params: SwapParams): Promise<import("../types").APIResponseSingle<import("../types").SolanaSwapInstructionData>>;
    executeSolanaSwapInstructions(params: SwapParams): Promise<SwapResult>;
    executeSwap(params: SwapParams): Promise<SwapResult>;
    executeApproval(params: ApproveTokenParams): Promise<{
        transactionHash: string;
        explorerUrl: string;
    }>;
    simulateTransaction(params: SwapSimulationParams): Promise<SimulationResult>;
    getGasLimit(params: GasLimitParams): Promise<APIResponse<GasLimitData>>;
    getGasPrice(chainIndex: string): Promise<APIResponse<GasPriceData>>;
    broadcastTransaction(params: BroadcastTransactionParams): Promise<APIResponse<BroadcastTransactionData>>;
    getTransactionOrders(params: TransactionOrdersParams): Promise<APIResponse<TransactionOrdersData>>;
    private getHeaders;
}
export {};
