import Decimal from 'decimal.js'; import BN from 'bn.js'; import { AccountInfo, PublicKey } from '@solana/web3.js'; import { OracleSettings } from '../../layouts/oracle'; import { OraclePrice } from './oracle'; export declare function i32ToBytes(num: number): Uint8Array; export declare function getTickArrayStartIndexByTick(tickIndex: number, tickSpacing: number): number; export declare function getNextTickArrayStartIndex(lastStart: number, tickSpacing: number, zeroForOne: boolean): number; export declare function getPdaTickArrayAddress(poolId: PublicKey, startIndex: number): PublicKey; declare class Observation { blockTimestamp: BN; tickCumulative: BN; padding: BN[]; constructor(params: { blockTimestamp: BN; tickCumulative: BN; padding: BN[]; }); static decode(data: Buffer, offset?: number): [Observation, number]; sub(other: Observation): Observation; add(other: Observation): Observation; getWeightedObservation(time: BN): Observation; adjustToTimestamp(targetTimestamp: BN, observationPrev: Observation): Observation; } declare class RewardInfo { rewardState: number; openTime: BN; endTime: BN; lastUpdateTime: BN; emissionsPerSecondX64: BN; rewardTotalEmissioned: BN; rewardClaimed: BN; tokenMint: PublicKey; tokenVault: PublicKey; authority: PublicKey; rewardGrowthGlobalX64: BN; constructor(params: { rewardState: number; openTime: BN; endTime: BN; lastUpdateTime: BN; emissionsPerSecondX64: BN; rewardTotalEmissioned: BN; rewardClaimed: BN; tokenMint: PublicKey; tokenVault: PublicKey; authority: PublicKey; rewardGrowthGlobalX64: BN; }); static decode(data: Buffer, offset?: number): [RewardInfo, number]; } export declare class PoolState { bump: number[]; ammConfig: PublicKey; owner: PublicKey; tokenMint0: PublicKey; tokenMint1: PublicKey; tokenVault0: PublicKey; tokenVault1: PublicKey; observationKey: PublicKey; mintDecimals0: number; mintDecimals1: number; tickSpacing: number; liquidity: BN; sqrtPriceX64: BN; tickCurrent: number; padding3: number; padding4: number; feeGrowthGlobal0X64: BN; feeGrowthGlobal1X64: BN; protocolFeesToken0: BN; protocolFeesToken1: BN; swapInAmountToken0: BN; swapOutAmountToken1: BN; swapInAmountToken1: BN; swapOutAmountToken0: BN; status: number; padding: number[]; rewardInfos: RewardInfo[]; tickArrayBitmap: BN[]; totalFeesToken0: BN; totalFeesClaimedToken0: BN; totalFeesToken1: BN; totalFeesClaimedToken1: BN; fundFeesToken0: BN; fundFeesToken1: BN; openTime: BN; recentEpoch: BN; padding1: BN[]; padding2: BN[]; constructor(params: { bump: number[]; ammConfig: PublicKey; owner: PublicKey; tokenMint0: PublicKey; tokenMint1: PublicKey; tokenVault0: PublicKey; tokenVault1: PublicKey; observationKey: PublicKey; mintDecimals0: number; mintDecimals1: number; tickSpacing: number; liquidity: BN; sqrtPriceX64: BN; tickCurrent: number; padding3: number; padding4: number; feeGrowthGlobal0X64: BN; feeGrowthGlobal1X64: BN; protocolFeesToken0: BN; protocolFeesToken1: BN; swapInAmountToken0: BN; swapOutAmountToken1: BN; swapInAmountToken1: BN; swapOutAmountToken0: BN; status: number; padding: number[]; rewardInfos: RewardInfo[]; tickArrayBitmap: BN[]; totalFeesToken0: BN; totalFeesClaimedToken0: BN; totalFeesToken1: BN; totalFeesClaimedToken1: BN; fundFeesToken0: BN; fundFeesToken1: BN; openTime: BN; recentEpoch: BN; padding1: BN[]; padding2: BN[]; }); static decode(data: Buffer, offset?: number): [PoolState, number]; } declare class TickState { tick: number; liquidityNet: BN; liquidityGross: BN; feeGrowthOutside0X64: BN; feeGrowthOutside1X64: BN; rewardGrowthsOutsideX64: BN[]; padding: number[]; constructor(params: { tick: number; liquidityNet: BN; liquidityGross: BN; feeGrowthOutside0X64: BN; feeGrowthOutside1X64: BN; rewardGrowthsOutsideX64: BN[]; padding: number[]; }); static decode(data: Buffer, offset?: number): [TickState, number]; } declare class TickArrayState { poolId: PublicKey; startTickIndex: number; ticks: TickState[]; initializedTickCount: number; recentEpoch: BN; padding: number[]; constructor(params: { poolId: PublicKey; startTickIndex: number; ticks: TickState[]; initializedTickCount: number; recentEpoch: BN; padding: number[]; }); static decode(data: Buffer, offset?: number): [TickArrayState, number]; } export declare class RaydiumCLMMOracle { static deriveObservationKey(poolId: PublicKey): [PublicKey, number]; static getObservationAtIndex(observations: Observation[], index: number): Observation; static getObservationAtTimestamp(timestamp: BN, observations: Observation[], startIndex: number): Observation; static getDeltaObservations(currentTime: BN, observations: Observation[], observationIndex: number, primarySeconds: BN, secondarySeconds: BN): Observation[]; static getSqrtPriceX64FromTick(tick: number): BN; static sqrtPriceX64ToPrice(sqrtPriceX64: BN, decimalsA: number, decimalsB: number): Decimal; static x64ToDecimal(num: BN, decimalPlaces?: number): Decimal; static getSpotPrice(tickCurrent: number, mintDecimals0: number, mintDecimals1: number): Decimal; static getTwapPrimary(observations: Observation[], observationIndex: number, primarySeconds: BN, secondarySeconds: BN, mintDecimals0: number, mintDecimals1: number, currentTime: BN): Decimal; static getTwapSecondary(observations: Observation[], observationIndex: number, primarySeconds: BN, secondarySeconds: BN, mintDecimals0: number, mintDecimals1: number, currentTime: BN): Decimal; static getConfidence(observations: Observation[], observationIndex: number, primarySeconds: BN, secondarySeconds: BN, tickCurrent: number, mintDecimals0: number, mintDecimals1: number, currentTime: BN): Decimal; static calculateMaxPriceImpactForMinLiquidity(oracleParams: OracleSettings, poolState: PoolState, prevTickArray: TickArrayState, currentTickArray: TickArrayState, nextTickArray: TickArrayState, solPrice: OraclePrice, usdPrice: OraclePrice): Decimal; static fetch(oracleParams: OracleSettings, accountInfos: AccountInfo[], solPrice: OraclePrice, usdPrice: OraclePrice): OraclePrice; } export {};