import type { FrictionAnnotation, AnnotationStatus, FrictionCategory } from './types.js'; export declare function getAnnotationsPath(overridePath?: string): string; export declare function loadAnnotations(annotationsPath?: string): FrictionAnnotation[]; export declare function saveAnnotations(annotations: FrictionAnnotation[], annotationsPath?: string): void; /** Check if two friction titles match using significantWords overlap (80% bidirectional) */ export declare function isFrictionMatch(annotationTitle: string, frictionTitle: string): boolean; /** Upsert an annotation: fuzzy-matches existing entry, replaces or appends */ export declare function setAnnotation(title: string, status: AnnotationStatus, note?: string, annotationsPath?: string): FrictionAnnotation; /** Clear one annotation (by fuzzy title match) or all. Returns count cleared. */ export declare function clearAnnotation(title?: string, annotationsPath?: string): number; /** Find an annotation by fuzzy title match */ export declare function findAnnotation(frictionTitle: string, annotationsPath?: string): FrictionAnnotation | undefined; export interface FilterResult { filteredFrictions: FrictionCategory[]; skippedCount: number; skippedTitles: string[]; } /** Filter out frictions marked as false-positive. Returns filtered array + skip metadata. */ export declare function filterAnnotatedFrictions(frictions: FrictionCategory[], annotationsPath?: string): FilterResult; /** Interactive annotation walkthrough using readline */ export declare function runInteractiveAnnotation(frictions: FrictionCategory[], annotationsPath?: string): Promise<{ annotated: number; skipped: number; }>; /** Format current annotations as a readable table */ export declare function formatAnnotationList(annotationsPath?: string): string;