/**
 * The AlNavigationFrameComponent is meant to provide an abstract, top level frame for a specific navigation implementation to be inserted into.
 *
 * In addition, the <al-navigation-frame> directive allows applications to assign an initial schema and experience for the navigation layer.
 * This can also be assigned programmatically via AlNavigationService.
 */
import { ChangeDetectorRef, OnInit, OnDestroy, TemplateRef } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AlRoute, AlSubscriptionGroup } from '@al/core';
import { AlTemplateIndexService } from '@al/ng-generic-components';
import { AlExperiencePreferencesService } from '../services/al-experience-preferences.service';
import { AlNavigationService } from '../services/al-navigation.service';
import { AlAddendumToNavTitleEvent, AlNavigationContextChanged, AlNavigationFrameChanged, AlNavigationApplicationError } from '../types/navigation.types';
import * as i0 from "@angular/core";
export declare class AlNavigationFrameComponent implements OnInit, OnDestroy {
    alNavigation: AlNavigationService;
    templateIndex: AlTemplateIndexService;
    activatedRoute: ActivatedRoute;
    changeDetector: ChangeDetectorRef;
    protected alExperiencePreferences: AlExperiencePreferencesService;
    /**
     * Instance properties
     */
    experience: string;
    schema: string;
    allowUnauthenticatedMenus: boolean;
    accessAllowed?: boolean;
    displayNav: boolean;
    headingText: string;
    showContentMenu: boolean;
    primaryMenu: AlRoute;
    userMenu: AlRoute;
    contentMenu: AlRoute;
    headerActionsMenus: AlRoute[];
    sidenavMenu: AlRoute;
    sidenavContentRef: TemplateRef<any>;
    sidenavContentBelowRef: TemplateRef<any>;
    showTertiaryMenu: boolean;
    breadcrumbs: AlRoute[];
    userLoggedIn: boolean;
    appLayoutClasses: string[];
    applicationError: AlNavigationApplicationError;
    addendumToNavTitle: string;
    disableNavigationHeader: boolean;
    disablePrimaryMenu: boolean;
    disableContentMenu: boolean;
    disableTertiaryMenu: boolean;
    pageClass: string;
    routePaddedContent: boolean;
    protected subscriptions: AlSubscriptionGroup;
    constructor(alNavigation: AlNavigationService, templateIndex: AlTemplateIndexService, activatedRoute: ActivatedRoute, changeDetector: ChangeDetectorRef, alExperiencePreferences: AlExperiencePreferencesService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    onNavigationTemplatesChanged: (templates: {
        [templateId: string]: TemplateRef<any>;
    }) => void;
    onQueryParamsChanged: (params: {
        [key: string]: string;
    }) => Promise<void>;
    onNavigationChanged: (event: AlNavigationFrameChanged) => void;
    onNavigationContextChanged: (event: AlNavigationContextChanged) => void;
    setAddendumToNavTitle: (event: AlAddendumToNavTitleEvent) => void;
    onLayoutOptionsChanged: (options: {
        [option: string]: string | boolean;
    }) => void;
    onSessionStarted(): void;
    onSessionEnded(): void;
    onApplicationError(error: AlNavigationApplicationError): void;
    clearApplicationError(redirectToErrorRoute?: boolean): void;
    evaluateMenuState(): void;
    toggleNav(): void;
    toggleChildren(menuItem: AlRoute): void;
    static ɵfac: i0.ɵɵFactoryDef<AlNavigationFrameComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<AlNavigationFrameComponent, "al-navigation-frame", never, { "experience": "experience"; "schema": "schema"; "allowUnauthenticatedMenus": "allowUnauthenticatedMenus"; }, {}, never, ["*"]>;
}
