import { TemplatePortal } from '@angular/cdk/portal';
import { ReplaySubject } from 'rxjs';
import { NavItemConfig } from '../../page-scaffold/navigation/nav-menu/nav-menu.types';
import * as i0 from "@angular/core";
/**
 * Provides a holder for UI templates to be used globally.
 */
export declare class TemplateHolder {
    private readonly templatePortalSubject;
    get templatePortal$(): import("rxjs").Observable<TemplatePortal<any>>;
    setTemplatePortal(templatePortal: TemplatePortal): void;
}
export declare enum TemplateHolderType {
    PageHeaderContent = "PageHeaderContent"
}
export interface ActiveNavItem {
    label: string;
    routerLink?: string | any[];
}
/**
 * Acts as a general ui state store
 */
export declare class UiStateService {
    private readonly templateHolders;
    private _prevViewSwitchState;
    private _currViewSwitchState;
    activeItemInfo$: ReplaySubject<NavItemConfig[]>;
    private registerTemplateHolder;
    getTemplateHolder(id: TemplateHolderType): TemplateHolder;
    /**
     * NOTE: only set active item info in ConsoleComponent
     */
    setActiveItemInfo(activeNavItemInfo: NavItemConfig[]): void;
    /**
     * NOTE: only use for view switch status recording
     */
    setViewSwitchState(state: boolean): void;
    shouldViewSwitchAnimate(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<UiStateService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UiStateService>;
}
