import type { SearchProvider, SearchResult, SearchOptions, IndexableItem, SearchCorpus } from "./types.js"; export declare const DEFAULT_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2"; /** True for per-account live entity buckets (not the static global corpora keys). */ export declare function isResourceAccountKey(key: string): boolean; /** entities corpus is always capped; other corpora only cap TTL-backed items. */ export declare function needsPerKeyCap(corpus: SearchCorpus, expiresAt: number | undefined): boolean; export declare function countResourceAccountKeys(store: ReadonlyMap): number; export declare function totalItemCount(store: ReadonlyMap): number; export declare function findLruKey(store: ReadonlyMap, keyLastAccessed: ReadonlyMap, predicate: (key: string) => boolean): string | undefined; export declare function findSoonestExpiryIndex(items: ReadonlyArray<{ expiresAt: number | undefined; }>): number; export interface LocalSearchProviderOptions { cacheDir?: string; model?: string; } export declare class LocalSearchProvider implements SearchProvider { private available; private initError; private embed; private readonly cacheDir; private readonly model; private store; private keyLastAccessed; private evictionTimer; constructor(options?: LocalSearchProviderOptions); initialize(): Promise; getInitError(): string | undefined; isAvailable(): boolean; evictExpired(): void; search(query: string, options?: SearchOptions): Promise; index(item: IndexableItem): Promise; private touchKey; private evictStoreKey; private evictOneGlobally; } //# sourceMappingURL=local-provider.d.ts.map