import { TransactionBlock } from '@mysten/sui.js';
import { TurbofishTypes } from '../types';
import { TxBuilderConfig } from '../sdk';
export interface AddLiquidityTypeArgs {
    coinX: string;
    coinY: string;
    curve: string;
}
export interface AddLiquidParams {
    coinX: string[];
    amtX: string;
    minX: string;
    coinY: string[];
    amtY: string;
    minY: string;
    minLP: string;
}
export interface RegisterPoolAndAddLiquidityParams {
    coinX: string[];
    amtX: string;
    minX: string;
    coinY: string[];
    amtY: string;
    minY: string;
    minLP: string;
}
export interface RemoveLiquidityTypes {
    coinX: string;
    coinY: string;
    curve: string;
}
export interface RemoveLiquidityParams {
    lpCoins: string[];
    burntAmt: string;
    minXOut: string;
    minYOut: string;
}
export interface ZapInParams {
    coinIds: string[];
    coinType: string;
    zapAmount: bigint;
    minLP: string;
}
export declare class LiquidityModule {
    protected _packageID: string;
    protected _globalStorage: string;
    protected _txBuilderConfig: TxBuilderConfig;
    constructor(packageId: string, globalStorage: string, txBuilderConfig: TxBuilderConfig);
    buildAddLiquidityUnsignedTx(types: AddLiquidityTypeArgs, params: AddLiquidParams): TransactionBlock;
    buildUnsignedTxRegisterPoolAndAddLiquidity(types: TurbofishTypes, params: RegisterPoolAndAddLiquidityParams): TransactionBlock;
    buildUnsignedTxRegisterPool(types: TurbofishTypes): TransactionBlock;
    buildUnsignedTxRemoveLiquidity(types: RemoveLiquidityTypes, params: RemoveLiquidityParams): TransactionBlock;
    buildTxZapIn(t: TurbofishTypes, p: ZapInParams): TransactionBlock;
}
