/**
 * TypeScript types and interfaces for Project Setup Tool
 * PRD #177 - Milestone 1: Core Tool Infrastructure
 *
 * Starting simple: Building iteratively based on actual workflow needs
 */
/**
 * Workflow steps for project setup
 */
export type ProjectSetupStep = 'discover' | 'reportScan' | 'generateScope' | 'complete';
/**
 * Scope configuration structure
 */
export interface ScopeConfig {
    files: string[];
    questions: Question[];
    conditionalFiles?: Record<string, {
        condition: string;
        reason: string;
    }>;
    additionalInstructions?: string;
    [key: string]: unknown;
}
/**
 * Session data structure for maintaining workflow state
 */
export interface ProjectSetupSessionData {
    currentStep: ProjectSetupStep;
    allScopes?: Record<string, ScopeConfig>;
    selectedScopes?: string[];
    filesToCheck?: string[];
    existingFiles?: string[];
}
/**
 * Discovery stage response - Step 1 of workflow
 */
export interface DiscoveryResponse {
    success: true;
    sessionId: string;
    filesToCheck: string[];
    availableScopes: string[];
    nextStep: 'reportScan';
    instructions: string;
}
/**
 * Report scan response - Step 2 of workflow
 * Returns all questions for selected scope(s)
 */
export interface ReportScanResponse {
    success: true;
    sessionId: string;
    nextStep: 'generateScope';
    instructions: string;
    scope: string;
    questions: Question[];
    filesToGenerate: string[];
}
/**
 * Generated file content
 */
export interface GeneratedFile {
    path: string;
    content: string;
    reason?: string;
}
/**
 * Generate scope response - Step 3 of workflow
 * Returns contents of ALL files in the scope at once
 */
export interface GenerateScopeResponse {
    success: true;
    sessionId: string;
    scope: string;
    files: GeneratedFile[];
    excludedFiles?: string[];
    instructions: string;
    additionalInstructions?: string;
}
/**
 * Error response structure
 */
export interface ErrorResponse {
    success: false;
    error: {
        message: string;
        details?: string;
    };
}
/**
 * Question definition for gathering project information
 */
export interface Question {
    id: string;
    question: string;
    required: boolean;
}
/**
 * Tool input parameters
 */
export interface ProjectSetupParams {
    step?: ProjectSetupStep;
    sessionId?: string;
    existingFiles?: string[];
    selectedScopes?: string[];
    scope?: string;
    answers?: Record<string, string>;
}
/**
 * Tool response type
 */
export type ProjectSetupResponse = DiscoveryResponse | ReportScanResponse | GenerateScopeResponse | ErrorResponse;
//# sourceMappingURL=types.d.ts.map