/// import Log4js from 'log4js'; import LoadDetection from '../load-detection'; import Logger from '../logger'; import StateManager from '../state-manager'; import Statistics from '../statistics'; import Profiler from '../utils/profiler'; /** * @typedef {import('../state-manager/index').CycleShardData} CycleShardData */ interface StatisticsReport { txInjected: number; txApplied: number; txRejected: number; txProcessed: number; txExpired: number; } interface Reporter { config: any; mainLogger: Log4js.Logger; p2p: any; statistics: Statistics; stateManager: StateManager; profiler: Profiler; loadDetection: LoadDetection; logger: Logger; reportTimer: NodeJS.Timeout; reportingInterval: NodeJS.Timeout; socketReportInterval: NodeJS.Timeout; lastTime: number; doConsoleReport: boolean; hasRecipient: boolean; statisticsReport: StatisticsReport; stillNeedsInitialPatchPostActive: boolean; } declare class Reporter { constructor(config: any, logger: any, statistics: any, stateManager: any, profiler: any, loadDetection: any); resetStatisticsReport(): void; collectStatisticToReport(): void; reportJoining(publicKey: any): Promise; reportJoined(nodeId: any, publicKey: any): Promise; reportActive(nodeId: any): Promise; reportSyncStatement(nodeId: any, syncStatement: any): Promise; reportRemoved(nodeId: any): Promise; _sendReport(data: any): Promise; getReportInterval(): number; getAppData(): unknown; checkIsNodeLost(nodeId: any): boolean; checkIsNodeRefuted(nodeId: any): boolean; report(): Promise; private restartReportInterval; startReporting(): void; consoleReport(): void; stopReporting(): void; } export default Reporter;