import type { Controller } from '../../../controllers/controller/headless-controller.js';
import type { ControllersMap, ControllersPropsMap, EngineDefinitionBuildResult, OptionsExtender, OptionsTuple } from '../../ssr-engine/types/common.js';
import type { SSRCommerceEngine } from '../factories/build-factory.js';
import type { ControllerDefinitionsMap, EngineDefinitionControllersPropsOption, SolutionType } from './common.js';
export interface BuildOptions<TEngineOptions> {
    extend?: OptionsExtender<TEngineOptions>;
}
export type Build<TEngineOptions, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap, TControllersDefinitionsMap extends ControllerDefinitionsMap<Controller>, TSolutionType extends SolutionType> = (...params: OptionsTuple<BuildOptions<TEngineOptions> & EngineDefinitionControllersPropsOption<TControllersDefinitionsMap, TControllersProps, TSolutionType>>) => Promise<EngineDefinitionBuildResult<SSRCommerceEngine, TControllersMap>>;
