import { n as WorkerMetricsSummary, r as WorkerSnapshot } from "./worker-performance-DtRuJrGV.mjs";
import { PerformanceTimeEntry } from "@awesome-ecs/abstract/utils";

//#region src/utils/worker-performance-tracker.d.ts
/**
 * Tracks performance metrics for worker operations, allowing for aggregation and analysis of execution times across different worker tasks.
 * Metrics are sampled at regular intervals and can be retrieved in summary form for overall or per-worker insights.
 *
 * @injectable
 */
declare class WorkerPerformanceTracker {
  static readonly MAX_SNAPSHOTS = 120;
  static readonly SAMPLE_INTERVAL_MS = 250;
  private readonly _snapshots;
  private readonly _pendingMetrics;
  private readonly _perWorkerPending;
  private readonly _aggregate;
  private readonly _perWorkerAggregate;
  private _pendingMaxQueueSize;
  private _pendingStalledCount;
  private _pendingWaitTimes;
  private _lastSampleTime;
  private _enabled;
  private _aggregateDirty;
  private _cachedSummaries;
  private _perWorkerDirty;
  private _cachedPerWorker;
  get snapshots(): ReadonlyArray<WorkerSnapshot>;
  get enabled(): boolean;
  set enabled(value: boolean);
  get queueHistory(): number[];
  get stalledHistory(): number[];
  get waitTimeHistory(): number[];
  get eventTypeHistories(): Map<string, number[]>;
  get summaries(): WorkerMetricsSummary[];
  get perWorkerSummaries(): Map<string, WorkerMetricsSummary[]>;
  recordQueueSize(size: number): void;
  recordStalledCount(count: number): void;
  recordWaitTimes(times: number[]): void;
  addMetric(workerUid: string, entry: PerformanceTimeEntry): void;
  addMetrics(workerUid: string, entries: PerformanceTimeEntry[]): void;
  sample(now?: number): void;
  clear(): void;
  private mergeIntoAggregate;
  private mergePerWorkerAggregate;
  private getOrCreateWorkerAgg;
  private mergeEntry;
}
//#endregion
export { WorkerPerformanceTracker as t };
//# sourceMappingURL=worker-performance-tracker-C05lF1yQ.d.mts.map