// Type definitions for Fuse.js v3.4.5 // TypeScript Version: 3.1 export = Fuse; export as namespace Fuse; interface SearchOpts { limit?: number } declare class Fuse = Fuse.FuseOptions> { constructor(list: ReadonlyArray, options?: O) search(pattern: string, opts?: SearchOpts): O extends { id: keyof T } ? O extends ({ includeMatches: true; } | { includeScore: true; }) ? Fuse.FuseResult[] : string[] : O extends ({ includeMatches: true; } | { includeScore: true; }) ? Fuse.FuseResult[] : T[]; setCollection(list: ReadonlyArray): ReadonlyArray; } declare namespace Fuse { export interface FuseResult { item: T, matches?: any; score?: number; } export interface FuseOptions { id?: keyof T; caseSensitive?: boolean; includeMatches?: boolean; includeScore?: boolean; shouldSort?: boolean; sortFn?: (a: { score: number }, b: { score: number }) => number; getFn?: (obj: any, path: string) => any; keys?: (keyof T)[] | T[keyof T] | { name: keyof T; weight: number }[]; verbose?: boolean; tokenize?: boolean; tokenSeparator?: RegExp; matchAllTokens?: boolean; location?: number; distance?: number; threshold?: number; maxPatternLength?: number; minMatchCharLength?: number; findAllMatches?: boolean; } }