import * as _angular_core from '@angular/core';
import { AfterViewInit, ElementRef, Injector } from '@angular/core';
import _MenuItem, { MenuItemAccessibilityAttributes } from '@ui5/webcomponents/dist/MenuItem.js';
export { MenuItemAccessibilityAttributes } from '@ui5/webcomponents/dist/MenuItem.js';
import { UI5CustomEvent } from '@ui5/webcomponents-base';

declare class MenuItem implements AfterViewInit {
    /**
     * Defines the text of the tree item.
     */
    text: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the `additionalText`, displayed in the end of the menu item.
  
  **Note:** The additional text will not be displayed if there are items added in `items` slot or there are
  components added to `endContent` slot.
  
  The priority of what will be displayed at the end of the menu item is as follows:
  sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
     */
    additionalText: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the icon to be displayed as graphical element within the component.
  The SAP-icons font provides numerous options.
  
  **Example:**
  
  See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).
     */
    icon: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines whether menu item is in disabled state.
  
  **Note:** A disabled menu item is noninteractive.
     */
    disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.
  
  **Note:** If set to `true` a busy indicator component will be displayed into the related one to the current menu item sub-menu popover.
     */
    loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the delay in milliseconds, after which the loading indicator will be displayed inside the corresponding menu popover.
     */
    loadingDelay: _angular_core.InputSignal<number | undefined>;
    /**
     * Defines the accessible ARIA name of the component.
     */
    accessibleName: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines the text of the tooltip for the menu item.
     */
    tooltip: _angular_core.InputSignal<string | undefined>;
    /**
     * Defines whether menu item is in checked state.
  
  **Note:** checked state is only taken into account when menu item is added to menu item group
  with `checkMode` other than `None`.
  
  **Note:** A checked menu item has a checkmark displayed at its end.
     */
    checked: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the additional accessibility attributes that will be applied to the component.
  The following fields are supported:
  
  - **ariaKeyShortcuts**: Indicated the availability of a keyboard shortcuts defined for the menu item.
  
  - **role**: Defines the role of the menu item. If not set, menu item will have default role="menuitem".
     */
    accessibilityAttributes: _angular_core.InputSignal<MenuItemAccessibilityAttributes | undefined>;
    /**
     * Defines the visual indication and behavior of the list items.
  Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
  
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
  while with type `Inactive` and `Detail` - will not.
     */
    type: _angular_core.InputSignal<"Inactive" | "Active" | "Detail" | "Navigation" | undefined>;
    /**
     * The navigated state of the list item.
  If set to `true`, a navigation indicator is displayed at the end of the list item.
     */
    navigated: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Defines the highlight state of the list items.
  Available options are: `"None"` (by default), `"Positive"`, `"Critical"`, `"Information"` and `"Negative"`.
     */
    highlight: _angular_core.InputSignal<"None" | "Positive" | "Critical" | "Negative" | "Information" | undefined>;
    /**
     * Defines the selected state of the component.
     */
    selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Fired before the menu is opened. This event can be cancelled, which will prevent the menu from opening.
  
  **Note:** Since 1.14.0 the event is also fired before a sub-menu opens.
     */
    ui5BeforeOpen: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "before-open">>;
    /**
     * Fired after the menu is opened.
     */
    ui5Open: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "open">>;
    /**
     * Fired before the menu is closed. This event can be cancelled, which will prevent the menu from closing.
     */
    ui5BeforeClose: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "before-close">>;
    /**
     * Fired after the menu is closed.
     */
    ui5Close: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "close">>;
    /**
     * Fired when an item is checked or unchecked.
     */
    ui5Check: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "check">>;
    /**
     * Fired when the user clicks on the detail button when type is `Detail`.
     */
    ui5DetailClick: _angular_core.OutputEmitterRef<UI5CustomEvent<_MenuItem, "detail-click">>;
    /**
     * Available slots for content projection in this component.
     *
     * Slots allow you to insert custom content into predefined areas of the web component.
     * Use the `slot` attribute on child elements to target specific slots.
     *
     * - **(default)**: Defines the items of this component.
  
  **Note:** The slot can hold menu item and menu separator items.
  
  If there are items added to this slot, an arrow will be displayed at the end
  of the item in order to indicate that there are items added. In that case components added
  to `endContent` slot or `additionalText` content will not be displayed.
  
  The priority of what will be displayed at the end of the menu item is as follows:
  sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
     * - **endContent**: Defines the components that should be displayed at the end of the menu item.
  
  **Note:** It is highly recommended to slot only components of type `ui5-button`,`ui5-link`
  or `ui5-icon` in order to preserve the intended design. If there are components added to this slot,
  and there is text set in `additionalText`, it will not be displayed. If there are items added to `items` slot,
  nether `additionalText` nor components added to this slot would be displayed.
  
  The priority of what will be displayed at the end of the menu item is as follows:
  sub-menu arrow (if there are items added in `items` slot) -> components added in `endContent` -> text set to `additionalText`.
  
  Application developers are responsible for ensuring that interactive elements placed in the `endContent` slot
  have the correct accessibility behaviour, including their enabled or disabled states.
  The menu does not manage these aspects when the menu item state changes.
     * - **deleteButton**: Defines the delete button, displayed in "Delete" mode.
  **Note:** While the slot allows custom buttons, to match
  design guidelines, please use the `ui5-button` component.
  **Note:** When the slot is not present, a built-in delete button will be displayed.
     *
     * @example
     * ```html
     * <ui5-menu-item>
     *   <div slot="header">Custom header content</div>
     *   <p>Default slot content</p>
     * </ui5-menu-item>
     * ```
     *
     * @readonly
     * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}
     */
    readonly slots: ({
        name: string;
        description: string;
        since?: undefined;
    } | {
        name: string;
        description: string;
        since: string;
    })[];
    elementRef: ElementRef<_MenuItem>;
    injector: Injector;
    get element(): _MenuItem;
    ngAfterViewInit(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItem, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<MenuItem, "ui5-menu-item, [ui5-menu-item]", ["ui5MenuItem"], { "text": { "alias": "text"; "required": false; "isSignal": true; }; "additionalText": { "alias": "additionalText"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingDelay": { "alias": "loadingDelay"; "required": false; "isSignal": true; }; "accessibleName": { "alias": "accessibleName"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "accessibilityAttributes": { "alias": "accessibilityAttributes"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "navigated": { "alias": "navigated"; "required": false; "isSignal": true; }; "highlight": { "alias": "highlight"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "ui5BeforeOpen": "ui5BeforeOpen"; "ui5Open": "ui5Open"; "ui5BeforeClose": "ui5BeforeClose"; "ui5Close": "ui5Close"; "ui5Check": "ui5Check"; "ui5DetailClick": "ui5DetailClick"; }, never, ["*"], true, never>;
}

export { MenuItem };
