import { CdkDragMove } from '@angular/cdk/drag-drop';
import { TemplatePortal } from '@angular/cdk/portal';
import { EffectRef, TemplateRef, ViewContainerRef } from '@angular/core';
import { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart } from '@angular/router';
import { Subject } from 'rxjs';
import { BaseComponent } from '../base-component';
import * as i0 from "@angular/core";
interface LayoutConfig {
    /**
     * The maximum width of main content section.
     */
    clampSize?: (typeof NxLayoutComponent.clampedSizes)[number];
    /**
     * Whether the content should be centered when clamped.
     */
    center?: boolean;
    /**
     * The view identifier for the layout. Used for preserving panel sizes.
     *
     * View identifier string could be used to maintain the size for a specific panel type,
     * specific feature, or specific view.
     *
     * If not provided the view identifier will be determined by the first component in the route.
     */
    viewIdentifier?: string;
}
export declare class NxLayoutComponent extends BaseComponent {
    static rootLayout: NxLayoutComponent | undefined;
    static DEFAULT_SIZE: number;
    static layoutTypes: readonly ["cards", "clamped", "full", "wrapper"];
    static columnSpans: readonly ["-1", "4", "3"];
    static configureLayout: ({ clampSize, center, viewIdentifier, }: LayoutConfig) => EffectRef | undefined;
    static clampedSizes: readonly [720, 1024, 1200, 1440, 1800, 1000000];
    protected minColumnPx: import("@angular/core").InputSignal<number>;
    overlayAsideOverride: import("@angular/core").InputSignal<boolean>;
    protected asideOpen: import("@angular/core").ModelSignal<boolean>;
    protected hoverMenuOpen: import("@angular/core").ModelSignal<boolean>;
    secondaryMenuSize: import("@angular/core").ModelSignal<number>;
    drawerSize: import("@angular/core").ModelSignal<number>;
    notificationsSize: import("@angular/core").ModelSignal<number>;
    protected hoverMenuSize: import("@angular/core").ModelSignal<number>;
    drawerOpen: import("@angular/core").ModelSignal<boolean>;
    showProjectedSecondaryMenu: import("@angular/core").ModelSignal<boolean>;
    layoutType: import("@angular/core").ModelSignal<"cards" | "clamped" | "full" | "wrapper">;
    clampedSize: import("@angular/core").ModelSignal<720 | 1024 | 1200 | 1440 | 1800 | 1000000>;
    centered: import("@angular/core").ModelSignal<boolean>;
    modal: import("@angular/core").ModelSignal<boolean>;
    forceTop: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    secondaryMenuModalOpen: import("@angular/core").ModelSignal<boolean>;
    collapsible: import("@angular/core").ModelSignal<boolean>;
    asideResizable: import("@angular/core").ModelSignal<boolean>;
    columnSpanMain: import("@angular/core").ModelSignal<"3" | "4" | "-1">;
    resizing: import("@angular/core").ModelSignal<boolean>;
    viewIdentifier: import("@angular/core").ModelSignal<string>;
    closeOnContentClick: import("@angular/core").ModelSignal<boolean>;
    readonly isStoryBook: boolean | undefined;
    protected width: import("@angular/core").WritableSignal<number>;
    protected overlayAside: import("@angular/core").Signal<boolean>;
    protected showAsideOnGrid: import("@angular/core").Signal<boolean>;
    protected showTopMenu: import("@angular/core").Signal<boolean>;
    private router;
    skipNextNotifier: Subject<void>;
    skipNext: import("@angular/core").Signal<boolean | undefined>;
    navigateNotifier$: import("rxjs").Observable<NavigationStart>;
    protected templateClasses: import("@angular/core").Signal<{
        [x: string]: boolean;
        centered: boolean;
        'top-menu': boolean;
    }>;
    private canFitBothPanels;
    asideExpanded: import("@angular/core").Signal<boolean>;
    protected class: import("@angular/core").Signal<{
        centered: boolean;
        'top-menu': boolean;
        'overlay-aside': boolean;
        'aside-open': boolean;
        'drawer-open': boolean | null;
        'show-modal-overlay': boolean;
        'show-secondary-modal-overlay': boolean;
        'resizing-panel': boolean;
        'can-fit-both-panels': boolean;
    }>;
    private availableWidth;
    private spaceForContent;
    protected maxPanelWidth: import("@angular/core").Signal<number>;
    protected clampedSecondaryMenuWidth: import("@angular/core").Signal<(singleOpen?: boolean) => number>;
    protected secondaryMenuOverlayWidth: import("@angular/core").Signal<string>;
    private clampedRightPanelSize;
    protected drawerWidth: import("@angular/core").Signal<string>;
    drawerWidthChange: import("rxjs").Observable<string>;
    protected notificationOffset: import("@angular/core").Signal<string>;
    protected notificationsWidth: import("@angular/core").Signal<string>;
    protected secondaryMenuWidth: import("@angular/core").Signal<string>;
    protected customModalWidth: import("@angular/core").WritableSignal<string | undefined>;
    protected hoverMenuWidth: import("@angular/core").Signal<string>;
    protected clampedWidth: import("@angular/core").Signal<string>;
    protected mockContent: import("@angular/core").Signal<string[]>;
    protected mockMessages: import("@angular/core").WritableSignal<string[]>;
    ngAfterViewInit(): void;
    private initializeEventListeners;
    toggleOverlay: () => void;
    variableColors: import("@angular/core").Signal<{
        '--overlay-color': "core_shade_dark1_opacity_20";
        '--body-bg': "core_shade_dark1_opacity_20";
        '--menu-bg': "core_shade_dark2_opacity_20";
        '--hover-menu-bg': "core_shade_dark3_opacity_3";
        '--notification-bg': "brand_shade_dark10_opacity_10";
        '--menu-border': "core_shade_dark5_opacity_20";
    }>;
    toggleMenu: () => void;
    previousSecondarySize: number;
    toggleSecondaryModal: (modalSize?: number) => void;
    toggleProjectedSecondaryMenu: () => void;
    showModalOverlay: import("@angular/core").Signal<boolean>;
    toggleDrawer: (modal?: boolean) => void;
    toggleHoverMenu: (targetState?: boolean) => void;
    removeMessage: (index: number) => void;
    protected autoHideEffect: EffectRef;
    resizeSecondaryMenu: (event: CdkDragMove<unknown>) => void;
    resizeDrawer: (event: CdkDragMove<unknown>) => void;
    protected secondaryMenuPortal: import("@angular/core").WritableSignal<TemplatePortal<unknown> | null>;
    protected rightDrawerPortal: import("@angular/core").WritableSignal<TemplatePortal<unknown> | null>;
    protected viewContainerRef: ViewContainerRef;
    protected sizeHistory: {
        readonly left: Map<unknown, number>;
        readonly right: Map<unknown, number>;
    };
    activatedRoute: ActivatedRoute;
    firstComponent: (snapshot?: ActivatedRouteSnapshot | null) => ActivatedRouteSnapshot["component"];
    protected getViewIdentifier: () => string;
    useSecondaryMenu: (template: TemplateRef<unknown>, collapsible?: boolean, rightPanel?: boolean, resizable?: boolean, size?: number) => (() => void);
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<NxLayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NxLayoutComponent, "nx-layout", never, { "minColumnPx": { "alias": "minColumnPx"; "required": false; "isSignal": true; }; "overlayAsideOverride": { "alias": "overlayAsideOverride"; "required": false; "isSignal": true; }; "asideOpen": { "alias": "asideOpen"; "required": false; "isSignal": true; }; "hoverMenuOpen": { "alias": "hoverMenuOpen"; "required": false; "isSignal": true; }; "secondaryMenuSize": { "alias": "secondaryMenuSize"; "required": false; "isSignal": true; }; "drawerSize": { "alias": "drawerSize"; "required": false; "isSignal": true; }; "notificationsSize": { "alias": "notificationsSize"; "required": false; "isSignal": true; }; "hoverMenuSize": { "alias": "hoverMenuSize"; "required": false; "isSignal": true; }; "drawerOpen": { "alias": "drawerOpen"; "required": false; "isSignal": true; }; "showProjectedSecondaryMenu": { "alias": "showProjectedSecondaryMenu"; "required": false; "isSignal": true; }; "layoutType": { "alias": "layoutType"; "required": false; "isSignal": true; }; "clampedSize": { "alias": "clampedSize"; "required": false; "isSignal": true; }; "centered": { "alias": "centered"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "forceTop": { "alias": "forceTop"; "required": false; "isSignal": true; }; "secondaryMenuModalOpen": { "alias": "secondaryMenuModalOpen"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "asideResizable": { "alias": "asideResizable"; "required": false; "isSignal": true; }; "columnSpanMain": { "alias": "columnSpanMain"; "required": false; "isSignal": true; }; "resizing": { "alias": "resizing"; "required": false; "isSignal": true; }; "viewIdentifier": { "alias": "viewIdentifier"; "required": false; "isSignal": true; }; "closeOnContentClick": { "alias": "closeOnContentClick"; "required": false; "isSignal": true; }; }, { "asideOpen": "asideOpenChange"; "hoverMenuOpen": "hoverMenuOpenChange"; "secondaryMenuSize": "secondaryMenuSizeChange"; "drawerSize": "drawerSizeChange"; "notificationsSize": "notificationsSizeChange"; "hoverMenuSize": "hoverMenuSizeChange"; "drawerOpen": "drawerOpenChange"; "showProjectedSecondaryMenu": "showProjectedSecondaryMenuChange"; "layoutType": "layoutTypeChange"; "clampedSize": "clampedSizeChange"; "centered": "centeredChange"; "modal": "modalChange"; "secondaryMenuModalOpen": "secondaryMenuModalOpenChange"; "collapsible": "collapsibleChange"; "asideResizable": "asideResizableChange"; "columnSpanMain": "columnSpanMainChange"; "resizing": "resizingChange"; "viewIdentifier": "viewIdentifierChange"; "closeOnContentClick": "closeOnContentClickChange"; "drawerWidthChange": "drawerWidthChange"; }, never, ["ng-container[menu]", "ng-container[header]", "ng-container[main]", "ng-container[drawer]", "ng-container[notifications]", "ng-container[secondaryMenuModal]", "ng-container[hoverMenu]"], true, never>;
}
export {};
