import { Currency, CurrencyAmount, Percent } from '@pancakeswap/sdk'; import { FeeAmount, Tick } from '@pancakeswap/v3-sdk'; import { Address, Hex } from 'viem'; export declare enum PoolType { V2 = 0, V3 = 1, STABLE = 2, InfinityCL = 3, InfinityBIN = 4, InfinityStable = 5, SVM = 6 } export interface BasePool { type: PoolType; } export interface SVMPool extends BasePool { type: PoolType.SVM; id: string; fee?: number; feeAmount?: string; feeMintAddress?: string; } export interface V2Pool extends BasePool { type: PoolType.V2; reserve0: CurrencyAmount; reserve1: CurrencyAmount; } export interface StablePool extends BasePool { address: Address; type: PoolType.STABLE; balances: CurrencyAmount[]; amplifier: bigint; fee: Percent; } export interface V3Pool extends BasePool { type: PoolType.V3; token0: Currency; token1: Currency; fee: FeeAmount; liquidity: bigint; sqrtRatioX96: bigint; tick: number; address: Address; token0ProtocolFee: Percent; token1ProtocolFee: Percent; ticks?: Tick[]; reserve0?: CurrencyAmount; reserve1?: CurrencyAmount; } export type BaseInfinityPool = BasePool & { id: `0x${string}`; currency0: Currency; currency1: Currency; fee: number; protocolFee?: number; hooks?: Address; hooksRegistrationBitmap?: Hex | number; poolManager: Address; reserve0?: CurrencyAmount; reserve1?: CurrencyAmount; }; export type InfinityClPool = BaseInfinityPool & { type: PoolType.InfinityCL; tickSpacing: number; liquidity: bigint; sqrtRatioX96: bigint; tick: number; ticks?: Tick[]; }; export type InfinityStablePool = BaseInfinityPool & { type: PoolType.InfinityStable; tickSpacing: number; amplifier: number; stableFee: number; }; type ActiveId = number; type Reserve = { reserveX: bigint; reserveY: bigint; }; export type InfinityBinPool = BaseInfinityPool & { type: PoolType.InfinityBIN; binStep: number; activeId: ActiveId; reserveOfBin?: Record; }; export type Pool = V2Pool | V3Pool | StablePool | InfinityBinPool | InfinityClPool | SVMPool | InfinityStablePool; export interface WithTvl { tvlUSD: bigint; } export type V3PoolWithTvl = V3Pool & WithTvl; export type V2PoolWithTvl = V2Pool & WithTvl; export type StablePoolWithTvl = StablePool & WithTvl; export type InfinityPoolWithTvl = (InfinityClPool | InfinityBinPool) & WithTvl; export {}; //# sourceMappingURL=pool.d.ts.map