/** Relation type between a code change and a spec. */
export type ImpactRelation = 'direct-binding' | 'filename-match' | 'semantic-match';
/** A spec affected by a code change. */
export interface CodeAffectedSpec {
    specId: string;
    title: string;
    relation: ImpactRelation;
    status: string;
}
/** Result of analyze_code_impact. */
export interface CodeImpactResult {
    filePath?: string;
    affectedSpecs: CodeAffectedSpec[];
    totalSpecs: number;
}
/** A change that is not covered by any approved spec. */
export interface UnjustifiedChange {
    filePath: string;
    reason: string;
}
/** Result of code_change_compliance. */
export interface ComplianceCheckResult {
    complianceScore: number;
    justifyingSpecs: CodeAffectedSpec[];
    unjustifiedChanges: UnjustifiedChange[];
    summary: string;
}
/** A suggestion to update or create a spec. */
export interface SpecUpdateSuggestion {
    type: 'update' | 'create';
    specId?: string;
    title?: string;
    reason: string;
}
/** Result of suggest_spec_update. */
export interface SpecUpdateSuggestions {
    filePath: string;
    suggestions: SpecUpdateSuggestion[];
}
export interface AnalyzeCodeImpactInput {
    projectPath: string;
    filePath?: string;
    diffText?: string;
}
export interface CodeChangeComplianceInput {
    projectPath: string;
    filePath?: string;
    commitHash?: string;
}
export interface SuggestSpecUpdateInput {
    projectPath: string;
    filePath: string;
}
export interface GitDiffToSpecImpactInput {
    projectPath: string;
}
//# sourceMappingURL=code-impact.d.ts.map