import type { ExperimentMetric, ExperimentStoreResult } from "../shared/types.js"; type Failure = Extract, { ok: false; }>; export declare const NAME_MAX = 240; export declare const HYPOTHESIS_MAX = 8000; export declare const METRIC_NAME_MAX = 120; export declare const UNIT_MAX = 64; export declare const MEASUREMENT_MAX = 4000; export declare const NOTE_MAX = 8000; export declare const OWNER_MAX = 120; export declare function failure(reason: Failure["reason"], detail: string): Failure; export declare function isFailure(value: T | Failure): value is Failure; export declare function requiredText(value: unknown, field: string, max: number): string | Failure; /** The Todo id's shape only. Whether that Todo exists is the store's question, * because only the store holds the ledger to ask. */ export declare function normalizeTodoId(value: unknown): string | Failure; /** Free-form, like work_items.assignee: employees are files that can be renamed * or removed, and a stored experiment must not become unwritable when they are. */ export declare function normalizeOwner(value: unknown): string | Failure; export declare function normalizeMetrics(value: unknown): ExperimentMetric[] | Failure; export declare function normalizeHorizon(value: unknown): number | Failure; export declare function normalizeBaseline(value: unknown, metrics: ExperimentMetric[]): Record | Failure; export {}; //# sourceMappingURL=validation.d.ts.map