import type { Class, ResolvedValue, Token } from '../../utils/types.js'; import type { Binding } from '../binding/Binding.js'; import type { BindingCapable } from '../binding/BindingCapable.js'; import type { BindingContext } from '../binding/BindingContext.js'; import { BindToProviderDirective } from '../binding-dsl/BindToProviderDirective.js'; import type { InstantiationCapable } from '../class-injector/InstantiationCapable.js'; import type { ResolutionCapable } from '../resolution/ResolutionCapable.js'; import { type ResolutionContext } from '../resolution/ResolutionContext.js'; export declare class Container implements BindingCapable, ResolutionCapable, InstantiationCapable { protected readonly sharedResolutionContext: ResolutionContext; protected readonly sharedBindingContext: BindingContext; constructor(); bind(tokenOrClass: T): BindToProviderDirective ? I : T>; resolve(token: T, scope?: S): ResolvedValue; tryResolve(token: T, scope?: S): ResolvedValue | null; instantiate>(clazz: C): InstanceType; getBinding(token: Token, scope?: S): Binding; getAllRegisteredTokens(): Token[]; }