import { AbiCoder } from 'web3-eth-abi'; import { Logger } from 'log4js'; import { MultiCallParams } from '../../../lib/multi-wrapper'; import { CurveV1FactoryData, ImplementationNames, PoolConstants, PoolContextConstants, PoolState } from '../types'; import { Address } from '@paraswap/core'; export type MulticallReturnedTypes = bigint | bigint[]; export declare abstract class PoolPollingBase { readonly logger: Logger; readonly dexKey: string; readonly network: number; readonly cacheStateKey: string; readonly implementationName: ImplementationNames; readonly implementationAddress: Address; readonly stateUpdatePeriodMs: number; readonly poolIdentifier: string; readonly poolConstants: PoolConstants; readonly poolContextConstants: PoolContextConstants; readonly address: Address; readonly curveLiquidityApiSlug: string; readonly isLendingPool: boolean; readonly baseStatePoolPolling: PoolPollingBase | undefined; readonly isSrcFeeOnTransferSupported: boolean; readonly customGasCost: number | undefined; readonly CLASS_NAME: string; readonly fullName: string; protected _poolState: PoolState | null; protected abiCoder: AbiCoder; liquidityUSD: number; readonly isMetaPool: boolean; readonly coinsToIndices: Record; readonly underlyingCoinsToIndices: Record; readonly underlyingDecimals: number[]; readonly isUsedForPricing: boolean; constructor(logger: Logger, dexKey: string, network: number, cacheStateKey: string, implementationName: ImplementationNames, implementationAddress: Address, stateUpdatePeriodMs: number, poolIdentifier: string, poolConstants: PoolConstants, poolContextConstants: PoolContextConstants, address: Address, curveLiquidityApiSlug: string, isLendingPool: boolean, baseStatePoolPolling: PoolPollingBase | undefined, isSrcFeeOnTransferSupported: boolean, customGasCost: number | undefined); setState(newState: PoolState): Promise; abstract getStateMultiCalldata(): MultiCallParams[]; abstract parseMultiResultsToStateValues(multiOutputs: MulticallReturnedTypes[], blockNumber: number, updatedAtMs: number): PoolState; isStateUpToDate(state: PoolState | null): boolean; getState(): PoolState | null; hasEnoughLiquidity(): boolean; getPoolData(srcAddress: Address, destAddress: Address): CurveV1FactoryData | null; private _reduceToIndexMapping; }