import { EntityConstructor, IFrameworkDepts } from "./base"; export declare const MODULE_DEFINE = "ambjs::module_define"; export interface IModuleContract { name: string | null; displayName: string | null; provider: keyof IFrameworkDepts; components: EntityConstructor[]; directives: EntityConstructor[]; compositions: EntityConstructor[]; dependencies: Record; } export declare function defineModule(target: EntityConstructor, metadata: IModuleContract): void; export declare function resolveModule(target: EntityConstructor, defaults?: Partial): IModuleContract; export declare function Module(define?: Partial): (target: import("@bonbons/di").InjectDIToken) => any;