import { DeepReadonly } from 'ts-essentials'; import { Result } from '@ethersproject/abi'; import { IDexHelper } from '../../../dex-helper/idex-helper'; import { Logger } from '../../../types'; import { EkuboContracts } from '../types'; import { EkuboPool, Quote } from './pool'; import { PoolKey, StableswapPoolTypeConfig, SwappedEvent } from './utils'; import { FullRangePoolState } from './full-range'; export declare abstract class StableswapPoolBase extends EkuboPool { private readonly bounds; protected readonly quoteDataFetcher: import("ethers").Contract; constructor(parentName: string, dexHelper: IDexHelper, logger: Logger, contracts: EkuboContracts, initBlockNumber: number, key: PoolKey); protected _quote(amount: bigint, isToken1: boolean, state: DeepReadonly, sqrtRatioLimit?: bigint): Quote; protected _computeTvl(state: DeepReadonly): [bigint, bigint]; } export declare function quoteStableswap(fee: bigint, { lowerPrice, upperPrice }: StableswapBounds, amount: bigint, isToken1: boolean, state: DeepReadonly>, sqrtRatioLimit?: bigint): Quote>; export declare class StableswapPool extends StableswapPoolBase { generateState(blockNumber?: number | 'latest'): Promise>; protected handlePositionUpdated(args: Result, oldState: DeepReadonly): DeepReadonly | null; protected handleSwappedEvent(ev: SwappedEvent, _oldState: DeepReadonly): DeepReadonly | null; } export interface StableswapBounds { lowerPrice: bigint; upperPrice: bigint; } export declare function computeStableswapBounds(config: StableswapPoolTypeConfig): StableswapBounds;