import type { MermaidJamIntegration } from "../integrations/mermaid-jam.js"; import { type AnySpec, type ComponentSpec, type DataVizSpec, type DesignSpec, type IASpec, type PageSpec } from "../specs/types.js"; import type { Registry } from "../engine/registry.js"; import type { ResearchStore } from "./engine.js"; import type { SimulationReport } from "../simulation/types.js"; export type MermaidJamArtifactKind = "journey-map" | "ia-flow" | "evidence-map" | "simulation-timeline"; export type MermaidJamArtifactFormat = "mermaid" | "markdown"; export interface ResearchDesignBrief { audience: string[]; vibePrinciples: string[]; visualDirection: string[]; interactionTone: string[]; productMoments: string[]; constraints: string[]; openQuestions: string[]; } export interface ResearchDesignPackageSpecs { design: DesignSpec[]; ia: IASpec[]; pages: PageSpec[]; components: ComponentSpec[]; dataviz: DataVizSpec[]; } export interface ResearchDesignMermaidArtifact { id: string; title: string; format: MermaidJamArtifactFormat; kind: MermaidJamArtifactKind; source: string; } export interface ResearchDesignPackage { id: string; name: string; generatedAt: string; intent: string; hypothesis: string; sourceRunId?: string; brief: ResearchDesignBrief; evidenceIds: string[]; specs: ResearchDesignPackageSpecs; mermaidArtifacts: ResearchDesignMermaidArtifact[]; warnings: string[]; } export interface BuildResearchDesignPackageOptions { intent?: string; hypothesis?: string; simulationReport?: SimulationReport | null; now?: () => Date; } export interface MermaidJamExport { id: string; title: string; format: MermaidJamArtifactFormat; kind: MermaidJamArtifactKind; source: string; outputPath: string; integration: MermaidJamIntegration; nextSteps: string[]; } export interface WriteMermaidJamArtifactsOptions { projectRoot: string; integration?: MermaidJamIntegration; } export interface ResearchDesignSpecWriteResult { written: string[]; count: number; } export declare function buildResearchDesignPackage(research: ResearchStore, options?: BuildResearchDesignPackageOptions): ResearchDesignPackage; export declare function writeMermaidJamArtifacts(designPackage: ResearchDesignPackage, options: WriteMermaidJamArtifactsOptions): Promise; export declare function saveResearchDesignSpecs(designPackage: ResearchDesignPackage, registry: Pick): Promise; export declare function allResearchDesignSpecs(designPackage: ResearchDesignPackage): AnySpec[];