export type ReadinessCategory = 'hu' | 'criteria' | 'dod' | 'files' | 'dependencies' | 'contradictions';
export type HandoffSection = 'objective' | 'criteria' | 'files' | 'out_of_scope' | 'constraints' | 'decisions' | 'conventions' | 'test_plan' | 'risks' | 'ownership' | 'current_state' | 'next_action';
export interface ReadinessScore {
    score: number;
    breakdown: Partial<Record<ReadinessCategory, number>>;
    blockers: string[];
    warnings: string[];
}
export interface ReadinessReport {
    specId: string;
    score: number;
    ready: boolean;
    issues: ReadinessScore;
    recommendations: string[];
    mode: 'strict' | 'lenient';
}
export interface HandoffConstraint {
    type: 'file' | 'interface' | 'dependency';
    description: string;
    affectedItems: string[];
}
export interface CategoryScore {
    points: number;
    blockers: string[];
    warnings: string[];
}
export interface HandoffPackage {
    specId: string;
    generatedAt: string;
    readinessScore: number;
    objective: string;
    criteria: string[];
    filesToModify: string[];
    filesToCreate: string[];
    ownership: string[];
    testPlan: string[];
    risks: string[];
    outOfScope: string[];
    currentState: string;
    nextAction: string;
    constraints: HandoffConstraint[];
    warnings: string[];
    blocked: boolean;
    blockers: string[];
    handoffPath?: string;
    contextHash?: string;
}
export interface CheckReadinessInput {
    projectId: string;
    specId: string;
    mode?: 'strict' | 'lenient';
}
/** SPEC-632: Ambiguity scorer result — vague terms + measurability score. */
export interface AmbiguityViolation {
    term: string;
    criterion: string;
    reason: string;
    suggestion: string;
}
export interface AmbiguityReport {
    score: number;
    violations: AmbiguityViolation[];
    blockers: string[];
}
export interface PackageHandoffInput {
    projectId: string;
    specId: string;
}
/**
 * SPEC-784: Issue codes emitted by the readiness checker.
 * Codes with severity `blocker` prevent approval.
 */
export type ReadinessIssueCode = 'TECHNICAL_PLACEHOLDER_DETECTED' | 'TECHNICAL_TOO_SHALLOW';
//# sourceMappingURL=readiness.d.ts.map