import IConstructor = require('./IConstructor'); import IServiceDefinition = require('./IServiceDefinition'); export = DependencyInjection; declare class DependencyInjection { private name; private serviceDefs; private static DEPENDENCY_INJECTION_TO_SERVICE_DELIMITER; private static HASH_KEY; private dependencyInjections; private services; private serviceFactories; private serviceNamesByContructor; Name: string; constructor(name: string, serviceDefs: { [name: string]: any | IConstructor | IServiceDefinition; }, dependencyInjections?: DependencyInjection[]); addServiceDefinitions(serviceDefs: { [name: string]: any | IConstructor | IServiceDefinition; }): void; private prepareServiceDefinition(name, def); private afterPrepared(name, def); private addServiceFactory(name, factory, clazz?); private createFactorySimple(def); private createFactoryByClass(Constructor, args, inject); private createFactoryByFactory(factory, args, inject); private getInjectServices(args, inject); private createFactoryByDefinition(serviceDef); private isServiceDefinition(def); private getKeys(object); private subService(name); private hasSubService(name); private getNameByConstructor(constructor); private getHash(object); private getName(nameOrConstructor); hasService(nameOrConstructor: any): boolean; service(nameOrConstructor: string | IConstructor): any; byName(name: string): any; get(constructor: any): Service; addService(name: string, service: any): void; private hasDependencyInjection(name); getDependencyInjection(name: string): any; }