///
///
import { PublicKey } from '@solana/web3.js';
import BN from 'bn.js';
import BigNumber from 'bignumber.js';
import { BinLiquidity, LMRewards, PositionData, PositionVersion, SwapFee } from '../types';
import { Bin, BinArray, DLMMPosition, LbPair } from './structs';
export declare const MAX_BIN_ARRAY_SIZE: BN;
export declare const SCALE_OFFSET = 64;
export declare const BASIS_POINT_MAX = 10000;
export declare function binIdToBinArrayIndex(binId: BigNumber): BN;
export declare function deriveBinArrayBitmapExtension(lbPair: PublicKey, programId: PublicKey): [PublicKey, number];
export declare function deriveBinArray(lbPair: PublicKey, index: BN, programId: PublicKey): [PublicKey, number];
export declare function processPosition(program: PublicKey, version: PositionVersion, lbPair: LbPair, position: DLMMPosition, baseTokenDecimal: number, quoteTokenDecimal: number, lowerBinArray: BinArray, upperBinArray: BinArray): PositionData | null;
export declare function getBinsBetweenLowerAndUpperBound(lbPair: LbPair, lowerBinId: number, upperBinId: number, baseTokenDecimal: number, quoteTokenDecimal: number, lowerBinArrays: BinArray, upperBinArrays: BinArray): BinLiquidity[];
export declare function getClaimableLMReward(program: PublicKey, positionVersion: PositionVersion, lbPair: LbPair, onChainTimestamp: number, position: DLMMPosition, lowerBinArray: BinArray, upperBinArray: BinArray): LMRewards;
export declare function getClaimableSwapFee(program: PublicKey, positionVersion: PositionVersion, position: DLMMPosition, lowerBinArray: BinArray, upperBinArray: BinArray): SwapFee;
export declare function getBinFromBinArray(binId: number, binArray: BinArray): Bin;
export declare function getBinArrayLowerUpperBinId(binArrayIndex: BigNumber): BigNumber[];
export declare enum Rounding {
Up = 0,
Down = 1
}
export declare function mulShr(x: BN, y: BN, offset: number, rounding: Rounding): BigNumber;
export declare function shlDiv(x: BN, y: BN, offset: number, rounding: Rounding): BigNumber;
export declare function mulDiv(x: BN, y: BN, denominator: BN, rounding: Rounding): BigNumber;
export declare function getPriceOfBinByBinId(binStep: number, binId: number): string;
export declare function getTokensAmountsFromLiquidity(position: DLMMPosition, pool: LbPair, lowerBinArray: BinArray, upperBinArray: BinArray, baseTokenDecimal: number, quoteTokenDecimal: number): {
tokenAmountA: BigNumber;
tokenAmountB: BigNumber;
};