import { IServiceProviderFactoryFn } from 'src/interfaces';
import { ServiceProvider } from './ServiceProvider';
export declare type RegisteredProvider = [any, IServiceProviderFactoryFn];
export declare class ServiceRegistry {
    private readonly serviceMap;
    private readonly resolutionCache;
    private readonly globalProviders;
    resolve(obj: any, Type: any): Promise<any>;
    private filterProvidersForType;
    registerProviders(providers: ServiceProvider[]): void;
    getProvidersFor(ObjectClass: any): RegisteredProvider[];
    registerFor(ProvidedClasses: '*' | any | any[], Type: any, fn: IServiceProviderFactoryFn): void;
    private getIndirectProviders;
    private addToRegistry;
}
export declare const registry: ServiceRegistry;
