import { Logger as Log4jsLogger } from 'log4js'; import StateManager from '.'; import Crypto from '../crypto'; import Logger from '../logger'; import { P2PModuleContext as P2P } from '../p2p/Context'; import * as Shardus from '../shardus/shardus-types'; import Profiler from '../utils/profiler'; import { CachedAppData, CacheTopic } from './state-manager-types'; declare class CachedAppDataManager { app: Shardus.App; crypto: Crypto; config: Shardus.StrictServerConfiguration; profiler: Profiler; p2p: P2P; logger: Logger; mainLogger: Log4jsLogger; fatalLogger: Log4jsLogger; shardLogger: Log4jsLogger; statsLogger: Log4jsLogger; statemanager_fatal: (key: string, log: string) => void; stateManager: StateManager; cacheTopicMap: Map; constructor(stateManager: StateManager, profiler: Profiler, app: Shardus.App, logger: Logger, crypto: Crypto, p2p: P2P, config: Shardus.StrictServerConfiguration); setupHandlers(): void; registerTopic(topic: string, maxCycleAge: number, maxCacheElements: number): boolean; getCachedItem(topic: string, dataID: string): CachedAppData; pruneCachedItems(): void; insertCachedItem(topic: string, dataID: string, appData: unknown, cycle: number): void; setMemoryLimit(topic: string, maxItemSize: number): void; factValidateCorrespondingCachedAppDataSender(dataID: string, senderNodeId: string, executionShardKey: string, txId: string): boolean; factSendCorrespondingCachedAppData(topic: string, dataID: string, appData: unknown, cycle: number, _formId: string, txId: string): void; sendCorrespondingCachedAppData(topic: string, dataID: string, appData: unknown, cycle: number, _formId: string, txId: string): Promise; getLocalOrRemoteCachedAppData(topic: string, dataId: string): Promise; } export default CachedAppDataManager;