import { AbstractHttpController } from "../controller/http/AbstractHttpController";
import { AbstractSocketController } from "../controller/socket/AbstractSocketController";
import { AbstractService } from "../service/AbstractService";
import { AbstractModel } from "../model/AbstractModel";
export declare class DIInfo<T> {
    name: string;
    constructorFn: {
        new (...args: any[]): T;
    };
    instance?: T;
    env?: string[];
}
export declare class InjectorInfo {
    prototype: any;
    propertyKey: string;
    keyPrototype: any;
}
export declare class GlobalInjection {
    injectables: DIInfo<any>[];
    injectRegistry: InjectorInfo[];
    httpControllers: DIInfo<AbstractHttpController>[];
    socketControllers: DIInfo<AbstractSocketController>[];
    services: DIInfo<AbstractService>[];
    models: DIInfo<AbstractModel>[];
    findAndReplace(injectee: any, abstractClass: any): void;
}
export declare const getGlobalInjection: () => GlobalInjection;
//# sourceMappingURL=GlobalInjection.d.ts.map