import type { CommerceEngine } from '../../../app/commerce-engine/commerce-engine.js'; import type { StandaloneSearchBoxProps } from '../../standalone-search-box/headless-standalone-search-box.js'; import { type SearchBox, type SearchBoxState } from '../search-box/headless-search-box.js'; /** * The `StandaloneSearchBox` controller is responsible for handling a standalone search box. * * @group Buildable controllers * @category StandaloneSearchBox */ export interface StandaloneSearchBox extends SearchBox { /** * Triggers a redirection. */ submit(): void; /** * Updates the redirection url of the standalone search box. * @param url - The new URL to redirect to. */ updateRedirectUrl(url: string): void; /** * Resets the standalone search box state. To be dispatched on single page applications after the redirection has been triggered. */ afterRedirection(): void; /** * A scoped and simplified part of the headless state that is relevant to the `StandaloneSearchBox` controller. */ state: StandaloneSearchBoxState; } /** * The state of the `StandaloneSearchBox` controller. * * @group Buildable controllers * @category StandaloneSearchBox */ export interface StandaloneSearchBoxState extends SearchBoxState { /** * The URL to redirect to. */ redirectTo: string; } /** * Creates a `StandaloneSearchBox` controller instance. * * @param engine - The headless commerce engine. * @param props - The configurable `StandaloneSearchBox` properties. * @returns A `StandaloneSearchBox` controller instance. * * @group Buildable controllers * @category StandaloneSearchBox */ export declare function buildStandaloneSearchBox(engine: CommerceEngine, props: StandaloneSearchBoxProps): StandaloneSearchBox;