import type { SearchEngine } from '../app/search-engine/search-engine.js';
import type { Controller } from '../controllers/controller/headless-controller.js';
import type { Kind } from '../ssr/commerce/types/kind.js';
import type { ControllerDefinitionWithoutProps, ControllerDefinitionWithProps } from '../ssr-next/common/types/controllers.js';
interface MockController {
    initialState?: Record<string, unknown>;
}
interface MockControllerDefinitionWithoutProps extends ControllerDefinitionWithoutProps<SearchEngine, Controller> {
}
interface MockControllerDefinitionWithProps extends ControllerDefinitionWithProps<SearchEngine, Controller, MockController> {
}
type SolutionTypeAvailabilities = {
    listing?: boolean;
    search?: boolean;
    standalone?: boolean;
    recommendation?: boolean;
};
export declare function defineMockController(): MockControllerDefinitionWithoutProps;
export declare function defineMockControllerWithProps(): MockControllerDefinitionWithProps;
export declare function defineMockCommerceController(options?: SolutionTypeAvailabilities): {
    build: import("vitest").Mock<(_engine: any) => Controller>;
    listing: boolean;
    search: boolean;
    standalone: boolean;
    recommendation: boolean;
};
export declare function defineMockCommerceControllerWithProps(options?: SolutionTypeAvailabilities): {
    buildWithProps: import("vitest").Mock<(engine: any, props: any) => {
        state: {};
        subscribe(listener: () => void): import("redux").Unsubscribe;
        _kind: Kind;
    }>;
    listing: boolean;
    search: boolean;
    standalone: boolean;
    recommendation: boolean;
};
export {};
