import { SuiClient } from '@mysten/sui/client';
import { CoinConfig, CoinData, MarketState } from './api/types';
import { LpPosition } from './types/position';
/**
 * AddLiquidityAction execution parameters
 */
export interface AddLiquidityActionParams {
    decimal: number;
    addType: string;
    slippage: string;
    lpValue: string;
    coinType: string;
    conversionRate: string;
    addValue: string;
    tokenType: number;
    action: string;
    coinConfig: CoinConfig;
    marketStateData: any;
    coinData: CoinData[];
    pyPositionData: any;
    lpPositions: LpPosition[];
    vaultId?: string;
    insufficientBalance?: boolean;
}
/**
 * RemoveLiquidityAction execution parameters
 */
export interface RemoveLiquidityActionParams {
    lpAmount: string;
    slippage: string;
    vaultId?: string;
    minSyOut?: string;
    ytBalance: string;
    ptCoins?: CoinData[];
    coinConfig: CoinConfig;
    action: "swap" | "redeem";
    lpPositions: LpPosition[];
    pyPositions: any[];
    minValue?: string | number;
    isSwapPt?: boolean;
    receivingType?: "underlying" | "sy";
    marketState: MarketState;
}
/**
 * AddLiquidityAction configuration
 */
export interface AddLiquidityActionConfig {
    suiClient: SuiClient;
    privateKeyHex: string;
}
/**
 * AddLiquidityAction execution result
 */
export interface AddLiquidityActionResult {
    success: boolean;
    transactionHash?: string;
    error?: string;
    data?: any;
}
/**
 * AddLiquidity Action class
 * Encapsulates liquidity addition functionality, providing a clean interface
 */
export declare class AddLiquidityAction {
    private suiClient;
    private keypair;
    private defaultAddress;
    /**
     * Constructor
     * @param config configuration parameters
     */
    constructor(config: AddLiquidityActionConfig);
    /**
     * Add liquidity
     * @param params execution parameters
     * @returns execution result
     */
    addLiquidity(params: AddLiquidityActionParams): Promise<AddLiquidityActionResult>;
    /**
     * Remove liquidity
     * @param params execution parameters
     * @returns execution result
     */
    removeLiquidity(params: RemoveLiquidityActionParams): Promise<AddLiquidityActionResult>;
    /**
     * Execute add liquidity operation (for backward compatibility)
     * @param params execution parameters
     * @returns execution result
     */
    execute(params: AddLiquidityActionParams): Promise<AddLiquidityActionResult>;
    /**
     * Parameter validation
     * @param params execution parameters
     */
    private validateParams;
    /**
     * Get current address
     * @returns currently used address
     */
    getAddress(): string;
    /**
     * Get Sui Client
     * @returns SuiClient instance
     */
    getSuiClient(): SuiClient;
}
/**
 * Factory function to create AddLiquidityAction instance
 * @param config configuration parameters
 * @returns AddLiquidityAction instance
 */
export declare function createAddLiquidityAction(config: AddLiquidityActionConfig): AddLiquidityAction;
//# sourceMappingURL=Action.d.ts.map