import { type GraphNode } from "./graph.ts"; import { type StagePreparation } from "./preparation.ts"; import { type PublicBundleResult } from "./design-bundle.ts"; import { type DesignFeedback, type FeedbackInterpretation } from "./design-feedback.ts"; export declare const DESIGN_RUN_STATUSES: readonly ["preparing", "planning", "qualifying", "generating", "reviewing", "awaiting_design_feedback", "interpreting_feedback", "needs_clarification", "synthesizing", "verifying", "final_preview_ready", "concept_preview_ready", "rejected", "blocked"]; export type DesignRunStatus = (typeof DESIGN_RUN_STATUSES)[number]; export declare const CANDIDATE_LIFECYCLE: readonly ["pending", "sketch", "representative_review", "qualified", "generating", "complete", "rejected", "blocked"]; export type CandidateLifecycle = (typeof CANDIDATE_LIFECYCLE)[number]; export declare const VARIANT_COUNT = 5; export declare const CANDIDATE_IDS: readonly ["candidate-a", "candidate-b", "candidate-c", "candidate-d", "candidate-e"]; export declare const CANDIDATE_LABELS: readonly ["A", "B", "C", "D", "E"]; export type VariantBrief = { id: string; concept: string; centralIdea: string; visitorExperience: string; hierarchy: string; visualExpression: string; evidenceIds: string[]; visualSystem: string; rationale: string; audienceFit: string; typography: string; colorRoles: string; density: string; rhythm: string; mediaTreatment: string; navigation: string; surfaces: string; motifs: string; motionPolicy: string; interiors: string; heroComposition: string; proofStructure: string; serviceWorkTreatment: string; sharedConstraints: string; differences: string; sourceAssetIds: string[]; identityCautions: string[]; omissions: string[]; themeCentered?: boolean; }; export type VariantDirectionSet = { schemaVersion: 1 | 2; runId: string; theme?: string; themeScope?: "one" | "all"; directions: VariantBrief[]; }; export type CandidateQualityBudget = { repairs: number; used: number; attempts: { at: string; reason: string; verdict?: string; }[]; }; export type CandidateRecord = { id: string; label: string; root: string; directionId: string; status: string; previewReady: boolean; sourceHash?: string; buildHash?: string; error?: string; quality?: CandidateQualityBudget; }; export type DesignRunManifest = { schemaVersion: 1; runId: string; createdAt: string; status: DesignRunStatus; sharedInputHash: string; kernelContractHash: string; operatorRequestId: string | null; budgets: { planningRepairs: number; planningRepairsUsed: number; max: number; timeoutMs: number; }; mode: { conceptPreview: boolean; requestedVariants: number; themeScope?: "one" | "all"; }; candidateIds: string[]; candidates: CandidateRecord[]; directionIds: string[]; activeComparisonRevision: string | null; feedbackHead: string | null; lastIdempotencyKey?: string; lastPayloadHash?: string; synthesisHead: string | null; errors: string[]; }; export type DesignEvent = { at: string; runId: string; type: string; from?: string; to?: string; candidateId?: string; detail?: string; }; export declare function designRunsRoot(parent: string): string; export declare function runDir(parent: string, runId: string): string; export declare function currentRunId(parent: string): string | undefined; export declare function loadManifest(parent: string, runId: string): DesignRunManifest; export declare function saveManifest(parent: string, manifest: DesignRunManifest): void; export declare function appendEvent(parent: string, event: Omit): void; export declare function createDesignRun(parent: string, kernel: string, opts?: { theme?: string; themeScope?: "one" | "all"; conceptPreview?: boolean; max?: number; timeoutMs?: number; }): DesignRunManifest; export declare function transition(parent: string, manifest: DesignRunManifest, status: DesignRunStatus, detail?: string): void; export declare function validateVariantSet(set: VariantDirectionSet, runId: string, opts?: { theme?: string; themeScope?: "one" | "all"; }): string[]; export declare function freezeIfReady(parent: string, manifest: DesignRunManifest): void; export declare function sharedFreezeStatus(parent: string, runId: string): { ok: boolean; hash: string; currentHash: string; copied: string[]; failures: string[]; }; export declare function ensureCandidateSite(parent: string, kernel: string, manifest: DesignRunManifest, candidate: CandidateRecord, brief: VariantBrief): string; export type InjectedStageExecutor = (opts: { stage: GraphNode; prep: StagePreparation; prompt: string; root?: string; outputPath?: string; }) => Promise; export declare function renderVariantStudies(parent: string, manifest: DesignRunManifest, set?: VariantDirectionSet, opts?: { force?: boolean; }): Promise<{ checks: { candidate: string; width: number; screenshot: string; }[]; }>; export declare function submitFeedback(parent: string, runId: string, raw: unknown): { feedback: DesignFeedback; interpretation: FeedbackInterpretation; summary: string; duplicate: boolean; }; export declare function runDesignCoordinator(parent: string, kernel: string, argv: string[], opts?: { runId?: string; theme?: string; injectedStageExecutor?: InjectedStageExecutor; }): Promise<{ manifest: DesignRunManifest; exitCode: number; paused?: boolean; previewUrl?: string; summary?: string; }>; export declare function restartDesignStage(parent: string, runId: string, target: string, reason: string): DesignRunManifest; export declare function designRunStatus(parent: string, runId: string): object; export declare function exportPublicComparisonBundle(parent: string, runId: string, dest: string): PublicBundleResult; export declare function promoteFinal(parent: string, runId: string): { backup: string; };