import type { ExperimentFileSystem, MetricDef } from "../types.js";
type JsonSchemaType = "string" | "number" | "integer" | "boolean" | "array" | "object" | "null";
type JsonSchema = {
    $schema?: string;
    $id?: string;
    title?: string;
    description?: string;
    type?: JsonSchemaType | readonly JsonSchemaType[];
    const?: unknown;
    default?: unknown;
    enum?: readonly unknown[];
    minimum?: number;
    minLength?: number;
    minItems?: number;
    items?: JsonSchema;
    properties?: Record<string, JsonSchema>;
    required?: readonly string[];
    additionalProperties?: boolean | JsonSchema;
    anyOf?: readonly JsonSchema[];
};
export interface ExperimentFrontmatter {
    agent?: string | string[];
    extends?: boolean;
    metric?: MetricDef | MetricDef[];
    baseline: Record<string, number> | null;
    max_experiments?: number;
    metric_timeout?: number;
}
export declare const experimentDocumentSchemaId = "https://poe-platform.github.io/poe-code/schemas/plans/experiment.schema.json";
export declare const experimentDocumentSchema: JsonSchema;
export declare function parseExperimentFrontmatter(content: string): {
    frontmatter: ExperimentFrontmatter;
    body: string;
};
export declare function writeExperimentFrontmatter(docPath: string, frontmatter: ExperimentFrontmatter, body: string, fs: ExperimentFileSystem): Promise<void>;
export declare function parseExperimentFrontmatterData(value: unknown): ExperimentFrontmatter;
export {};
