import { ServiceManagerInterface } from './ServiceManagerInterface'; import { Instantiable } from '../Core'; import { FactoryInterface } from './FactoryInterface'; export interface ServiceFactoryType extends Function { (sm?: ServiceManagerInterface): T; } export declare type FactoriesMapType = Map; export declare type ServicesMapType = Map; export declare type InvokablesMapType = Map | string, Instantiable>; export declare type AliasesType = { [alias: string]: string | Function; }; export declare type SharedMapType = Map; export declare type ServiceKeyType = Instantiable | string; export declare type ServiceManagerConfigType = Partial<{ sharedByDefault: boolean; shared: SharedMapType; services: ServicesMapType; factories: FactoriesMapType; aliases: AliasesType; invokables: InvokablesMapType; }>;