/** Scalar metric units after normalization. */ export type MetricUnit = 'number' | 'percent' | 'seconds' | 'text'; /** A source metric with a normalized value and its original display text. */ export interface Metric { value: number | string | boolean | null; displayName: string | null; displayValue: string | null; unit: MetricUnit; percentile: number | null; } /** Validate an untrusted JSON record before inspecting its properties. */ export declare function record(value: unknown, label: string): Record; /** Read optional source metadata without treating absence as a fake value. */ export declare function optionalRecord(value: unknown): Record; /** Validate a source list rather than silently discarding malformed entries. */ export declare function list(value: unknown, label: string): unknown[]; /** Return a nonempty source string or an explicit missing value. */ export declare function text(value: unknown): string | null; /** Clean en-US grouped numbers and percentages without converting blanks to 0. */ export declare function number(value: unknown): number | null; /** Parse a displayed duration when the source omits its numeric value. */ export declare function durationSeconds(value: unknown): number | null; /** Normalize valid source dates, excluding the upstream expiry sentinel. */ export declare function timestamp(value: unknown): string | null; /** Normalize one metric while preserving nulls and the source's units. */ export declare function normalizeMetric(value: unknown): Metric; /** Normalize all source metrics without exposing their mutable raw objects. */ export declare function normalizeMetrics(value: unknown): Record; /** Read an envelope and report source errors before domain parsing. */ export declare function unwrap(value: unknown): unknown;