import { Injector } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { ExtensionPointForPlugins } from '../common/extension-hooks';
import { PluginsResolveService } from '../plugins';
import { DynamicComponentDefinition } from './dynamic-component.model';
import { DynamicResolverService } from './dynamic-resolver.service';
import * as i0 from "@angular/core";
export declare class DynamicComponentService extends ExtensionPointForPlugins<DynamicComponentDefinition> {
    private router;
    private waitTimeout;
    private dynamicResolver;
    private plugins;
    private DEFAULT_WAIT_TIMEOUT;
    constructor(rootInjector: Injector, router: Router, waitTimeout: number, dynamicResolver: DynamicResolverService, plugins: PluginsResolveService);
    get state(): Set<DynamicComponentDefinition>;
    /**
     * Returns a component by it's id as an observable.
     * @param id The id of the component.
     */
    getById(id: any): Promise<DynamicComponentDefinition>;
    add(component: DynamicComponentDefinition): void;
    remove(component: DynamicComponentDefinition): void;
    executeResolvers(componentIdAndConfig: Array<{
        componentId: string;
        config: any;
    }>): Promise<unknown[]>;
    serializeConfigs(componentIdAndConfig: Array<{
        componentId: string;
        config: any;
    }>): Promise<{
        [key: string]: Partial<any> | Partial<any>[];
    }[]>;
    protected setupItemsObservable(): Observable<DynamicComponentDefinition[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DynamicComponentService, [null, null, { optional: true; }, null, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DynamicComponentService>;
}
//# sourceMappingURL=dynamic-component.service.d.ts.map