import { Injector, TemplateRef } from '@angular/core';
import { Router } from '@angular/router';
import { Observable, Subject } from 'rxjs';
import { ExtensionPointForPlugins } from '../common/extension-hooks';
import { PluginsResolveService } from '../plugins';
import { WizardEntry } from './wizard.model';
import * as i0 from "@angular/core";
export declare class WizardService extends ExtensionPointForPlugins<WizardEntry> {
    private router;
    /** Wizard header subject. It emits header template. */
    readonly headerTemplate$: Subject<{
        wizardId: string;
        template: TemplateRef<any>;
    }>;
    /** Wizard body subject. It emits body template. */
    readonly bodyTemplate$: Subject<{
        wizardId: string;
        template: TemplateRef<any>;
    }>;
    /** Wizard footer subject. It emits footer template. */
    readonly footerTemplate$: Subject<{
        wizardId: string;
        template: TemplateRef<any>;
    }>;
    constructor(rootInjector: Injector, router: Router, plugins: PluginsResolveService);
    /**
     * Returns the current state.
     * @returns The current set of entries.
     * @readonly
     */
    get state(): Set<WizardEntry>;
    /**
     * Adds a new entry in the wizard.
     * @param entry Wizard entry to add.
     */
    add(entry: WizardEntry): void;
    /**
     * Removes entry from the wizard.
     * @param entry Wizard entry to remove.
     */
    remove(entry: WizardEntry): void;
    /**
     * List of wizard entries matching the given id.
     * @param id
     * @returns observable with list of wizard entries.
     */
    getEntriesListById(id: string): Observable<WizardEntry[]>;
    protected setupItemsObservable(): Observable<WizardEntry[]>;
    private getUniqueListBy;
    private getUniqIdentifierForKeys;
    static ɵfac: i0.ɵɵFactoryDeclaration<WizardService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WizardService>;
}
//# sourceMappingURL=wizard.service.d.ts.map