export interface ProjectConfig { openaiApiKey: string; projectPath: string; targetLanguage: string; targetFramework?: string; generateTests: boolean; generateApiCollections: boolean; model: 'gpt-4' | 'gpt-4-turbo' | 'gpt-3.5-turbo'; projectType?: 'backend' | 'frontend' | 'fullstack' | 'library' | 'cli'; } export interface CodeReview { projectType: 'backend' | 'frontend' | 'fullstack' | 'library' | 'cli'; architecture: { entryPoints: string[]; dependencies: DependencyInfo[]; patterns: DetectedPattern[]; fileStructure: FileStructure; }; summary: string; recommendations: string[]; } export interface DependencyInfo { name: string; version: string; type: 'production' | 'development' | 'peer'; purpose: string; migrationNotes?: string; } export interface DetectedPattern { name: string; confidence: number; description: string; examples: string[]; migrationStrategy?: string; } export interface FileStructure { [path: string]: { type: 'file' | 'directory'; size?: number; language?: string; purpose?: string; dependencies?: string[]; }; } export interface MigrationPlan { phases: MigrationPhase[]; timeline: string; dependencies: string[]; commands: string[]; warnings: string[]; estimatedCost?: number; } export interface MigrationPhase { name: string; description: string; steps: MigrationStep[]; estimatedTime: string; dependencies: string[]; } export interface MigrationStep { id: string; action: 'create' | 'modify' | 'delete' | 'install' | 'configure'; target: string; description: string; commands?: string[]; validation?: string; } export interface ConversionResult { success: boolean; files: ConvertedFile[]; errors: ConversionError[]; warnings: ConversionWarning[]; summary: ConversionSummary; } export interface ConvertedFile { originalPath: string; newPath: string; changes: FileChange[]; status: 'success' | 'warning' | 'error'; aiExplanation?: string; } export interface FileChange { type: 'addition' | 'deletion' | 'modification'; line?: number; content: string; reason: string; } export interface ConversionError { file: string; message: string; severity: 'low' | 'medium' | 'high'; suggestion?: string; } export interface ConversionWarning { file: string; message: string; type: 'logic' | 'performance' | 'style' | 'deprecated'; suggestion?: string; } export interface ConversionSummary { totalFiles: number; successfulConversions: number; warnings: number; errors: number; logicChanges: number; performanceImpact: 'low' | 'medium' | 'high'; } export interface TestSuite { unitTests: TestFile[]; integrationTests: TestFile[]; e2eTests: TestFile[]; apiCollections: ApiCollection[]; manualTests: ManualTest[]; } export interface TestFile { path: string; content: string; framework: string; coverage: string[]; description: string; } export interface ApiCollection { name: string; format: 'postman' | 'insomnia'; content: string; endpoints: ApiEndpoint[]; } export interface ApiEndpoint { method: string; path: string; description: string; parameters: any[]; response: any; } export interface ManualTest { title: string; steps: string[]; expectedResult: string; priority: 'low' | 'medium' | 'high'; } export interface TestReport { summary: { total: number; passed: number; failed: number; skipped: number; }; results: TestResult[]; coverage?: CoverageReport; recommendations: string[]; } export interface TestResult { name: string; status: 'pass' | 'fail' | 'skip'; duration: number; error?: string; output?: string; } export interface CoverageReport { lines: number; functions: number; branches: number; statements: number; } export interface ExportPackage { convertedProject: string; documentation: DocumentationPackage; testSuite: TestSuite; apiCollections: ApiCollection[]; gitPatch?: string; deploymentInstructions: string; } export interface DocumentationPackage { review: string; migrationPlan: string; manualTesting: string; apiDocumentation: string; deploymentGuide: string; } export interface CLIState { config: ProjectConfig; currentPhase: 'init' | 'review' | 'plan' | 'convert' | 'test' | 'export'; review?: CodeReview; migrationPlan?: MigrationPlan; conversionResult?: ConversionResult; testReport?: TestReport; } export type LanguageSupport = { [key: string]: { frameworks: string[]; testFrameworks: string[]; buildTools: string[]; packageManagers: string[]; }; }; //# sourceMappingURL=index.d.ts.map