// Type definitions for Fuse.js v3.6.1 // TypeScript Version: 3.1 export = Fuse; export as namespace Fuse; interface SearchOpts { limit?: number; } declare class Fuse> { constructor(list: ReadonlyArray, options?: O); search< /** Type of item of return */ R = O extends { id: string } ? string : T, /** include score (boolean) */ S = O["includeScore"], /** include matches (boolean) */ M = O["includeMatches"] >( pattern: string, opts?: SearchOpts ): S extends true ? M extends true ? (Fuse.FuseResultWithMatches & Fuse.FuseResultWithScore)[] : Fuse.FuseResultWithScore[] : M extends true ? Fuse.FuseResultWithMatches[] : R[]; setCollection(list: ReadonlyArray): ReadonlyArray; list: ReadonlyArray; } declare namespace Fuse { export interface FuseResultWithScore { item: T; score: number; } export interface FuseResultWithMatches { item: T; matches: any; } export interface FuseOptions { id?: keyof T | string; 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 | string)[] | { name: keyof T | string; weight: number }[]; verbose?: boolean; tokenize?: boolean; tokenSeparator?: RegExp; matchAllTokens?: boolean; location?: number; distance?: number; threshold?: number; maxPatternLength?: number; minMatchCharLength?: number; findAllMatches?: boolean; } }