import type { RalphHooks } 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 type RalphPlanStatus = "open" | "in_progress" | "completed" | "failed";
export interface RalphFrontmatter {
    agent?: string | string[];
    extends?: boolean;
    iterations?: number;
    skills?: string[];
    hooks?: RalphHooks;
    status: {
        state: RalphPlanStatus;
        iteration: number;
    };
}
export declare const ralphDocumentSchemaId = "https://poe-platform.github.io/poe-code/schemas/plans/ralph.schema.json";
export declare const ralphDocumentSchema: JsonSchema;
export declare function parseFrontmatter(content: string): {
    data: RalphFrontmatter;
    body: string;
};
export declare function writeFrontmatter(data: RalphFrontmatter, body: string): string;
export declare function parseFrontmatterData(value: unknown): RalphFrontmatter;
export {};
