export type IMatchRange = { start: number; end: number; }; export type IFuzzyMatch = { score: number; matchedIndices: number[]; }; export type IFuzzyFilterResult = { option: T; score: number; matchRanges: IMatchRange[]; }; export type IFuzzyOption = { label: string; value: string; }; export declare function collapseIndices(indices: number[]): IMatchRange[]; /** * Two-pass fuzzy match (similar to fzf v1): * 1. Forward pass — greedy left-to-right character scan * 2. Backward pass — tighter alignment from last matched position * Scores both passes, returns the best. Case-insensitive. */ export declare function fuzzyMatch(query: string, label: string): IFuzzyMatch | undefined; export declare function fuzzyFilter(query: string, options: T[]): Array>; //# sourceMappingURL=fuzzy-match.d.ts.map