import { Logger } from 'log4js'; import { Result } from '@ethersproject/abi'; import { DeepReadonly } from 'ts-essentials'; import { IDexHelper } from '../../../dex-helper/idex-helper'; import { BasicQuoteData, BoostedFeesQuoteData, EkuboContracts, PoolInitializationState } from '../types'; import { ConcentratedPoolBase, ConcentratedPoolState } from './concentrated'; import { Quote } from './pool'; import { ConcentratedPoolTypeConfig, PoolKey, SwappedEvent } from './utils'; import { TimedPoolState } from './timed'; import { EkuboSupportedNetwork } from '../config'; export declare class BoostedFeesPool extends ConcentratedPoolBase { private readonly boostedFeesDataFetcher; private readonly chainId; constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, initBlockNumber: number, key: PoolKey); generateState(blockNumber?: number | 'latest'): Promise>; protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly, sqrtRatioLimit?: bigint): Quote; protected handlePositionUpdated(args: Result, oldState: DeepReadonly): DeepReadonly | null; protected handleSwappedEvent(ev: SwappedEvent, oldState: DeepReadonly): DeepReadonly | null; } export declare function quoteBoostedFees(key: PoolKey, amount: bigint, isToken1: boolean, state: DeepReadonly, sqrtRatioLimit?: bigint, overrideTime?: bigint, chainId?: EkuboSupportedNetwork): Quote & { timedPoolState: TimedPoolState.Object; }>; export declare namespace BoostedFeesPoolState { type DonateRateDelta = TimedPoolState.TimeRateDelta; interface Object extends ConcentratedPoolState.Object { timedPoolState: TimedPoolState.Object; } function fromPoolInitialization(state: PoolInitializationState): DeepReadonly; function fromQuoter(quoteData: BasicQuoteData, boostedData: BoostedFeesQuoteData): DeepReadonly; function fromSwappedEvent(oldState: DeepReadonly, ev: SwappedEvent): Object; function fromPositionUpdatedEvent(oldState: DeepReadonly, ticks: [number, number], liquidityDelta: bigint): Object | null; function fromFeesDonatedEvent(oldState: DeepReadonly, ev: FeesDonatedEvent, blockTimestamp: bigint): Object; function fromPoolBoostedEvent(oldState: DeepReadonly, [startTime, endTime]: [bigint, bigint], [rate0, rate1]: [bigint, bigint]): Object | null; } interface FeesDonatedEvent { donateRate0: bigint; donateRate1: bigint; } export {};