import { DeepReadonly } from 'ts-essentials'; import { IDexHelper } from '../../../dex-helper/idex-helper'; import { Logger } from '../../../types'; import { BasicQuoteData, EkuboContracts } from '../types'; import { EkuboPool, PoolKeyed, Quote } from './pool'; import { PoolKey, SwappedEvent } from './utils'; export declare class FullRangePool extends EkuboPool { private readonly dataFetcher; constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, key: PoolKey); generateState(blockNumber?: number | 'latest'): Promise>; protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly, sqrtRatioLimit?: bigint): Quote; quoteFullRange(this: PoolKeyed, amount: bigint, isToken1: boolean, state: DeepReadonly, sqrtRatioLimit?: bigint): Quote; protected _computeTvl(state: FullRangePoolState.Object): [bigint, bigint]; } export declare namespace FullRangePoolState { type Object = { sqrtRatio: bigint; liquidity: bigint; }; function fromQuoter(data: BasicQuoteData): DeepReadonly; function fromPositionUpdatedEvent(oldState: DeepReadonly, liquidityDelta: bigint): Object | null; function fromSwappedEvent(ev: SwappedEvent): Object; function computeTvl(state: Object): [bigint, bigint]; }