import { Binding } from './binding'; import { GetOptions, Options, CommonToken, ActivationHandler, DeactivationHandler } from './interfaces'; /** * 依赖注入容器。 * * @example 基本用法 * ```typescript * const container = new Container(); * container.bind(MyService).toSelf(); * const myService = container.get(MyService); * ``` */ export declare class Container { static _instanceContainerMap: WeakMap; static getContainerOf(instance: object): Container | undefined; parent?: Container; _children?: Set; _bindings: Map; _destroyed: boolean; _onActivationHandler?: ActivationHandler; _onDeactivationHandler?: DeactivationHandler; bind(token: CommonToken): Binding; unbind(token: CommonToken): void; tryGet(token: CommonToken): T | undefined; rebind(token: CommonToken): Binding; unbindAll(): void; isCurrentBound(token: CommonToken): boolean; isBound(token: CommonToken): boolean; createChild(): Container; getChildren(): Set | undefined; destroy(): void; get(token: CommonToken, options: GetOptions & { optional: true; }): T | void; get(token: CommonToken, options?: GetOptions & { optional?: false; }): T; get(token: CommonToken, options?: GetOptions): T | void; getAsync(token: CommonToken, options: GetOptions & { optional: true; }): Promise; getAsync(token: CommonToken, options?: GetOptions & { optional?: false; }): Promise; getAsync(token: CommonToken, options?: GetOptions): Promise; _resolveWithInternalOpts(token: CommonToken, options: Options): T | void; _resolveSkipSelf(token: CommonToken, options: Options): T | void; _resolveSelf(token: CommonToken, options: Options): T | void; _resolveDefault(token: CommonToken, options: Options): T | void; onActivation(handler: ActivationHandler): void; onDeactivation(handler: DeactivationHandler): void; activate(input: T, token: CommonToken): T; deactivate(binding: Binding): void; _buildBinding(token: CommonToken): Binding; _getBinding(token: CommonToken): Binding; _checkBindingNotFoundError(token: CommonToken, options: Options): void; }