import type { QuerySuggestRequest } from '../../api/search/query-suggest/query-suggest-request.js';
import type { QuerySuggestSuccessResponse } from '../../api/search/query-suggest/query-suggest-response.js';
import type { NavigatorContext } from '../../app/navigator-context-provider.js';
import type { ConfigurationSection, ContextSection, PipelineSection, QuerySetSection, QuerySuggestionSection, SearchHubSection } from '../../state/state-sections.js';
export type StateNeededByQuerySuggest = ConfigurationSection & QuerySuggestionSection & QuerySetSection & Partial<ContextSection & PipelineSection & SearchHubSection>;
export interface RegisterQuerySuggestActionCreatorPayload {
    /**
     * A unique identifier for the new query suggest entity (e.g., `b953ab2e-022b-4de4-903f-68b2c0682942`). Usually, this will be the ID of the search box controller that requests the query suggestions.
     */
    id: string;
    /**
     * The number of query suggestions to request from Coveo ML (e.g., `3`).
     *
     * @defaultValue `5`.
     */
    count?: number;
}
export declare const registerQuerySuggest: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: RegisterQuerySuggestActionCreatorPayload], RegisterQuerySuggestActionCreatorPayload, "querySuggest/register", never, never>;
export declare const unregisterQuerySuggest: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
    id: string;
}], {
    id: string;
}, "querySuggest/unregister", never, never>;
export interface SelectQuerySuggestionActionCreatorPayload {
    /**
     * The unique identifier of the target query suggest entity (e.g., `b953ab2e-022b-4de4-903f-68b2c0682942`). Usually, this will be the ID of the search box controller that requests the query suggestions.
     */
    id: string;
    /**
     * The selected query suggestion (e.g., `coveo`).
     */
    expression: string;
}
export declare const selectQuerySuggestion: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SelectQuerySuggestionActionCreatorPayload], SelectQuerySuggestionActionCreatorPayload, "querySuggest/selectSuggestion", never, never>;
export interface ClearQuerySuggestActionCreatorPayload {
    /**
     * The unique identifier of the target query suggest entity (e.g., `b953ab2e-022b-4de4-903f-68b2c0682942`). Usually, this will be the ID of the search box controller that requests the query suggestions.
     */
    id: string;
}
export declare const clearQuerySuggest: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ClearQuerySuggestActionCreatorPayload], ClearQuerySuggestActionCreatorPayload, "querySuggest/clear", never, never>;
export interface FetchQuerySuggestionsActionCreatorPayload {
    /**
     * The unique identifier of the target query suggest entity (e.g., `b953ab2e-022b-4de4-903f-68b2c0682942`). Usually, this will be the ID of the search box controller that requests the query suggestions.
     */
    id: string;
}
export interface FetchQuerySuggestionsThunkReturn extends FetchQuerySuggestionsActionCreatorPayload, QuerySuggestSuccessResponse {
    /**
     * The query for which query suggestions were retrieved.
     */
    q: string | undefined;
}
export declare const fetchQuerySuggestions: import("@reduxjs/toolkit").AsyncThunk<FetchQuerySuggestionsThunkReturn, FetchQuerySuggestionsActionCreatorPayload, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByQuerySuggest;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const buildQuerySuggestRequest: (id: string, s: StateNeededByQuerySuggest, navigatorContext: NavigatorContext) => Promise<QuerySuggestRequest>;
