/**
 * Periodic metrics reporter that collects OTel metrics and pushes them
 * to the Platform via WebSocket as `orch.metrics` messages.
 *
 * The Platform aggregates these metrics from all orchestrators and exposes
 * them on its `/metrics` endpoint for Prometheus scraping.
 */
import type { OrchMetrics } from '@kici-dev/engine';
import type { AgentMetricsAggregator } from './agent-metrics-aggregator.js';
export declare class MetricsReporter {
    private timer?;
    private readonly send;
    private readonly intervalMs;
    private readonly agentMetricsAggregator?;
    constructor(opts: {
        send: (msg: OrchMetrics) => void;
        intervalMs?: number;
        /**
         * If provided, the reporter concatenates the aggregator's structured
         * snapshot onto its own snapshot before sending — so agent metrics
         * (`kici_agent_*`) land in Mimir per-org alongside `kici_orch_*`.
         * Each agent metric carries an `agent_id` label injected by the
         * aggregator. See the metrics enforcement plan.
         */
        agentMetricsAggregator?: AgentMetricsAggregator;
    });
    /** Start periodic metric collection and push. */
    start(): void;
    /** Stop the periodic reporter. */
    stop(): void;
    /** Collect current metrics and send as orch.metrics message. */
    collectAndSend(): Promise<void>;
    /** Collect a snapshot of all current OTel metrics. */
    collectSnapshot(): Promise<OrchMetrics['metrics']>;
    /** Map OTel DataPointType to wire format type string. */
    private mapDataPointType;
    /** Extract string labels from OTel Attributes. */
    private extractLabels;
}
//# sourceMappingURL=metrics-reporter.d.ts.map