///
///
import BigNumber from 'bignumber.js';
import BN from 'bn.js';
import { TokenPrice, Yield } from '@sonarwatch/portfolio-core';
import { PublicKey } from '@solana/web3.js';
import { PersonalPositionState, PoolState, TickArrayState } from './structs/clmms';
import { ParsedAccount } from '../../utils/solana';
import { PortfolioAssetTokenParams } from '../../utils/elementbuilder/Params';
export declare function raydiumTickToPriceX64(tick: number): BN;
export declare function getRaydiumTokenAmountsFromLiquidity(sqrtPriceCurrentX64: BigNumber, sqrtPriceX64A: BigNumber, sqrtPriceX64B: BigNumber, liquidity: BigNumber, roundUp: boolean): {
tokenAmountA: BigNumber;
tokenAmountB: BigNumber;
};
export declare function getStakePubKey(owner: string): PublicKey;
export declare function getFarmYield(rewardToken: TokenPrice, rewardPerBlock: BigNumber, tvl: number, slotsPerSec?: number): Yield;
export declare function getPendingAssetParams(depositBalance: BigNumber, rewardDebt: BigNumber, perShare: BigNumber, rewardToken: TokenPrice, multiplier: number | BigNumber): PortfolioAssetTokenParams;
export declare const getTickArrayAddress: (programId: string, poolId: string, tickNumber: number, tickSpacing: number) => PublicKey;
export declare const getFeesAndRewardsBalance: (personalPositionInfo: ParsedAccount, poolStateInfo: ParsedAccount, tickArrays: (ParsedAccount | null)[]) => {
tokenFeeAmountA: BigNumber;
tokenFeeAmountB: BigNumber;
rewards: BigNumber[];
} | null;
export declare function hasAcceptedPairAndEnoughLiquidity(mints: string[], amounts: BigNumber[], tokenPrices: (TokenPrice | undefined)[]): boolean;