import { BehaviorSubject, Observable } from 'rxjs';
import { OptionsService } from '../common/options.service';
import { StateService } from '../common/state-service.abstract';
import { Header } from './header.model';
import { HumanizeAppNamePipe } from '../common/humanize-app-name.pipe';
import { DrawerService } from '../drawer/drawer.service';
import { ServiceRegistry } from '../common';
import * as i0 from "@angular/core";
/**
 * A service which defines header functions.
 */
export declare class HeaderService extends StateService {
    private options;
    private humanizeAppName;
    private drawerService;
    private serviceRegistry;
    headerOpen: boolean;
    header$: Observable<Header>;
    navigatorOpen$: Observable<boolean>;
    rightDrawerOpen$: Observable<boolean>;
    canToggleNavigator$: Observable<boolean>;
    showNotification$: Observable<boolean>;
    hideHeader: boolean;
    state$: BehaviorSubject<Header>;
    title: {
        elementRef?: HTMLTitleElement;
        titleSuffix: string;
        titlePrefix: string;
    } | undefined;
    readonly DELAY_TO_AVOID_FLICKERING_ON_ASYNC_NODES = 1000;
    constructor(options: OptionsService, humanizeAppName: HumanizeAppNamePipe, drawerService: DrawerService, serviceRegistry: ServiceRegistry);
    get state(): Header;
    get navigatorHiddenOnStartup(): boolean;
    get largeWidth(): boolean;
    get shouldToggle(): boolean;
    /**
     * Toggles the main header menu in mobile view.
     */
    toggle(): void;
    /**
     * Toggles the navigator open status.
     */
    toggleNavigator(): void;
    /**
     * Force to close the navigator.
     */
    closeNavigator(): void;
    /**
     * Toggles the right drawer open status.
     */
    toggleRightDrawer(): void;
    /**
     * Force to close the right drawer.
     */
    closeRightDrawer(): void;
    /**
     * Configures navigation options.
     * @param config Object with the properties:
     * - open: Boolean
     */
    configNavigator(config?: Partial<Header['nav']>): void;
    /**
     * Change the application title.
     * @param newTitle The new title of the application.
     */
    changeTitle(newTitle?: unknown, pageTitleUpdate?: boolean): void;
    /**
     * Change the page title.
     * @param newTitle The new title of the page.
     */
    changePageTitle(newTitle?: string): void;
    /**
     * This methods checks if the navigator toggles on startup
     * or if an item is added to the navigator node.
     * Delay of 300ms is intended for animation purpose.
     */
    verifyIfNavOpen(): void;
    shouldShowBreadcrumbs(): boolean;
    private isGlobalTitleValid;
    static ɵfac: i0.ɵɵFactoryDeclaration<HeaderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HeaderService>;
}
//# sourceMappingURL=header.service.d.ts.map