import type { CoreEngine } from '../../../app/engine.js';
import type { BaseFacetValueRequest, CurrentValues } from '../../../features/facets/facet-api/request.js';
import type { FacetRequest } from '../../../features/facets/facet-set/interfaces/request.js';
import { type SearchParameters } from '../../../features/search-parameters/search-parameter-actions.js';
import { type Controller } from '../../controller/headless-controller.js';
export type { SearchParameters };
export interface SearchParameterManagerProps {
    /**
     * The initial state that should be applied to the `SearchParameterManager` controller.
     */
    initialState: SearchParameterManagerInitialState;
}
export interface SearchParameterManagerInitialState {
    /**
     * The parameters affecting the search response.
     */
    parameters: SearchParameters;
}
/**
 * The `SearchParameterManager` controller allows restoring parameters that affect the results from e.g. a url.
 *
 * @group Controllers
 * @category SearchParameterManager
 * */
export interface SearchParameterManager extends Controller {
    /**
     * Updates the search parameters in state with the passed parameters and executes a search. Unspecified keys are reset to their initial values.
     *
     * @param parameters - The search parameters to synchronize.
     */
    synchronize(parameters: SearchParameters): void;
    /**
     * The state relevant to the `SearchParameterManager` controller.
     * */
    state: SearchParameterManagerState;
}
/**
 * A scoped and simplified part of the Headless state that is relevant to the `SearchParameterManager` controller.
 *
 * @group Controllers
 * @category SearchParameterManager
 */
export interface SearchParameterManagerState {
    /**
     * The parameters affecting the search response.
     */
    parameters: SearchParameters;
}
/**
 * Creates a `SearchParameterManager` controller instance.
 *
 * @param engine - The headless engine.
 * @param props - The configurable `SearchParameterManager` properties.
 * @returns A `SearchParameterManager` controller instance.
 */
export declare function buildCoreSearchParameterManager(engine: CoreEngine, props: SearchParameterManagerProps): SearchParameterManager;
export declare function enrichParameters(engine: CoreEngine, parameters: SearchParameters): Required<SearchParameters>;
export declare function getCoreActiveSearchParameters(engine: CoreEngine): SearchParameters;
export declare function getSelectedValues(request: FacetRequest): string[];
export declare function getSelectedRangeValues(request: CurrentValues<BaseFacetValueRequest>): BaseFacetValueRequest[];
