import { CursorContext, MatchSimilarSnippet, ResourceDocument, SimilarSnippet, SnippetSelectionOption, SnippetSemantics, SortOption } from '../types'; export declare class TokensCache { private readonly size; private readonly keys; private readonly cache; constructor(size: number); put(id: string, tokens: Set[]): void; get(id: string): Set[]; } export declare abstract class WindowedMatcher { private referenceDoc; private tokenizer; abstract getCursorContextInfo(doc: ResourceDocument): CursorContext; abstract getWindowsDelineations(lines: string[]): [number, number][]; abstract similarityScore(tokens1: Set, tokens2: Set): number; abstract id(): string; private referenceTokensCache?; constructor(doc: ResourceDocument); get referenceTokens(): Set; sortScoredSnippets(snippets: SimilarSnippet[], sortRule?: SortOption): SimilarSnippet[]; retrieveAllSnippets(resource: ResourceDocument, sortRule?: SortOption): SimilarSnippet[]; findMatches(resource: ResourceDocument, mode?: SnippetSelectionOption, size?: number): MatchSimilarSnippet[] | undefined; /** * 获取所有匹配的片段 * @param resource 文档资源 */ findBestMatch(resource: ResourceDocument): { score: number; startLine: number; endLine: number; snippet: string; semantics: SnippetSemantics; } | null | undefined; /** * 获取最高匹配片段 * @param resource 文档资源 * @param size 取前几位,默认取前一位 */ findTopKMatches(resource: ResourceDocument, size?: number): MatchSimilarSnippet[] | undefined; } export declare function computeScore(set1: Set, set2: Set): number; //# sourceMappingURL=matcher.d.ts.map