import { Provider } from '@angular/core';
import { ImportResolveFn } from '../resolve';
export type ImportsOrchestratorConcurrency = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Concurrency>;
export type ImportsOrchestratorInterceptor = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Interceptor>;
export type ImportsOrchestratorRouting = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Routing>;
export type ImportsOrchestratorTimeout = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Timeout>;
export type ImportsOrchestratorLogger = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Logger>;
export type ImportsOrhestratorQueue = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Queue>;
export type ImportsOrchestratorOrchestration = ImportsOrchestratorFeature<ImportsOrchestratorFeatureKind.Orchestration>;
export declare enum ImportsOrchestratorFeatureKind {
    Logger = 0,
    Timeout = 1,
    Routing = 2,
    Concurrency = 3,
    Interceptor = 4,
    Orchestration = 5,
    Queue = 6
}
export type ImportsOrchestratorFeature<T extends ImportsOrchestratorFeatureKind> = {
    kind: T;
    providers: Provider[];
};
export declare function importsOrchestratorFeature<T extends ImportsOrchestratorFeatureKind>(kind: T, providers: Provider[]): ImportsOrchestratorFeature<T>;
export type ImportsOrchestration = {
    [index: string]: number;
};
export type ImportsStore = {
    [index: string]: string | ImportResolveFn;
};
