import { type ISchedulerConfig, type ISchedulerMetrics } from './scheduler.interfaces.js'; import type { SchedulerRegistry } from './scheduler.registry.js'; import type { SchedulerExecutor } from './scheduler.executor.js'; export declare class SchedulerMetricsService { private readonly config?; private readonly registry?; private readonly executor?; private startTime; private totalExecutions; private successfulExecutions; private failedExecutions; private executionTimes; private metricsInterval?; private eventEmitter; private lastMetricsUpdate; constructor(config?: ISchedulerConfig | undefined, registry?: SchedulerRegistry | undefined, executor?: SchedulerExecutor | undefined); private setupMetricsCollection; private recordExecution; private recordFailure; private updateMetrics; getMetrics(): ISchedulerMetrics; getJobMetrics(jobName: string): { executionCount: number; failureCount: number; avgExecutionTime: number; lastExecution?: Date; lastResult?: any; lastError?: Error; } | null; getSuccessRate(): number; getFailureRate(): number; getTopFailingJobs(limit?: number): Array<{ name: string; failureCount: number; failureRate: number; }>; getSlowestJobs(limit?: number): Array<{ name: string; avgExecutionTime: number; }>; resetMetrics(): void; exportMetrics(): { metrics: ISchedulerMetrics; details: { successRate: number; failureRate: number; topFailingJobs: Array<{ name: string; failureCount: number; failureRate: number; }>; slowestJobs: Array<{ name: string; avgExecutionTime: number; }>; }; }; onMetricsUpdate(handler: (metrics: ISchedulerMetrics) => void): void; destroy(): void; } //# sourceMappingURL=scheduler.metrics.d.ts.map