import BN__default from 'bn.js';
import { TickLayout } from '../layout.js';
import '../../../marshmallow/index.js';
import '@solana/web3.js';
import '../../../marshmallow/buffer-layout.js';

declare class PositionUtils {
    static getfeeGrowthInside(poolState: {
        tickCurrent: number;
        feeGrowthGlobalX64A: BN__default;
        feeGrowthGlobalX64B: BN__default;
    }, tickLowerState: ReturnType<typeof TickLayout.decode>, tickUpperState: ReturnType<typeof TickLayout.decode>): {
        feeGrowthInsideX64A: BN__default;
        feeGrowthInsideBX64: BN__default;
    };
    static GetPositionFees(ammPool: {
        tickCurrent: number;
        feeGrowthGlobalX64A: BN__default;
        feeGrowthGlobalX64B: BN__default;
    }, positionState: {
        liquidity: BN__default;
        feeGrowthInsideLastX64A: BN__default;
        feeGrowthInsideLastX64B: BN__default;
        tokenFeesOwedA: BN__default;
        tokenFeesOwedB: BN__default;
    }, tickLowerState: ReturnType<typeof TickLayout.decode>, tickUpperState: ReturnType<typeof TickLayout.decode>): {
        tokenFeeAmountA: BN__default;
        tokenFeeAmountB: BN__default;
    };
    static GetPositionRewards(ammPool: {
        tickCurrent: number;
        rewardInfos: {
            growthGlobalX64: BN__default;
        }[];
    }, positionState: {
        liquidity: BN__default;
        rewardInfos: {
            growthInsideLastX64: BN__default;
            rewardAmountOwed: BN__default;
        }[];
    }, tickLowerState: ReturnType<typeof TickLayout.decode>, tickUpperState: ReturnType<typeof TickLayout.decode>): BN__default[];
    static getRewardGrowthInside(tickCurrentIndex: number, tickLowerState: ReturnType<typeof TickLayout.decode>, tickUpperState: ReturnType<typeof TickLayout.decode>, rewardInfos: {
        growthGlobalX64: BN__default;
    }[]): BN__default[];
}

export { PositionUtils };
