import { Config } from "../config"; import type { ConfigEvaluationMetadata, ConfigEvaluationCounter } from "../types"; import type { Quonfig } from "../quonfig"; /** * Massage the selected value into the format expected by the telemetry API. */ export declare const massageSelectedValue: (config: Config) => any; /** * Build a telemetry counter entry for a config evaluation. */ export declare const massageConfigForTelemetry: (config: Config, metadata: Omit) => ConfigEvaluationCounter; /** * Collects evaluation summaries for the live telemetry window. The reporter * (./reporter.ts) owns the tick timer and drains this once per tick. * * Bounded (P6): at most `maxKeys` distinct (key, configType) pairs per * window; a new key beyond the cap is not recorded (drop newest), while keys * already in the window keep counting. */ export declare class EvaluationSummaryAggregator { data: Map; private client; private maxKeys; private startAt; private enabled; constructor(client: Quonfig, maxKeys: number); record(config: Config): void; /** Stop recording and clear the window (telemetry disabled, P3). */ disable(): void; /** * Close the live window: serialize it once and reset. Returns undefined for * an empty window. This is the only serialization; the transport queue * stores and resends these exact bytes (P5, P9). */ drain(): string | undefined; private static buildSummaries; private buildEvents; }