export interface DIInject { property: string; name: string; lazy?: boolean; factory?: boolean; } export interface DIDescriptor { name: string; ref: any; ns?: string; inherit?: string; params?: any[]; inject?: DIInject[]; action?: any; accept?: string[]; reject?: string[]; role?: string; singleton?: boolean; instances?: any[]; } export declare function Injectable(descriptor?: string | Partial): any; export declare function Inject(config: Partial | string): any; export declare class DI { static readonly DIRECTIONS: { CHILD_TO_PARENT: number; PARENT_TO_CHILD: number; }; static defaults: any; static readonly ACTIONS: { CREATE: number; INVOKE: number; NONE: number; }; static getDescriptor(name: string, ns?: string, descriptor?: Map): any; static lookupDescriptor(name: string, config?: {}): any; static getFactory(name: any, config?: { params: any[]; }): (...params: any[]) => any; static getProjection(name: string, ns?: string, projections?: Map): any; static get(name: string | Partial, config?: Partial): T; static setProjection(list: any, projections?: Map): typeof DI; static removeProjection(key: string, projections?: Map): typeof DI; static removeDescriptor(name: string, ns?: string, descriptors?: Map): typeof DI; static set(descriptor: DIDescriptor): typeof DI; private defaults; private projections; private descriptors; constructor(descriptor?: {}); getDescriptor(name: string, ns?: string): any; lookupDescriptor(name: string, config?: any): any; getProjection(name: string, ns?: string): any; setProjection(list: any): this; removeProjection(key: string): this; removeDescriptor(name: string): this; get(name: string, config?: Partial): T; set(descriptor: DIDescriptor): any; getFactory(name: string, config?: any): (...params: any[]) => any; }