/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { TemplateRef } from '@angular/core';
import { SVGIcon } from '@progress/kendo-angular-icons';
/**
 * An interface for the Menu items.
 */
export interface MenuItem {
    /**
     * Specifies the item text ([see example](slug:items_menu#toc-showing-text)).
     */
    text?: string;
    /**
     * Specifies a URL which is rendered as a `href` attribute on the item link
     * ([see example](slug:items_menu#toc-rendering-urls)).
     */
    url?: string;
    /**
     * Specifies the name of the [font icon](slug:icons#icons-list) that will
     * be rendered for the item ([see example](slug:items_menu#toc-displaying-font-icons)).
     */
    icon?: string;
    /**
     * Defines an [`SVGIcon`](slug:api_icons_svgicon) that will be
     * rendered for the item using a [`KendoSVGIcon`](slug:api_icons_svgiconcomponent) component ([see example](slug:items_menu#toc-displaying-svg-icons)).
     */
    svgIcon?: SVGIcon;
    /**
     * Specifies if the item is disabled ([see example](slug:items_menu#toc-disabling-items)).
     */
    disabled?: boolean;
    /**
     * The CSS classes that will be rendered on the item element ([see example](slug:items_menu#toc-adding-styles-and-classes)).
     * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
     */
    cssClass?: any;
    /**
     * The CSS styles that will be rendered on the item element ([see example](slug:items_menu#toc-adding-styles-and-classes)).
     * Supports the type of values that are supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']).
     */
    cssStyle?: any;
    /**
     * Specifies a template for the item.
     */
    template?: TemplateRef<any>;
    /**
     * Specifies a template for the item content.
     */
    contentTemplate?: TemplateRef<any>;
    /**
     * Specifies the children of the item ([see example]({% slug databinding_menu %})).
     */
    items?: any[];
    /**
     * Represents the additional data that is associated with the Menu item.
     */
    data?: any;
    /**
     * Specifies if this is a separator item.
     * If set to true only the `cssClass` and `cssStyle` fields are rendered.
     */
    separator?: boolean;
}