import { MultiCallParams, MultiResult } from '../multi-wrapper'; export type ObjWithUpdateInfo = { value: T; blockNumber: number; lastUpdatedAtMs: number; }; export interface IStatefulRpcPoller { identifierKey: string; dexKey: string; isPoolParticipateInUpdates: boolean; isPoolInTheMiddleOfUpdate: boolean; network: number; isTimeToTriggerUpdate(blockNumber: number): boolean; getFetchStateWithBlockInfoMultiCalls(): [ MultiCallParams, ...MultiCallParams[] ]; parseStateFromMultiResultsWithBlockInfo(multiOutputs: [MultiResult, ...MultiResult[]], lastUpdatedAtMs: number): ObjWithUpdateInfo; setState(state: State, blockNumber: number, lastUpdatedAtMs: number): Promise; fetchStateFromCache(): Promise | null>; fetchLatestStateFromRpc(): Promise | null>; initializeState(): Promise; getState(blockNumber: number): Promise | null>; setLiquidity(newLiquidityInUSD: number, lastUpdatedAtMs: number, blockNumber?: number): Promise; } export type PollingManagerControllersCb = { enableStateTracking: (identifierKey: string) => void; disableStateTracking: (identifierKey: string) => void; registerPendingPool: (statefulRpcPoller: IStatefulRpcPoller) => void; }; export declare enum StateSources { LOCAL_MEMORY = "local_memory", CACHE = "cache", RPC = "rpc" }