import { Token, Container } from 'ditox'; import { B as BaseControllerContext, E as ExtensionFn, i as ExtensionParamsProvider, a as BaseService, c as ControllerDeclaration } from './controller-BVEgCAYk.js'; import './types-CxOJPpKX.js'; import './types-jkBBq3Lp.js'; import './atom-DIp83xZa.js'; type DependencyProps = { [key: string]: unknown; }; type DependencyTokenProps = { [K in keyof Props]: Token; }; type DependencyContext = BaseControllerContext & { deps: Dependencies; }; /** * This extension provides values from DI container to the controller. */ declare function withInjections(tokens: DependencyTokenProps): ExtensionFn; type DependencyContainerContext = BaseControllerContext & { container: Container; }; /** * This extension provides DI container to the controller. */ declare function withContainer(): ExtensionFn; declare function provideDependencyContainer(container: Container): ExtensionParamsProvider; /** * This utility allows to use a controller with injections in DI bindings */ declare function applyInjections, TService extends BaseService>(controller: ControllerDeclaration): (container: Container) => TService; export { type DependencyContainerContext, type DependencyContext, type DependencyProps, type DependencyTokenProps, applyInjections, provideDependencyContainer, withContainer, withInjections };