import type { StudioReferenceTraceItem } from "./reference-trace.js"; import type { StudioDesignSystemArtifact } from "./design-system-artifact-types.js"; export declare const STUDIO_TRACE_PHASES: readonly [{ readonly id: "research"; readonly label: "Research"; }, { readonly id: "analyze"; readonly label: "Analyze"; }, { readonly id: "ideate"; readonly label: "Ideate"; }, { readonly id: "design"; readonly label: "Design"; }, { readonly id: "spec"; readonly label: "Spec"; }, { readonly id: "handoff"; readonly label: "Handoff"; }]; export type StudioTracePhaseId = (typeof STUDIO_TRACE_PHASES)[number]["id"]; export type StudioTraceStatus = "queued" | "running" | "completed" | "failed"; export interface StudioTraceEventLike { id: string; type: string; message: string; timestamp?: string; data?: unknown; } export interface StudioTraceSessionLike { id: string; action?: string; status: "running" | "completed" | "failed" | "cancelled" | string; } export interface StudioTracePhase { id: StudioTracePhaseId; label: string; status: StudioTraceStatus; evidenceIds: string[]; } export interface StudioTraceTask { id: string; label: string; status: StudioTraceStatus; progress: number; evidenceIds: string[]; } export type StudioTraceOutputKind = "chat" | "terminal" | "design" | "preview" | "research" | "marketplace" | "handoff" | "artifact" | "auth"; export interface StudioTraceOutput { id: string; kind: StudioTraceOutputKind; title: string; summary: string; sourcePath?: string; artifactPath?: string; url?: string; eventIds: string[]; } export interface StudioTraceToolRun { id: string; tool: string; status: "queued" | "running" | "completed" | "failed" | "approval_required"; summary: string; eventIds: string[]; } export interface StudioTraceCitation { id: string; label: string; url?: string; sourcePath?: string; eventIds: string[]; } export interface StudioTraceResearchEvidence { id: string; label: string; method: "qualitative" | "quantitative" | "mixed" | "netnography" | "desk"; summary: string; sourcePath?: string; url?: string; tags: string[]; eventIds: string[]; } export type StudioActivityKind = "thinking" | "reading_file" | "searching" | "listing" | "running_command" | "writing_file" | "using_tool" | "browser_action" | "figma_action" | "mcp_call" | "computer_action" | "terminal_group"; export interface StudioActivityItem { id: string; kind: StudioActivityKind; status: "running" | "completed" | "failed"; label: string; summary: string; targetPath?: string; command?: string; sourceEventIds: string[]; startedAt: string; completedAt?: string; outputPreview?: string; } export interface StudioActiveProcess { id: string; sessionId?: string; command: string; cwd?: string; status: "running" | "completed" | "failed"; startedAt: string; outputPreview: string; sourceEventIds: string[]; } export interface StudioTraceModel { phases: StudioTracePhase[]; tasks: StudioTraceTask[]; evidenceCount: number; activePhaseId: StudioTracePhaseId | null; references: StudioReferenceTraceItem[]; outputs: StudioTraceOutput[]; toolRuns: StudioTraceToolRun[]; citations: StudioTraceCitation[]; researchEvidence: StudioTraceResearchEvidence[]; artifacts: StudioDesignSystemArtifact[]; activities: StudioActivityItem[]; activeProcesses: StudioActiveProcess[]; } export interface StudioTraceSnapshot extends StudioTraceModel { sessionId: string | null; source: "live" | "persisted" | "empty"; generatedAt: string; eventIds: string[]; } export declare function deriveStudioTrace(input: { session: StudioTraceSessionLike | null; events: StudioTraceEventLike[]; }): StudioTraceModel; export declare function createStudioTraceSnapshot(input: { session: StudioTraceSessionLike | null; events: StudioTraceEventLike[]; source: "live" | "persisted" | "empty"; now?: string; }): StudioTraceSnapshot;