import type { CommerceEngine } from '../../../app/commerce-engine/commerce-engine.js';
import type { FieldSuggestionsFacet } from '../../../features/commerce/facets/field-suggestions-order/field-suggestions-order-state.js';
import { type Controller } from '../../controller/headless-controller.js';
import type { CategoryFieldSuggestionsValue, CategoryFieldSuggestionsState as CoreCategoryFieldSuggestionsState } from '../../field-suggestions/category-facet/headless-category-field-suggestions.js';
import type { CategoryFacetOptions } from '../core/facets/category/headless-commerce-category-facet.js';
import type { FacetControllerType } from '../core/facets/headless-core-commerce-facet.js';
export type { CategoryFieldSuggestionsValue };
/**
 * The state of the `CategoryFieldSuggestions` controller.
 *
 * @group Buildable controllers
 * @category CategoryFieldSuggestions
 * @alpha
 * @deprecated
 */
export type CategoryFieldSuggestionsState = CoreCategoryFieldSuggestionsState & Pick<FieldSuggestionsFacet, 'facetId' | 'displayName' | 'field'>;
/**
 * The `CategoryFieldSuggestions` controller provides query suggestions based on a particular category facet field.
 *
 * For example, you could use this controller to provide auto-completion suggestions while the end user is typing an item category.
 *
 * This controller is a wrapper around the basic category facet controller search functionality, and thus exposes similar options and properties.
 *
 * @group Buildable controllers
 * @category CategoryFieldSuggestions
 * @alpha
 * @deprecated
 */
export interface CategoryFieldSuggestions extends Controller, FacetControllerType<'hierarchical'> {
    /**
     * Requests field suggestions based on a query.
     *
     * @param text - The query with which to request field suggestions.
     */
    updateText(text: string): void;
    /**
     * Requests field suggestions based on a query.
     */
    search(): void;
    /**
     * Filters the search using the specified value.
     *
     * If a facet exists with the configured `facetId`, selects the corresponding facet value.
     *
     * @param value - The field suggestion to select.
     */
    select(value: CategoryFieldSuggestionsValue): void;
    /**
     * Resets the query and empties the suggestions.
     */
    clear(): void;
    state: CategoryFieldSuggestionsState;
}
/**
 * The `CategoryFieldSuggestions` controller provides query suggestions based on a particular category facet field.
 * @param engine - The headless commerce engine.
 * @param options - The options for the `CategoryFieldSuggestions` controller.
 * @returns A `CategoryFieldSuggestions` controller instance.
 *
 * @group Buildable controllers
 * @category CategoryFieldSuggestions
 */
export declare function buildCategoryFieldSuggestions(engine: CommerceEngine, options: CategoryFacetOptions): CategoryFieldSuggestions;
