import { NgModuleRef, EnvironmentInjector, Type, Injector } from '@angular/core';
import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
import * as i0 from "@angular/core";
export declare class PluginsResolveService {
    /**
     * Emits all injectors of already loaded plugins on subscription.
     */
    injectors$: Observable<EnvironmentInjector | Injector>;
    /**
     * Emits once remotePlugins have been resolved.
     */
    refresh$: Observable<void>;
    /**
     * Emits all plugin details of already loaded plugins on subscription.
     */
    pluginDetails$: Observable<{
        remoteNgModule: NgModuleRef<unknown> | Type<unknown>;
        moduleRef: NgModuleRef<unknown>;
    }>;
    allPluginsLoaded$: Observable<boolean>;
    loadedPluginNames$: Observable<string[]>;
    /**
     * Emits all contextPaths (including the corresponding version/tag, if provided) that have been already loaded on startup and further any newload loaded.
     */
    contextPathsFromWhereRemotesHaveBeenLoaded$: Observable<string[]>;
    private _refresh$;
    private _allPluginsLoaded$;
    _contextPathsFromWhereRemotesHaveBeenLoaded$: BehaviorSubject<string[]>;
    _loadedPluginNames$: BehaviorSubject<string[]>;
    _injectors$: ReplaySubject<EnvironmentInjector | Injector>;
    _pluginDetails$: ReplaySubject<{
        remoteNgModule: NgModuleRef<unknown> | Type<unknown>;
        moduleRef: NgModuleRef<unknown>;
    }>;
    constructor();
    /**
     * Will refresh all current registered hooks.
     */
    refreshHooks(): void;
    markPluginsAsLoaded(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PluginsResolveService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PluginsResolveService>;
}
//# sourceMappingURL=plugins-resolve.service.d.ts.map