import { InjectDIToken } from "@bonbons/di"; import { EntityConstructor, IFrameworkDepts, IConstructor } from "../core/decorators"; import { Builder, BasicEntityProvider } from "../providers"; export interface IFactoryOptions { trace: boolean; } export declare class BaseFactory { private _completed; private _di; private _map; private __trace; private __pre_providers; private __pre_entity_providers; private __pre_modules; get builder(): Builder; constructor(options?: Partial); /** @override can be overrided */ protected initOptions(options: Partial): void; /** @override can be overrided */ protected initProviders(): void; /** @override can be overrided */ protected initModules(): void; /** @override can be overrided */ protected initEntityProviders(): void; useProvider(contract: InjectDIToken, imple?: EntityConstructor): this; useModule(md: EntityConstructor): this; useEntityProvider(name: keyof IFrameworkDepts, provider: IConstructor): this; removeProvider(contract: InjectDIToken): this; removeModule(md: EntityConstructor): this; removeEntityProvider(provider: T): this; release(): this; reset(): this; parse(): this; private _initGlobalMap; private _useProvider; }