import * as vue from 'vue'; import { ComputedRef } from 'vue'; import * as fuse_js from 'fuse.js'; import fuse_js__default, { IFuseOptions, FuseResult } from 'fuse.js'; import { MaybeRefOrGetter } from '@vueuse/shared'; type FuseOptions = IFuseOptions; interface UseFuseOptions { fuseOptions?: FuseOptions; resultLimit?: number; matchAllWhenSearchEmpty?: boolean; } declare function useFuse(search: MaybeRefOrGetter, data: MaybeRefOrGetter, options?: MaybeRefOrGetter>): { fuse: vue.Ref<{ search: (pattern: string | fuse_js.Expression, options?: fuse_js.FuseSearchOptions) => FuseResult[]; setCollection: (docs: readonly DataItem[], index?: fuse_js.FuseIndex | undefined) => void; add: (doc: DataItem) => void; remove: (predicate: (doc: DataItem, idx: number) => boolean) => DataItem[]; removeAt: (idx: number) => void; getIndex: () => fuse_js.FuseIndex; }, fuse_js__default | { search: (pattern: string | fuse_js.Expression, options?: fuse_js.FuseSearchOptions) => FuseResult[]; setCollection: (docs: readonly DataItem[], index?: fuse_js.FuseIndex | undefined) => void; add: (doc: DataItem) => void; remove: (predicate: (doc: DataItem, idx: number) => boolean) => DataItem[]; removeAt: (idx: number) => void; getIndex: () => fuse_js.FuseIndex; }>; results: ComputedRef[]>; }; type UseFuseReturn = ReturnType; export { type FuseOptions, type UseFuseOptions, type UseFuseReturn, useFuse };