import type { Experiment, ExperimentMetric, ExperimentReading, ExperimentStoreResult, ExperimentVerdict } from "../shared/types.js"; import { type HydratedExperiment } from "./hydrate.js"; export type { Experiment, ExperimentMetric, ExperimentReading, ExperimentStoreResult, ExperimentVerdict } from "../shared/types.js"; export type { HydratedExperiment } from "./hydrate.js"; export interface CreateExperimentInput { name: string; hypothesis: string; baseline: Record; metrics: ExperimentMetric[]; horizonDays: number; todoId?: string | null; owner?: string | null; } /** An absent field is left as it stands; `null` clears it. */ export interface UpdateExperimentInput { name?: string; hypothesis?: string; metrics?: ExperimentMetric[]; baseline?: Record; horizonDays?: number; todoId?: string | null; owner?: string | null; } export interface RecordReadingInput { at: string; metric: string; value: number; note?: string; } export interface ConcludeExperimentInput { outcome: ExperimentVerdict["outcome"]; note: string; } interface CreateExperimentInternal { id?: string; checkInCronJobId?: string; startedAt?: string; } export declare const LIST_LIMIT_DEFAULT = 100; export declare const LIST_LIMIT_MAX = 500; export declare function getExperiment(id: string): ExperimentStoreResult; export declare function listExperiments(status?: Experiment["status"], limit?: number): HydratedExperiment[]; export declare function createExperiment(input: CreateExperimentInput, internal?: CreateExperimentInternal): ExperimentStoreResult; export declare function recordReading(id: string, input: RecordReadingInput): ExperimentStoreResult; export declare function updateExperiment(id: string, input: UpdateExperimentInput): ExperimentStoreResult; export declare function concludeExperiment(id: string, input: ConcludeExperimentInput): ExperimentStoreResult; //# sourceMappingURL=store.d.ts.map