import { IndexClass as IndexClass_2 } from '../main'; import * as v from 'valibot'; declare type ContentRange = v.InferOutput; declare const ContentRange_v: v.ObjectSchema<{ readonly id: v.NumberSchema; readonly path: v.StringSchema; readonly start: v.NumberSchema; readonly end: v.NumberSchema; }, undefined>; export declare function createIndex(index_class: IndexClass, contents: unknown[], opt?: IndexOpt): StaticSeekIndexRoot> | StaticSeekError; export declare function createIndexFromObject(index: StaticSeekIndexRoot): StaticSeekIndexRoot> | StaticSeekError; export declare function createSearchFn(url: string, callback?: SearchFnCallback): SearchFn; export declare class GPULinearIndex extends LinearIndex { private mutex; private device; private gpu_buffers; private gpu_pipeline; private gpu_bind_group; private readonly num_result; private gpuStorageRead; private gpuStorageWrite; private gpuStorageReadWrite; private gpuUniform; private gpuCopy; private gpuPipeline; private initGPU; search(env: SearchEnv, keyword: string[]): Promise; private gpuSearch; } export declare const HybridTrieBigramInvertedIndex: IndexClass_2; export declare type IndexClass = new (index?: any) => SearchIndex; export declare type IndexOpt = { key_fields?: Path[]; search_targets?: Path[]; distance?: number; weights?: [Path, number][]; }; export declare function indexToObject(index: StaticSeekIndexRoot>): StaticSeekIndexRoot; export declare class LinearIndex implements SearchIndex { index_entry: LinearIndexEntry; u32_content: Uint32Array; constructor(index?: LinearIndexEntry); setToIndex(id: number, path: Path, str: string[]): void; setDocumentLength(_id: number, _path: Path, _length: number): void; addKey(id: number, key: Record): void; fixIndex(): void; search(env: SearchEnv, keyword: string[]): Promise; protected mergeResults(raw_result: [number, number][]): [number, number][]; protected createSearchResult(poses: [number, number][], keyword: string, env: SearchEnv): SearchResult[]; private allIndexOf; protected getReference(pos: number): ContentRange; } declare type LinearIndexEntry = v.InferOutput; declare const LinearIndexEntry_v: v.ObjectSchema<{ readonly key: v.ArraySchema, v.UnknownSchema, undefined>, undefined>; readonly content: v.StringSchema; readonly content_length: v.NumberSchema; readonly num_id: v.NumberSchema; readonly toc: v.ArraySchema; readonly path: v.StringSchema; readonly start: v.NumberSchema; readonly end: v.NumberSchema; }, undefined>, undefined>; }, undefined>; export declare type Path = string; export declare type Reference = { token: string; path: Path; pos?: number; wordaround?: string; keyword_range?: [number, number]; distance: number; }; export declare function search(index: StaticSeekIndexRoot>, query: string): Promise; declare type SearchEnv = v.InferOutput; declare const SearchEnv_v: v.ObjectSchema<{ readonly search_targets: v.OptionalSchema, undefined>, undefined>; readonly field_names: v.RecordSchema, v.StringSchema, undefined>; readonly weights: v.ArraySchema, v.NumberSchema], undefined>, undefined>; readonly distance: v.NumberSchema; }, undefined>; export declare type SearchFn = (query: string) => SearchFnResult; export declare type SearchFnCallback = (isLoading: boolean) => void; export declare type SearchFnResult = Promise; declare interface SearchIndex { index_entry: T; setToIndex(id: number, path: Path, str: string[]): void; setDocumentLength(id: number, path: Path, length: number): void; addKey(id: number, key: Record): void; fixIndex(): void; search(env: SearchEnv, keyword: string[]): Promise; } export declare type SearchResult = { id: number; key: Record; score: number; refs: Reference[]; }; export declare class StaticSeekError extends Error { } export declare type StaticSeekIndex = StaticSeekIndexRoot>; export declare type StaticSeekIndexObject = StaticSeekIndexRoot; declare type StaticSeekIndexRoot = { version: string; type: string; env: SearchEnv; index_entry: T; }; export { }