import type { FabricEvent } from './types.js'; import type { SubmissionTelemetrySink } from './submission-telemetry.js'; export declare const FABRIC_OPERATIONAL_METRICS: { readonly requestLatencyMs: "fabric_harness_request_latency_ms"; readonly submissionDurationMs: "fabric_harness_submission_duration_ms"; readonly queueAgeMs: "fabric_harness_queue_age_ms"; readonly errorsTotal: "fabric_harness_errors_total"; readonly approvalWaitMs: "fabric_harness_approval_wait_ms"; readonly recoveryDurationMs: "fabric_harness_recovery_duration_ms"; readonly costUsdTotal: "fabric_harness_cost_usd_total"; }; export interface OperationalMetricsSnapshot { generatedAt: string; histograms: Record; counters: Record; } export interface OperationalSloTargets { requestLatencyP95Ms?: number; queueAgeP95Ms?: number; errorRateMax?: number; approvalWaitP95Ms?: number; recoveryP95Ms?: number; costUsdMax?: number; } export interface OperationalSloEvaluation { ok: boolean; checks: Array<{ metric: string; actual: number; target: number; ok: boolean; }>; } export interface OperationalMetricsCollector { readonly submissionSink: SubmissionTelemetrySink; recordEvent(event: FabricEvent): void; recordRequest(durationMs: number, outcome?: 'ok' | 'error'): void; recordRecovery(durationMs: number, recovered: boolean): void; snapshot(): OperationalMetricsSnapshot; openMetrics(): string; reset(): void; } /** Low-cardinality operational metrics collector suitable for OTel/Prometheus bridging. */ export declare function createOperationalMetricsCollector(): OperationalMetricsCollector; export declare function evaluateOperationalSlos(snapshot: OperationalMetricsSnapshot, targets: OperationalSloTargets): OperationalSloEvaluation; //# sourceMappingURL=operational-metrics.d.ts.map