/** A single @spec annotation extracted from source code. */
export interface SpecAnnotation {
    /** Spec ID referenced (e.g., "SPEC-120"). */
    specId: string;
    /** Acceptance criteria numbers (e.g., [1, 3, 5] from "AC-1,AC-3,AC-5"). */
    criteria: number[];
    /** Optional description after the dash. */
    description: string;
    /** File where the annotation was found. */
    file: string;
    /** Line number (1-based). */
    line: number;
    /** Raw annotation text as written in the source. */
    raw: string;
}
/** Result of parsing all @spec annotations from a set of files. */
export interface AnnotationParseResult {
    annotations: SpecAnnotation[];
    fileCount: number;
    annotatedFileCount: number;
}
/** Result of validating annotations against stored specs. */
export interface AnnotationValidationResult {
    valid: AnnotationValidationEntry[];
    invalid: AnnotationValidationEntry[];
    totalAnnotations: number;
    validCount: number;
    invalidCount: number;
}
/** A single annotation validation entry. */
export interface AnnotationValidationEntry {
    annotation: SpecAnnotation;
    reason: string;
}
/** Suggestion for annotating a file that lacks annotations. */
export interface AnnotationSuggestion {
    file: string;
    suggestedAnnotation: string;
    reason: string;
    confidence: 'high' | 'medium' | 'low';
}
/** SHA-256 hash snapshot of a file. */
export interface FileHashEntry {
    file: string;
    hash: string;
    /** Size in bytes. */
    size: number;
    /** ISO timestamp of last snapshot. */
    snapshotAt: string;
}
/** Exported function signature tracked for drift detection. */
export interface FunctionSignature {
    name: string;
    params: string;
    returnType: string;
    file: string;
    line: number;
}
/** A complete hash snapshot for a spec, including file hashes and function signatures. */
export interface SpecHashSnapshot {
    specId: string;
    createdAt: string;
    files: FileHashEntry[];
    signatures: FunctionSignature[];
}
/** Change classification for function signatures. */
export type SignatureChangeType = 'added' | 'modified' | 'removed';
/** A single signature change between two snapshots. */
export interface SignatureChange {
    name: string;
    file: string;
    changeType: SignatureChangeType;
    /** Previous signature string (empty for 'added'). */
    before: string;
    /** Current signature string (empty for 'removed'). */
    after: string;
}
/** File hash diff between two snapshots. */
export interface FileHashDiff {
    file: string;
    /** Previous hash (empty for new files). */
    previousHash: string;
    /** Current hash (empty for deleted files). */
    currentHash: string;
    /** Criteria linked to this file via annotations. */
    linkedCriteria: number[];
}
/** Report of hash and signature changes for a spec. */
export interface HashDiffReport {
    specId: string;
    changedFiles: FileHashDiff[];
    signatureChanges: SignatureChange[];
    unchangedFileCount: number;
    comparedAt: string;
}
/** Extended criterion status that includes annotation-based statuses. */
export type AnnotatedCriterionStatus = 'met' | 'pending' | 'drift' | 'regression' | 'untracked';
/** Extended drift report fields for annotation-based mode. */
export interface AnnotationDriftInfo {
    annotationCoverage: number;
    annotatedCriteria: number;
    totalCriteria: number;
    regressions: string[];
    untrackedCriteria: string[];
}
/** Entry in the auto-reconciliation log. */
export interface ReconcileLogEntry {
    timestamp: string;
    changeType: 'completion-update' | 'status-flip' | 'hash-update' | 'timestamp-update';
    specId: string;
    description: string;
    previousValue: string;
    newValue: string;
}
/** Classification of reconciliation changes. */
export type ReconcileChangeClass = 'safe' | 'unsafe';
/** Input for the validate_annotations tool. */
export interface ValidateAnnotationsInput {
    projectId: string;
    projectPath: string;
    specId?: string;
}
/** Input for the generate_annotations tool. */
export interface GenerateAnnotationsInput {
    projectId: string;
    projectPath: string;
    specId: string;
}
/** Input for the snapshot_spec_hashes tool. */
export interface SnapshotSpecHashesInput {
    projectId: string;
    specId: string;
}
/** Input for the auto_reconcile tool. */
export interface AutoReconcileInput {
    projectId: string;
    specId?: string;
    changedFiles?: string[];
}
/** Result of auto-reconciliation. */
export interface AutoReconcileResult {
    specId: string;
    appliedChanges: ReconcileLogEntry[];
    skippedUnsafe: string[];
    rateLimited: boolean;
    reconciledAt: string;
}
//# sourceMappingURL=annotations.d.ts.map