import { ChildProcess } from 'child_process'; export declare const API_REQUESTS_CHANNEL_NAME = "api-requests"; export declare const FUNCTION_REPORTS_CHANNEL_NAME = "function-reports"; export declare class MonitoringManager { private queryWorker; private fetchAndLockWorker?; private runtimeWorker?; private logger; private iterations; private intervals; private apiRequestsChannelSubscription; private functionReportsChannelSubscription; static getNewFunctionReporter(name: string, parameters?: any, values?: any): FunctionReporter; static amountOfIterations(): number; static timeBetweenIterations(): number; static timeBetweenStatsCollection(): number; static timeBetweenReportPrint(): number; static enableReportPrint(): boolean; static disableAuth(): boolean; static metricsEnabled(): boolean; init(runtimeWorker: ChildProcess, queryWorker?: ChildProcess, fetchAndLockWorker?: ChildProcess): void; printReport(): void; private reportApiRequest; private reportFunctionReport; getReport(): FullReport; dispose(): void; private getFunctionsReport; private getMemoryUsageReport; private getCPUUsageReport; private getApiRequestsReport; private getSystemStatsReport; private getSystemStats; private rotateIteration; private collectStats; private getHumanReadableCpu; private getHumanReadableMemory; private getHumanReadableTime; private getNewIteration; private getLatestIteration; private getMergedIterations; static getNumberFromEnv(env: string): number; static getBooleanFromEnv(env: string): boolean; } type SystemStatsReport = { totalMemory: string; freeMemory: string; heapSizeLimit: string; }; type CPUUsageReport = { main: { current: string; average: string; }; query: { current: string; average: string; }; fetchAndLock: { current: string; average: string; }; runtime: { current: string; average: string; }; }; type MemoryUsageReport = { main: { current: string; average: string; }; query: { current: string; average: string; }; fetchAndLock: { current: string; average: string; }; runtime: { current: string; average: string; }; }; type ApiRequestsReport = { [route: string]: { count: number; averageDuration: number; maxDuration: number; minDuration: number; averageRequestPayloadSize: string; averageResponsePayloadSize: string; maxRequestPayloadSize: string; minRequestPayloadSize: string; maxResponsePayloadSize: string; minResponsePayloadSize: string; }; }; export type FullReport = { cpuUsage: CPUUsageReport; memoryUsage: MemoryUsageReport; systemStats: SystemStatsReport; apiRequests: ApiRequestsReport; functionsReport: FunctionsReport; oldestIterationTimestamp: Date; }; export type PartialFunctionReport = { id: string; name: string; totalDuration: number; startedAt: Date; workerId: string; currentTimestamp: Date; finished: boolean; values?: string; parameters?: string; callstack?: string; }; export type FunctionAggregateReport = { totalDuration: number; averageDuration: number; maxDuration: number; minDuration: number; count: number; timestamps: Array; values?: Array; parameters?: string; callstack?: string; }; export type FunctionsReport = { [workerId: string]: { [functionName: string]: Array; }; }; export declare class FunctionReporter { private partialFunctionReport; constructor(partialFunctionReport: PartialFunctionReport); updateAndSend(finished?: boolean): void; finish(): void; } export {};