import { IReward } from '../../interfaces.js'; import { PoolTemplate } from "../PoolTemplate.js"; import memoize from "memoizee"; export interface IStatsParameters { lpTokenSupply: string; virtualPrice: string; fee: string; adminFee: string; A: string; future_A?: string; initial_A?: string; future_A_time?: number; initial_A_time?: number; gamma?: string; priceOracle?: string[]; priceScale?: string[]; } export interface IStatsPool { pool: PoolTemplate; parameters(): Promise; underlyingBalances(): Promise; wrappedBalances(): Promise; totalLiquidity(useApi?: boolean): Promise; volume(): Promise; baseApy(): Promise<{ day: string; week: string; }>; tokenApy(useApi?: boolean): Promise<[number, number]>; rewardsApy(useApi?: boolean): Promise; } export declare class StatsPool implements IStatsPool { pool: PoolTemplate; constructor(pool: PoolTemplate); /** * Safely fetches admin_fee from contract with fallback logic. * This is necessary because for new pools we don't know their ABI in advance, * and there's no way to determine it beforehand. */ private _getAdminFeeSafely; parameters: () => Promise; wrappedBalances(): Promise; underlyingBalances(): Promise; totalLiquidity: (useApi?: boolean) => Promise; totalLiquidityMemoized: ((useApi?: boolean) => Promise) & memoize.Memoized<(useApi?: boolean) => Promise>; volume: () => Promise; baseApy: () => Promise<{ day: string; week: string; }>; tokenApy: (useApi?: boolean) => Promise<[baseApy: number, boostedApy: number]>; rewardsApy: (useApi?: boolean) => Promise; }