import { IApplicationContext, IManagedInstance, IManagedResolver, IObjectDefinition } from '../../interfaces'; /** * 所有解析器基类 */ export declare class BaseManagedResolver implements IManagedResolver { protected _factory: ManagedResolverFactory; constructor(factory: ManagedResolverFactory); get type(): string; resolve(managed: IManagedInstance): any; resolveAsync(managed: IManagedInstance): Promise; } /** * 解析工厂 */ export declare class ManagedResolverFactory { private resolvers; private _props; private creating; singletonCache: Map; context: IApplicationContext; afterCreateHandler: any[]; beforeCreateHandler: any[]; constructor(context: IApplicationContext); get props(): any; /** * 用于解析模版化的值 * example: {{aaa.bbb.ccc}} * @param value 配置的模版值 */ tpl(value: any): any; registerResolver(resolver: IManagedResolver): void; resolveManaged(managed: IManagedInstance): any; resolveManagedAsync(managed: IManagedInstance): Promise; /** * 同步创建对象 * @param definition 对象定义 * @param args 参数 */ create(definition: IObjectDefinition, args: any): any; /** * 异步创建对象 * @param definition 对象定义 * @param args 参数 */ createAsync(definition: IObjectDefinition, args: any): Promise; destroyCache(): Promise; beforeEachCreated(fn: (Clzz: any, constructorArgs: [], context: IApplicationContext) => void): void; afterEachCreated(fn: (ins: any, context: IApplicationContext, definition?: IObjectDefinition) => void): void; /** * 触发单例初始化结束事件 * @param definition 单例定义 * @param success 成功 or 失败 */ private removeCreateStatus; isCreating(definition: IObjectDefinition): boolean; private compareAndSetCreateStatus; /** * 创建对象定义的代理访问逻辑 * @param definition 对象定义 */ private createProxyReference; /** * 遍历依赖树判断是否循环依赖 * @param identifier 目标id * @param definition 定义描述 */ depthFirstSearch(identifier: string, definition: IObjectDefinition, depth?: string[]): boolean; }