import BN__default from 'bn.js';

declare class LiquidityMathUtil {
    static getDeltaAmountAUnsigned(sqrtPriceX64A: BN__default, sqrtPriceX64B: BN__default, liquidity: BN__default, roundUp: boolean): BN__default;
    static getDeltaAmountBUnsigned(sqrtPriceX64A: BN__default, sqrtPriceX64B: BN__default, liquidity: BN__default, roundUp: boolean): BN__default;
    static addDelta(x: BN__default, y: BN__default): BN__default;
    static getLiquidityFromAmountA(sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, amountA: BN__default): BN__default;
    static getLiquidityFromAmountB(sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, amountB: BN__default): BN__default;
    static getLiquidityFromAmounts(sqrtPriceCurrentX64: BN__default, sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, amountA: BN__default, amountB: BN__default): BN__default;
    static getAmountForLiquidityA(sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, liquidity: BN__default, roundUp: boolean): BN__default;
    static getAmountForLiquidityB(sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, liquidity: BN__default, roundUp: boolean): BN__default;
    static getAmountsForLiquidity(sqrtPriceCurrentX64: BN__default, sqrtPriceLowerX64: BN__default, sqrtPriceUpperX64: BN__default, liquidity: BN__default, roundUp: boolean): {
        amountA: BN__default;
        amountB: BN__default;
    };
    static getAmountsFromLiquidityWithSlippage(sqrtPriceCurrentX64: BN__default, sqrtPriceX64A: BN__default, sqrtPriceX64B: BN__default, liquidity: BN__default, amountMax: boolean, roundUp: boolean, amountSlippage: number): {
        amountSlippageA: BN__default;
        amountSlippageB: BN__default;
    };
    static getLiquidityAndAmountsFromAmount({ sqrtPriceCurrentX64, sqrtPriceLowerX64, sqrtPriceUpperX64, amountInfo, }: {
        sqrtPriceCurrentX64: BN__default;
        sqrtPriceLowerX64: BN__default;
        sqrtPriceUpperX64: BN__default;
        amountInfo: {
            type: "liquidity" | "amountA" | "amountB";
            amount: BN__default;
        };
    }): {
        liquidity: BN__default;
        amountA: BN__default;
        amountB: BN__default;
    };
}

export { LiquidityMathUtil };
