import { Logger, LogLevels } from '../../types'; import { IDexHelper } from '../../dex-helper'; import { IStatefulRpcPoller, ObjWithUpdateInfo, PollingManagerControllersCb, StateSources } from './types'; import { MultiCallParams, MultiResult } from '../multi-wrapper'; import { LogMessagesSuppressor, MessageInfo } from '../log-messages-suppressor'; declare const StatefulRPCPollerMessages: { readonly ERROR_FETCHING_STATE_FROM_CACHE: "Unexpected error while fetching state from Cache"; readonly ERROR_FETCHING_STATE_FROM_RPC: "Unexpected error while fetching state from RPC"; readonly ERROR_SAVING_LIQUIDITY_IN_CACHE: "Unexpected error while saving liquidity in Cache"; readonly ERROR_SAVING_STATE_IN_CACHE: "Unexpected error while saving state in Cache"; readonly FALLBACK_TO_RPC: "Failed to retrieve updated state from cache. Falling back to RPC"; readonly LIQUIDITY_INFO_IS_OUTDATED: string; }; export declare abstract class StatefulRpcPoller implements IStatefulRpcPoller { readonly dexKey: string; protected dexHelper: IDexHelper; protected liquidityThresholdForUpdate: number; protected liquidityUpdateAllowedDelayMs: number; protected isLiquidityTracked: boolean; protected managerCbControllers: PollingManagerControllersCb; protected maxAllowedStateDelayInBlocks: number; protected blocksBackToTriggerUpdate: number; protected liquidityUpdatePeriodMs: number; static StatefulRPCPollerMessages: Record>; protected _stateWithUpdateInfo?: ObjWithUpdateInfo; protected _liquidityInUSDWithUpdateInfo: ObjWithUpdateInfo; readonly cacheStateKey: string; readonly cacheLiquidityMapKey: string; protected _cachedMultiCallData?: [ MultiCallParams, ...MultiCallParams[] ]; protected _getBlockNumberMultiCall: MultiCallParams; readonly entityName: string; protected logMessagesSuppressor: LogMessagesSuppressor; protected _isPoolParticipateInUpdates: boolean; protected _isPoolInTheMiddleOfUpdate: boolean; readonly identifierKey: string; protected logger: Logger; constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, liquidityThresholdForUpdate: number, liquidityUpdateAllowedDelayMs: number, isLiquidityTracked: boolean, managerCbControllers: PollingManagerControllersCb, maxAllowedStateDelayInBlocks?: number, blocksBackToTriggerUpdate?: number, liquidityUpdatePeriodMs?: number); get network(): number; protected get isMaster(): boolean; protected _isStateOutdated(checkForBlockNumber: number, stateValidBlockNumber: number, stateValidityBlockNumDelay: number): boolean; protected _isStateOutdatedForUse(checkForBlockNumber: number, stateValidBlockNumber: number): boolean; isTimeToTriggerUpdate(blocknumber: number): boolean; protected _retrieveStateWithChecks(retriever: () => Promise | null>, blockNumber: number | 'latest', source: StateSources): Promise | null>; getState(blockNumber?: number | 'latest', forInitialization?: boolean, saveInMemory?: boolean): Promise | null>; protected _logMessageWithSuppression(msgKey: keyof typeof StatefulRPCPollerMessages, ...args: unknown[]): void; protected _immediateLogMessage(message: string, level: LogLevels, ...args: unknown[]): void; get isPoolParticipateInUpdates(): boolean; set isPoolParticipateInUpdates(value: boolean); get isPoolInTheMiddleOfUpdate(): boolean; set isPoolInTheMiddleOfUpdate(value: boolean); protected abstract _getFetchStateMultiCalls(): MultiCallParams[]; getFetchStateWithBlockInfoMultiCalls(): [ MultiCallParams, ...MultiCallParams[] ]; protected abstract _parseStateFromMultiResults(multiOutputs: M[]): State; parseStateFromMultiResultsWithBlockInfo(multiOutputs: [MultiResult, ...MultiResult[]], lastUpdatedAtMs: number): ObjWithUpdateInfo; fetchLatestStateFromRpc(): Promise | null>; setState(state: State, blockNumber: number, lastUpdatedAtMs: number): Promise; protected _saveStateInCache(): Promise; protected _saveLiquidityInCache(): Promise; fetchStateFromCache(): Promise | null>; protected _fetchLiquidityFromCache(): Promise | null>; setLiquidity(newLiquidityInUSD: number, lastUpdatedAtMs: number, blockNumber?: number): Promise; protected _adjustIsStateToBeUpdated(): void; protected _getExpiryTimeForCachedLiquidity(): number; initializeState(): Promise; } export {};