export declare enum DependencyType {
    CLASS = 0,
    FUNCTION = 1,
    VALUE = 2
}
export type RegisterArgs = {
    name: string;
    dependency: any;
    type?: DependencyType;
    singleton?: boolean;
};
export type LoadModulesArgs = {
    path: string;
    suffix?: string;
    index?: string;
};
export interface IDependencyInjector<C> {
    initialize(): C;
    loadModules(args: LoadModulesArgs): string[];
    register(args: RegisterArgs[]): void;
    registerThirdPartyDependencies(dependencies: {
        [key: string]: any;
    }): void;
}
