export declare const PROJECT_STATE_KINDS: readonly ["implementation", "coordination"];
export declare const PROJECT_STATE_PHASES: readonly ["discovery", "spec", "design", "plan", "implement", "decomposition"];
export declare const PROJECT_STATE_FRONTMATTER_FIELDS: readonly ["oat_kind", "oat_parent", "oat_siblings", "oat_depends_on", "oat_children", "oat_inherited_context_revalidated", "oat_phase", "oat_phase_status", "oat_status", "oat_workflow_mode", "oat_lifecycle", "oat_current_task", "oat_last_commit", "oat_blockers", "oat_hill_checkpoints", "oat_hill_completed", "oat_parallel_execution", "oat_implement_exit_gate", "oat_pr_status", "oat_pr_url", "oat_project_created", "oat_project_completed", "oat_project_state_updated", "oat_docs_updated", "oat_generated", "oat_template", "oat_template_name"];
export type ProjectStateKind = (typeof PROJECT_STATE_KINDS)[number];
export type ProjectStatePhase = (typeof PROJECT_STATE_PHASES)[number];
export type ProjectStateFrontmatterField = (typeof PROJECT_STATE_FRONTMATTER_FIELDS)[number];
export declare function isProjectStateKind(value: string): value is ProjectStateKind;
export declare function isProjectStatePhase(value: string): value is ProjectStatePhase;
export declare function isProjectStateFrontmatterField(value: string): value is ProjectStateFrontmatterField;
export declare function getFrontmatterBlock(content: string): string | null;
export declare function getFrontmatterField(frontmatter: string, field: string): string | null;
export declare function parseFrontmatterScalarFields(frontmatter: string, fields: readonly string[]): {
    valid: boolean;
    values: Record<string, string>;
};
/**
 * Parse an `oat_generated_at` value into a comparable epoch millisecond time.
 *
 * Review artifacts should carry a UTC, `Z`-suffixed timestamp
 * (`YYYY-MM-DDTHH:MM:SSZ`). A bare date (`YYYY-MM-DD`) already parses as UTC,
 * but a datetime with no timezone designator parses as *local* time, which
 * mis-orders artifacts written by agents in different timezones. Treat such a
 * value as UTC by appending `Z` so ordering is timezone-independent regardless
 * of what the writer emitted. Returns `NaN` for unparseable input.
 */
export declare function parseGeneratedTime(value: string): number;
export declare function parseFrontmatterField(filePath: string, field: string): Promise<string>;
export declare function getSkillVersion(skillDir: string): Promise<string | null>;
export declare function getAgentVersion(agentPath: string): Promise<string | null>;
//# sourceMappingURL=frontmatter.d.ts.map