import type { CoreEngine, CoreEngineNext } from '../../engine.js';
import type { ControllersMap, ControllersPropsMap, EngineDefinitionBuildResult, EngineDefinitionControllersPropsOption, OptionsExtender, OptionsTuple } from './common.js';
export interface BuildOptions<TEngineOptions> {
    extend?: OptionsExtender<TEngineOptions>;
}
export type Build<TEngine extends CoreEngine | CoreEngineNext, TEngineOptions, TControllersMap extends ControllersMap, TControllersProps extends ControllersPropsMap> = (...params: OptionsTuple<BuildOptions<TEngineOptions> & EngineDefinitionControllersPropsOption<TControllersProps>>) => Promise<EngineDefinitionBuildResult<TEngine, TControllersMap>>;
