import type { ClassConstructor } from '../type/utils'; /** * Class Container * @description zh-CN 容器类,所有需要注入到核心容器的方法或者类都源于此 * @author SunnyXu */ export declare class Container { protected static instance: Container | null; protected instances: Map; protected bindings: Record; protected aliases: Record; /** * method bind * @description zh-CN 绑定方法 * @param abstract * @param concrete */ bind(abstract: string | string[], concrete: any): void; /** * make 创建类的实例/获取对象 create instance/object * @param abstract * @param params * @param shared */ make(abstract: string, params?: Record | [], shared?: boolean): any; /** * makeClass 创建类 * @param name * @param Executor * @param params * @param shared */ protected makeClass(name: string, Executor: ClassConstructor, params: unknown, shared?: boolean): any; /** * makeFunc 创建函数 * @param name * @param executor * @param params * @param shared * @protected */ protected makeFunc(name: string, executor: CallableFunction, params: unknown, shared?: boolean): any; /** * has as existence * 是否存在标识 existence 的别名 * @param {String} name */ has(name: string): boolean; /** * existence 存在标识 * @param {String} name */ existence(name: string): boolean; /** * getAlias 获取别名 * @param abstract */ getAlias(abstract: string): any; /** * get 获取实例 * @param abstract */ get(abstract: string): any; /** * singleton 单例 * @param abstract * @param concrete */ singleton(abstract: string, concrete: any): void; /** * getInstance 获取实例 * */ static getInstance(): Container | Instance; /** * proxyInstance 代理实例 * */ protected proxyInstance(): this; }