import { MACHINAT_SERVICE_INTERFACE } from '../symbol'; import type ServiceMaker from './maker'; import type { ServiceCache, ServiceContainer, Interfaceable, ServiceDependency, ResolveDependencies } from './types'; /** * ServiceScope hpld the scope cache for later injection, any container * executed under the same scope share the same singleton and scoped services. */ export default class ServiceScope { static $$typeof: typeof MACHINAT_SERVICE_INTERFACE; static $$name: string; static $$multi: false; static $$polymorphic: false; maker: ServiceMaker; singletonCache: ServiceCache; scopeCache: ServiceCache; constructor(maker: ServiceMaker, singletonCache: ServiceCache, scopedCache?: ServiceCache); useServices[]>(dependencies: Deps, runtimeProvisions?: Map, unknown>): ResolveDependencies; injectContainer(container: ServiceContainer, runtimeProvisions?: Map, unknown>): T; }