import type { WorkspaceConfig } from '../config/config-types.js'; export type TechWaveName = 'scan' | 'document' | 'review' | 'reducer'; export type TechStatusValue = 'unavailable' | 'missing' | 'blocked' | 'approved'; export type TechPlanRequest = { sessionId: string; goal: string; swarm: boolean; dryRun: true; artifactWorkspacePath?: string; workspace?: WorkspaceConfig; }; export type TechWave = { name: TechWaveName; taskIds: string[]; }; export type TechTask = { taskId: string; wave: TechWaveName; workerKind: string; purpose: string; inputs: string[]; outputs: string[]; dependsOn: string[]; conflictGroup: string; briefPath: string; }; export type TechPlanGraph = { available: true; sessionId: string; goal: string; swarm: boolean; dryRun: true; artifactRoot: string; waves: TechWave[]; tasks: TechTask[]; outputs: { taskGraph: string; waveManifests: string[]; reviewChecklist: string; approvalTemplate: string; }; blockedReasons: string[]; nextActions: string[]; }; export type TechPlanPreview = { available: false; behavior: 'preview'; reason: string; preview: Omit; nextActions: readonly string[]; }; export type TechPlanResult = TechPlanGraph | TechPlanPreview; export type TechStatus = { sessionId: string; status: TechStatusValue; artifactRoot: string; requiredArtifacts: string[]; missingArtifacts: string[]; approvalRecord: string | null; blockedReasons: string[]; nextActions: string[]; }; export declare const TECH_REQUIRED_ARTIFACTS: readonly string[]; export declare function createTechPlan(request: TechPlanRequest): TechPlanResult; export declare function getTechStatus(options: { sessionId: string; artifactWorkspacePath?: string; workspace?: WorkspaceConfig; }): TechStatus;