/**
 * Central coordinator for the Metrics Collection System.
 *
 * Registers collectors and sinks, runs periodic collection cycles,
 * assembles immutable MetricSnapshot objects, and dispatches them
 * to all registered sinks.
 */
import type { ILogger } from '../types/ILogger.js';
import type { IMetricCollector, IMetricsSink, MetricSnapshot, MetricsManagerConfig } from './types.js';
export declare class MetricsManager {
    private readonly collectors;
    private readonly sinks;
    private readonly config;
    private readonly logger;
    private timer;
    private snapshotCounter;
    private collectionsCompleted;
    private collectorErrorsTotal;
    private sinkErrorsTotal;
    private lastCollectionDurationMs;
    private closed;
    private readonly processStartTime;
    constructor(config: MetricsManagerConfig, logger: ILogger);
    registerCollector(collector: IMetricCollector): void;
    registerSink(sink: IMetricsSink): void;
    start(): void;
    collectNow(): Promise<MetricSnapshot>;
    private collectFromCollectors;
    private warnIfOversized;
    private warnIfSlow;
    private deepFreezeSnapshot;
    private dispatchToSinks;
    close(): Promise<void>;
    getManagerStats(): {
        collectionsCompleted: number;
        collectorErrorsTotal: number;
        sinkErrorsTotal: number;
        lastCollectionDurationMs: number;
        collectorsRegistered: number;
        sinksRegistered: number;
        disabledCollectors: number;
        processStartTime: string;
    };
    private assertOpen;
    private buildSelfMonitoringMetrics;
}
//# sourceMappingURL=MetricsManager.d.ts.map