import * as _angular_core from '@angular/core';
import { TemplateRef } from '@angular/core';
import { Menu as Menu$1 } from 'primeng/menu';
import { MenuItem } from 'primeng/api';
import { MTIcon } from '@masterteam/icons';
import { ButtonSeverity } from 'primeng/button';

interface MTMenuItem extends Omit<MenuItem, 'icon'> {
    icon?: MTIcon;
    color?: string;
    severity?: ButtonSeverity | 'danger';
    styleClass?: string;
    id?: string | number;
}
declare class Menu {
    menuRef: _angular_core.Signal<Menu$1>;
    readonly startTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
    readonly endTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
    readonly headerTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
    readonly submenuHeaderTemplate: _angular_core.Signal<TemplateRef<any> | undefined>;
    readonly model: _angular_core.InputSignal<MTMenuItem[]>;
    readonly popup: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly appendTo: _angular_core.InputSignal<any>;
    readonly style: _angular_core.InputSignal<Record<string, any> | null | undefined>;
    readonly styleClass: _angular_core.InputSignal<string | undefined>;
    readonly autoZIndex: _angular_core.InputSignalWithTransform<boolean, unknown>;
    readonly baseZIndex: _angular_core.InputSignal<number>;
    readonly showTransitionOptions: _angular_core.InputSignal<string>;
    readonly hideTransitionOptions: _angular_core.InputSignal<string>;
    readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
    readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
    readonly id: _angular_core.InputSignal<string | undefined>;
    readonly tabindex: _angular_core.InputSignal<number>;
    readonly activeItemId: _angular_core.ModelSignal<string | number | undefined>;
    readonly onShow: _angular_core.OutputEmitterRef<any>;
    readonly onHide: _angular_core.OutputEmitterRef<any>;
    readonly onBlur: _angular_core.OutputEmitterRef<Event>;
    readonly onFocus: _angular_core.OutputEmitterRef<Event>;
    readonly onItemSelect: _angular_core.OutputEmitterRef<MTMenuItem>;
    transformedModel: _angular_core.Signal<any[]>;
    toggle(event: Event): void;
    show(event: Event): void;
    hide(): void;
    protected getItemIcon(item: any): MTIcon | undefined;
    protected getItemColor(item: any): string | undefined;
    protected getAvatarStyle(color: string): Record<string, string>;
    private transformMenuItem;
    private getSeverityClass;
    private handleItemSelect;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menu, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Menu, "mt-menu", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "popup": { "alias": "popup"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; "isSignal": true; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; "isSignal": true; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; "isSignal": true; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "activeItemId": { "alias": "activeItemId"; "required": false; "isSignal": true; }; }, { "activeItemId": "activeItemIdChange"; "onShow": "onShow"; "onHide": "onHide"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onItemSelect": "onItemSelect"; }, ["startTemplate", "endTemplate", "headerTemplate", "submenuHeaderTemplate"], never, true, never>;
}

export { Menu };
export type { MTMenuItem };
