import * as _angular_core from '@angular/core';
import { OnDestroy, TemplateRef } from '@angular/core';
import { ClientPageMenuItem } from '@masterteam/components/client-page-menu';

declare class ClientPage implements OnDestroy {
    private readonly platformId;
    private readonly document;
    private readonly dir;
    private readonly zone;
    private readonly transloco;
    private mediaQueryList;
    private resizeMoveListener;
    private resizeUpListener;
    /** Whether the current direction is RTL */
    readonly isRtl: _angular_core.Signal<boolean>;
    /** Icon for the left sidebar header */
    readonly menuIcon: _angular_core.InputSignal<string | undefined>;
    /** Title for the left sidebar header */
    readonly menuTitle: _angular_core.InputSignal<string | undefined>;
    /** List of menu items for the left sidebar */
    readonly menuItems: _angular_core.InputSignal<ClientPageMenuItem[]>;
    /** Whether menu items are loading */
    readonly menuItemsLoading: _angular_core.InputSignal<boolean>;
    /** Key of the active menu item (defaults to first item) */
    readonly activeItem: _angular_core.InputSignal<string | undefined>;
    /** Whether the sidebar menu is collapsed (two-way bindable) */
    readonly collapsed: _angular_core.ModelSignal<boolean>;
    /** Enables desktop sidebar resizing from the divider */
    readonly resizable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /** Unique storage seed used to persist the sidebar width */
    readonly storageKey: _angular_core.InputSignal<string | null>;
    /** Storage location used for persisted sidebar width */
    readonly storageMode: _angular_core.InputSignal<"local" | "session">;
    /** Minimum desktop sidebar width in pixels */
    readonly minSidebarWidth: _angular_core.InputSignal<number>;
    /** Maximum desktop sidebar width in pixels */
    readonly maxSidebarWidth: _angular_core.InputSignal<number>;
    /** Optional default desktop sidebar width in pixels */
    readonly defaultSidebarWidth: _angular_core.InputSignal<number | null>;
    /** Template projected into the left sidebar header end */
    readonly headerEnd: _angular_core.Signal<TemplateRef<any> | undefined>;
    /** Emitted when a menu item is clicked */
    readonly menuItemClick: _angular_core.OutputEmitterRef<ClientPageMenuItem>;
    private readonly layoutRoot;
    /** Tracks activeItem input, overridable by user clicks */
    private readonly selectedKey;
    /** Currently selected menu item */
    readonly selectedItem: _angular_core.Signal<ClientPageMenuItem>;
    /** Whether the initial default selection has been emitted */
    private initialEmitted;
    /** Whether the sidebar area is being hovered */
    readonly sidebarHovered: _angular_core.WritableSignal<boolean>;
    /** Whether the resize divider area is being hovered */
    readonly dividerHovered: _angular_core.WritableSignal<boolean>;
    /** Whether the desktop divider is currently resizing */
    readonly isResizing: _angular_core.WritableSignal<boolean>;
    /** Whether the viewport is at or below the responsive breakpoint */
    readonly isResponsive: _angular_core.WritableSignal<boolean>;
    /** Whether the responsive top navigation is expanded */
    readonly responsiveMenuExpanded: _angular_core.WritableSignal<boolean>;
    /** Current desktop sidebar width in pixels */
    private readonly desktopSidebarWidth;
    /** Whether the menu section is currently visible */
    readonly showSidebarMenu: _angular_core.Signal<boolean>;
    /** Sidebar width reacts to collapsed + hover */
    readonly sidebarWidth: _angular_core.Signal<string>;
    /** Whether the current state allows divider dragging */
    readonly canResize: _angular_core.Signal<boolean>;
    /** Icon for the collapse toggle button */
    readonly toggleIcon: _angular_core.Signal<"arrow.chevron-up" | "arrow.chevron-down" | "arrow.chevron-left" | "arrow.chevron-right">;
    /** Accessible label for the toggle button */
    readonly toggleAriaLabel: _angular_core.Signal<string>;
    constructor();
    toggleCollapsed(): void;
    selectItem(item: ClientPageMenuItem): void;
    startResize(event: MouseEvent): void;
    ngOnDestroy(): void;
    getAvatarStyle(color: string): Record<string, string>;
    private readonly handleResponsiveBreakpointChange;
    private setupResponsiveBehavior;
    private cleanupResizeListeners;
    private syncResponsiveState;
    private getWidthFromPointer;
    private persistSidebarWidth;
    private getNormalizedStorageKey;
    private getStorage;
    private getDefaultDesktopSidebarWidth;
    private getNormalizedMinSidebarWidth;
    private getNormalizedMaxSidebarWidth;
    private normalizeSidebarWidth;
    private clampSidebarWidth;
    private readPersistedState;
    private writePersistedState;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClientPage, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClientPage, "mt-client-page", never, { "menuIcon": { "alias": "menuIcon"; "required": false; "isSignal": true; }; "menuTitle": { "alias": "menuTitle"; "required": false; "isSignal": true; }; "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "menuItemsLoading": { "alias": "menuItemsLoading"; "required": false; "isSignal": true; }; "activeItem": { "alias": "activeItem"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": false; "isSignal": true; }; "storageMode": { "alias": "storageMode"; "required": false; "isSignal": true; }; "minSidebarWidth": { "alias": "minSidebarWidth"; "required": false; "isSignal": true; }; "maxSidebarWidth": { "alias": "maxSidebarWidth"; "required": false; "isSignal": true; }; "defaultSidebarWidth": { "alias": "defaultSidebarWidth"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "menuItemClick": "menuItemClick"; }, ["headerEnd"], ["*"], true, never>;
}

export { ClientPage };
