import { CommerceEngine } from '../../../app/commerce-engine/commerce-engine.js';
import { StandaloneSearchBoxProps } from '../../standalone-search-box/headless-standalone-search-box.js';
import { SearchBox, 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;
