import * as _angular_core from '@angular/core';
import { OnDestroy, ElementRef } from '@angular/core';

interface ClientPageMenuItem {
    icon: string;
    title: string;
    subtitle?: string;
    color: string;
    count: number;
    key: string;
}
declare class ClientPageMenu implements OnDestroy {
    private syncFrameId;
    /** List of menu items to display */
    readonly menuItems: _angular_core.InputSignal<ClientPageMenuItem[]>;
    /** Whether menu items are loading */
    readonly loading: _angular_core.InputSignal<boolean>;
    /** Currently selected menu item */
    readonly selectedItem: _angular_core.InputSignal<ClientPageMenuItem | null>;
    /** Emitted when a menu item is clicked */
    readonly menuItemClick: _angular_core.OutputEmitterRef<ClientPageMenuItem>;
    readonly menuContainer: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
    readonly menuItemElements: _angular_core.Signal<readonly ElementRef<HTMLElement>[]>;
    constructor();
    selectItem(item: ClientPageMenuItem): void;
    ngOnDestroy(): void;
    getAvatarStyle(color: string): Record<string, string>;
    private queueSelectedItemSync;
    private syncSelectedItemIntoView;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClientPageMenu, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ClientPageMenu, "mt-client-page-menu", never, { "menuItems": { "alias": "menuItems"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "selectedItem": { "alias": "selectedItem"; "required": false; "isSignal": true; }; }, { "menuItemClick": "menuItemClick"; }, never, never, true, never>;
}

export { ClientPageMenu };
export type { ClientPageMenuItem };
