import type { ExecutionMode, Difficulty } from './common.js';
export interface Estimation {
    devHours: number;
    reviewHours: number;
    recommendedModel: 'opus' | 'sonnet' | 'mixed';
    tokensOpus: number;
    tokensSonnet: number;
    apiCostUsd: number;
    hourlyRate: number;
    humanCostUsd: number;
    totalCostUsd: number;
    tokenOptimization: TokenStrategy;
}
export interface TokenStrategy {
    mode: ExecutionMode;
    reasoning: string;
    estimatedTokens: number;
    savings: string;
}
export interface Actuals {
    devHours: number;
    reviewHours: number;
    tokensOpus: number;
    tokensSonnet: number;
    apiCostUsd: number;
    humanCostUsd: number;
    totalCostUsd: number;
    completedAt: string;
    notes: string;
}
export interface ImpactAnalysis {
    affectedModules: string[];
    affectedFiles: string[];
    breakingChanges: boolean;
    requiresMigration: boolean;
    migrationReversible: boolean;
    requiresFeatureFlag: boolean;
    rollbackPlan: string;
    testingStrategy: TestStrategy;
    environments: string[];
}
export interface TestStrategy {
    unitTests: string[];
    integrationTests: string[];
    e2eTests: string[];
    manualTests: string[];
}
export interface EstimateInput {
    specId: string;
    projectId: string;
}
export interface ReverseEngineerInput {
    path: string;
    projectId: string;
    depth?: 'shallow' | 'deep' | 'deep-v2';
}
export interface ValidateInput {
    specId: string;
    projectId: string;
}
export interface EstimateResult {
    difficulty: Difficulty;
    estimation: Estimation;
    confidence: 'low' | 'medium' | 'high';
    reasoning: string;
    similarSpecs: string[];
}
export interface ReverseEngineerResult {
    specId: string;
    specPath: string;
    technicalPath: string;
    analysis: {
        filesAnalyzed: number;
        interfacesDetected: string[];
        dependenciesFound: string[];
        layersIdentified: string[];
    };
    message: string;
}
//# sourceMappingURL=estimation.d.ts.map