import { CommerceEngine } from '../../../../../app/commerce-engine/commerce-engine.js';
import { LocationFacetValue } from '../../../../../features/commerce/facets/facet-set/interfaces/response.js';
import { CoreCommerceFacet, CoreCommerceFacetOptions, CoreCommerceFacetState, FacetControllerType, FacetValueRequest } from '../headless-core-commerce-facet.js';
/**
 * @group Sub-controllers
 * @category LocationFacet
 */
export type LocationFacetOptions = Omit<CoreCommerceFacetOptions, 'toggleSelectActionCreator' | 'toggleExcludeActionCreator'>;
/**
 * @group Sub-controllers
 * @category LocationFacet
 */
export type LocationFacetState = Omit<CoreCommerceFacetState<LocationFacetValue>, 'type'> & {
    type: 'location';
};
/**
 * The `LocationFacet` sub-controller offers a high-level programming interface for implementing a location commerce
 * facet UI component.
 *
 * @group Sub-controllers
 * @category LocationFacet
 */
export type LocationFacet = Omit<CoreCommerceFacet<FacetValueRequest, LocationFacetValue>, 'isValueExcluded' | 'toggleExclude' | 'toggleSingleExclude'> & {
    state: LocationFacetState;
} & FacetControllerType<'location'>;
/**
 * @internal
 *
 * **Important:** This initializer is meant for internal use by headless only.
 * As an implementer, you must not import or use this initializer directly in your code.
 * You will instead interact with `LocationFacet` sub-controller instances through the state of a `FacetGenerator`
 * sub-controller.
 *
 * @param engine - The headless commerce engine.
 * @param options - The `LocationFacet` options used internally.
 * @returns A `LocationFacet` sub-controller instance.
 * */
export declare function buildCommerceLocationFacet(engine: CommerceEngine, options: LocationFacetOptions): LocationFacet;
export declare const getLocationFacetState: (coreState: CoreCommerceFacetState<LocationFacetValue>) => LocationFacetState;
