import Fuse from "fuse.js";
export interface FuzzyOptions extends Fuse.IFuseOptions<any> {
}
export declare type UseFuseType = (options: Fuse.IFuseOptions<any>, data?: unknown[]) => {
    fuseResult: Fuse.FuseResult<unknown> | null;
    resetFuse: () => void;
    doFuseSearch: (search: string, reducer?: (toReduce: Fuse.FuseResult<unknown>[]) => any | Fuse.FuseResult<unknown>[], options?: Fuse.FuseSearchOptions) => unknown;
    groupBy: (objectArray: {
        [property: string]: any;
    }[], propName: string) => {
        [property: string]: any;
    };
};
/**
 * Exposes
 * @param data custom data to be "full text search enabled".
 * @param options fuse configuration object. Set which properties should be searchable.
 * @returns Object:
 *    1. fuseResult - state of fuse result. Set via doFuseSearch method.
 *    2. doFuseSearch - method to search given string in configured data structure
 *    3. groupBy - utility function to group result values.
 */
export declare const useFuse: UseFuseType;
