import { BN } from "@coral-xyz/anchor"; import type { AdaptiveFeeInfo } from "../public"; import type { AdaptiveFeeConstantsData, AdaptiveFeeVariablesData } from "../../types/public"; export declare abstract class FeeRateManager { static new(aToB: boolean, currentTickIndex: number, timestamp: BN, staticFeeRate: number, adaptiveFeeInfo: AdaptiveFeeInfo | null): FeeRateManager; abstract updateVolatilityAccumulator(): void; abstract getTotalFeeRate(): number; abstract getBoundedSqrtPriceTarget(sqrtPrice: BN, currLiquidity: BN): { boundedSqrtPriceTarget: BN; adaptiveFeeUpdateSkipped: boolean; }; abstract advanceTickGroup(): void; abstract advanceTickGroupAfterSkip(sqrtPrice: BN, nextTickSqrtPrice: BN, nextTickIndex: number): void; abstract updateMajorSwapTimestamp(preSqrtPrice: BN, postSqrtPrice: BN): void; abstract getNextAdaptiveFeeInfo(): AdaptiveFeeInfo | null; } export declare class AdaptiveFeeVariables { private lastReferenceUpdateTimestamp; private lastMajorSwapTimestamp; private tickGroupIndexReference; private volatilityReference; private volatilityAccumulator; constructor(lastReferenceUpdateTimestamp: BN, lastMajorSwapTimestamp: BN, tickGroupIndexReference: number, volatilityReference: number, volatilityAccumulator: number); getCoreTickGroupRange(adaptiveFeeConstants: AdaptiveFeeConstantsData): { coreTickGroupRangeLowerBound: { tickGroupIndex: number; sqrtPrice: BN; } | null; coreTickGroupRangeUpperBound: { tickGroupIndex: number; sqrtPrice: BN; } | null; }; updateReference(tickGroupIndex: number, timestamp: BN, adaptiveFeeConstants: AdaptiveFeeConstantsData): void; updateVolatilityAccumulator(tickGroupIndex: number, adaptiveFeeConstants: AdaptiveFeeConstantsData): void; updateMajorSwapTimestamp(preSqrtPrice: BN, postSqrtPrice: BN, timestamp: BN, adaptiveFeeConstants: AdaptiveFeeConstantsData): void; computeAdaptiveFeeRate(adaptiveFeeConstants: AdaptiveFeeConstantsData): number; toData(): AdaptiveFeeVariablesData; static isMajorSwap(preSqrtPrice: BN, postSqrtPrice: BN, majorSwapThresholdTicks: number): boolean; }