export declare const METRICS_SAMPLE_INTERVAL_MS = 2000; export declare const METRICS_HISTORY_CAPACITY = 900; export interface LaunchMetricSample { cpuPercent: number; memoryBytes: number; threadCount: number; } export interface LaunchHistorySample extends LaunchMetricSample { at: number; } export interface LaunchHistoryEntry { index: number; at: number; sample: LaunchMetricSample; } export interface ProcessEntry { pid: number; ppid: number; cpuMs: number; rssBytes: number; threads: number; } export interface RunningRunRef { configId: string; pid: number; } export declare function parseWindowsProcessTable(output: string): ProcessEntry[]; export declare function parsePsCpuTime(value: string): number; export declare function parseUnixProcessTable(output: string, threadsColumn: boolean): ProcessEntry[]; export interface ProcessTreeAggregate { cpuMs: number; rssBytes: number; threads: number; found: boolean; } export declare function aggregateProcessTree(entries: ProcessEntry[], rootPid: number): ProcessTreeAggregate; export declare function computeCpuPercent(previous: { at: number; totalCpuMs: number; }, current: { at: number; totalCpuMs: number; }): number; export declare class LaunchMetricsMonitor { private readonly getRuns; private readonly histories; private readonly cpuBaselines; private timer; private ticking; constructor(getRuns: () => RunningRunRef[]); ensureRunning(): void; stop(): void; clear(configId: string): void; getLatest(configId: string): LaunchMetricSample | null; getHistory(configId: string, limit?: number): LaunchHistorySample[]; getHistoryEntriesSince(configId: string, sinceIndex: number, limit?: number): LaunchHistoryEntry[]; private tick; }