import { ICPUMonitorOptions, ICPUUsage } from './types/index.js';
export declare class CPUMonitor {
    private static instance;
    private readonly baselines;
    private readonly maxBaselineAgeMs;
    private readonly precision;
    protected constructor(options?: ICPUMonitorOptions);
    static getInstance(options?: ICPUMonitorOptions): CPUMonitor;
    private cleanupOldBaselines;
    private takeSnapshot;
    private calculateUsage;
    getStats(callerId?: string): ICPUUsage;
    getStatsOverInterval(callerId?: string, intervalMs?: number): Promise<ICPUUsage>;
    generateCallerId(): string;
    removeCaller(callerId: string): boolean;
    hasCaller(callerId: string): boolean;
    getActiveCallerCount(): number;
    getActiveCallers(): readonly string[];
    getBaselineAge(callerId: string): number | null;
    reset(): void;
    cleanup(): void;
    getMonitorStats(): {
        readonly activeCallers: number;
        readonly oldestBaseline: number;
        readonly newestBaseline: number;
        readonly totalBaselines: number;
    };
    getOneTimeStats(): ICPUUsage;
    getStatsWithAutoId(): {
        readonly callerId: string;
        readonly usage: ICPUUsage;
        readonly cleanup: () => void;
    };
}
//# sourceMappingURL=cpu-monitor.d.ts.map