import type { CanonicalState } from "../types/index.js"; export declare const AI_METADATA_DIR = "ai"; export type RepositoryType = "greenfield" | "brownfield" | "hybrid" | "unknown"; export type MutationPolicy = "READ_ONLY" | "PROPOSAL_ONLY" | "MUTATING"; export type LifecyclePhase = "uninitialized" | "initialized" | "planning" | "approved" | "executing" | "blocked" | "complete"; export type AiDiscoveryMetadata = { version: string; supportedInputTypes: string[]; supportedOutputArtifacts: string[]; discoveryModes: Array<{ name: string; repositoryType: RepositoryType; command: string; description: string; }>; }; export type AiCapabilityMetadata = { version: string; capabilities: Array<{ name: string; description: string; availability: "available" | "requires_mission" | "requires_expedition" | "unavailable"; }>; }; export type AiLifecycleMetadata = { version: string; repositoryType: RepositoryType; currentPhase: LifecyclePhase; governanceVersion: string; mutationPolicy: MutationPolicy; activeMissionId?: string; activeExpeditionId?: string; blockers: string[]; }; export type AiProtocolMetadata = { version: string; protocols: Array<{ name: string; version: string; url?: string; }>; }; export type AiSkillRecommendation = { version: string; skills: Array<{ id: string; name: string; trigger: string; description: string; }>; }; export type AiMetadataBundle = { discovery: AiDiscoveryMetadata; capabilities: AiCapabilityMetadata; lifecycle: AiLifecycleMetadata; protocols: AiProtocolMetadata; skills: AiSkillRecommendation; }; export declare function deriveRepositoryType(state: CanonicalState): RepositoryType; export declare function deriveLifecyclePhase(state: CanonicalState): LifecyclePhase; export declare function deriveMutationPolicy(phase: LifecyclePhase): MutationPolicy; export declare function deriveActiveMission(state: CanonicalState): { id: string; name: string; } | undefined; export declare function deriveActiveExpedition(state: CanonicalState): { id: string; name: string; } | undefined; export declare function deriveBlockers(state: CanonicalState): string[]; export declare function deriveAiMetadata(state: CanonicalState, manifest: { name?: string; governanceVersion?: string; }): AiMetadataBundle; export declare function writeAiMetadata(synthDir: string, state: CanonicalState, manifest: { name?: string; governanceVersion?: string; }): Promise; export declare function refreshAiMetadata(synthDir: string): Promise;