import { UnknownAction } from '@reduxjs/toolkit';
import { Controller } from '../../controllers/controller/headless-controller.js';
import { CoreEngine, CoreEngineNext } from '../engine.js';
import { ControllerDefinitionsMap, ControllersMap, EngineStaticState, InferControllerPropsMapFromDefinitions, InferControllerStaticStateMapFromControllers, InferControllersMapFromDefinition } from './types/common.js';
export declare function buildControllerDefinitions<TControllerDefinitionsMap extends ControllerDefinitionsMap<CoreEngine | CoreEngineNext, Controller>, TEngine extends CoreEngine | CoreEngineNext>({ definitionsMap, engine, propsMap, }: {
    definitionsMap: TControllerDefinitionsMap;
    engine: TEngine;
    propsMap: InferControllerPropsMapFromDefinitions<TControllerDefinitionsMap>;
}): InferControllersMapFromDefinition<TControllerDefinitionsMap>;
export declare function createStaticState<TSearchAction extends UnknownAction>({ searchAction, controllers, }: {
    searchAction: TSearchAction;
    controllers: ControllersMap;
}): EngineStaticState<TSearchAction, InferControllerStaticStateMapFromControllers<ControllersMap>>;
export declare function composeFunction<TParameters extends Array<unknown>, TReturn, TChildren extends {}>(parentFunction: (...params: TParameters) => TReturn, children: TChildren): TChildren & {
    (...params: TParameters): TReturn;
};
