import Logger from '../logger/Logger'; export type PressureState = 'nominal' | 'fair' | 'serious' | 'critical'; /** * Wraps the browser Compute Pressure API to expose the latest CPU pressure * state. Returns `null` from {@link currentState} when the API is unavailable * or no sample has been received yet. Callers are responsible for any encoding * (e.g. into a metric value). */ export default class ComputePressureMonitor { private logger; private sampleIntervalMs; private static readonly DEFAULT_SAMPLE_INTERVAL_MS; private observer; private latestState; constructor(logger: Logger, sampleIntervalMs?: number); /** * Begins observing CPU pressure. Safe to call when the API is unavailable; * in that case it logs a debug message and does nothing. */ start(): Promise; stop(): void; /** * Returns the latest observed CPU pressure state, or `null` if no sample has * been observed yet. */ currentState(): PressureState | null; private getPressureObserverCtor; }