import type { Abstraction } from "./Abstraction.js"; import type { Constructor, Registration, Dependencies } from "./types.js"; export declare class Container { private registrations; private decorators; private instances; private factories; private instanceRegistrations; private composites; private parent?; register(implementation: Constructor): RegistrationBuilder; registerInstance(abstraction: Abstraction, instance: T): void; registerFactory(abstraction: Abstraction, factory: () => T): void; registerDecorator(decorator: Constructor): void; registerComposite(implementation: Constructor): void; resolve(abstraction: Abstraction): T; resolveAll(abstraction: Abstraction): T[]; resolveWithDependencies(config: { implementation: T; dependencies: Dependencies; }): InstanceType; createChildContainer(): Container; private resolveInternal; private tryResolveFromCurrentContainer; private resolveRegistration; private resolveMultiple; private collectDecorators; private applyDecorators; } declare class RegistrationBuilder { private registration; constructor(registration: Registration); inSingletonScope(): void; } export {};