import type { ParameterManager, ParameterManagerProps, ParameterManagerState } from '../../../../controllers/commerce/core/parameter-manager/headless-core-parameter-manager.js';
import type { Parameters } from '../../../../features/commerce/parameters/parameters-actions.js';
import type { ProductListingParameters } from '../../../../features/commerce/product-listing-parameters/product-listing-parameters-actions.js';
import type { CommerceSearchParameters } from '../../../../features/commerce/search-parameters/search-parameters-actions.js';
import type { ControllerDefinitionOption, SubControllerDefinitionWithProps } from '../../types/controller-definitions.js';
export type { ParameterManager, ParameterManagerProps, ParameterManagerState, Parameters, ProductListingParameters, CommerceSearchParameters, };
export type ParameterManagerDefinition<TOptions extends ControllerDefinitionOption | undefined> = SubControllerDefinitionWithProps<ParameterManager<MappedParameterTypes<TOptions>>, TOptions, SSRParameterManagerProps<MappedParameterTypes<TOptions>>>;
/**
 * Defines a `ParameterManager` controller instance.
 * @group Definers
 *
 * @returns The `ParameterManager` controller definition.
 */
export declare function defineParameterManager<TOptions extends ControllerDefinitionOption | undefined>(options?: TOptions): ParameterManagerDefinition<TOptions>;
export interface SSRParameterManagerProps<T extends Parameters> extends Omit<ParameterManagerProps<T>, 'excludeDefaultParameters'> {
}
type MappedParameterTypes<TOptions extends ControllerDefinitionOption | undefined> = TOptions extends {
    listing: true;
    search: true;
} | undefined ? ProductListingParameters | CommerceSearchParameters : TOptions extends {
    listing: true;
    search: false;
} ? ProductListingParameters : TOptions extends {
    listing: false;
    search: true;
} ? CommerceSearchParameters : never;
