import { Ref } from 'vue';
import { SelectOptionLike } from '../definitions/shared/select-options';
export interface UseAsyncSearchOptions {
    onSearch?: (query: string) => Promise<SelectOptionLike[]>;
    initialOptions?: SelectOptionLike[];
    minSearchLength?: number;
    debounceMs?: number;
}
export interface UseAsyncSearchReturn {
    query: Ref<string>;
    results: Ref<SelectOptionLike[]>;
    isLoading: Ref<boolean>;
    /** Trigger a search for the current query (respecting debounce). */
    trigger: (next: string) => void;
    /** Synchronously cancel any in-flight token + pending debounce. */
    dispose: () => void;
}
export declare function useAsyncSearch(options: UseAsyncSearchOptions): UseAsyncSearchReturn;
//# sourceMappingURL=useAsyncSearch.d.ts.map