export type SearchController<T> = {
    /** Flag signals that the search request is flight await the response */
    searchQueryInProgress: boolean;
    /** Array of items returned by the search query */
    searchResults: T[];
};
export type UseSearchParams<T> = {
    /** Search function performing the search request */
    searchFn: (searchQuery: string) => Promise<T[]>;
    /** Debounce interval applied to the search function */
    debounceInterval?: number;
    /** Search query string */
    searchQuery?: string;
};
export declare const useSearch: <T>({ debounceInterval, searchFn, searchQuery, }: UseSearchParams<T>) => SearchController<T>;
