import * as i0 from '@angular/core';
import { EventEmitter } from '@angular/core';
import { MatMenu } from '@angular/material/menu';

interface IMenuTrigger {
    id?: string;
    text?: string;
    icon?: string;
    svgIcon?: string;
    iconClasses?: string[];
}
interface IMenuItem {
    id?: string;
    text: string;
    icon?: string;
    svgIcon?: string;
    iconClasses?: string[];
    children?: IMenuItem[];
    link?: string;
    newTab?: boolean;
    action?: string;
}
interface ITdDynamicMenuLinkClickEvent {
    text: string;
    action?: string;
}

declare class TdDynamicMenuComponent {
    trigger: IMenuTrigger;
    items: IMenuItem[];
    itemClicked: EventEmitter<ITdDynamicMenuLinkClickEvent>;
    emitClicked(event: ITdDynamicMenuLinkClickEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuComponent, "td-dynamic-menu", never, { "trigger": { "alias": "trigger"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
}

declare class TdDynamicMenuItemComponent {
    items: IMenuItem[];
    itemClicked: EventEmitter<ITdDynamicMenuLinkClickEvent>;
    childMenu: MatMenu;
    emitClicked(event: ITdDynamicMenuLinkClickEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuItemComponent, "td-dynamic-menu-item", never, { "items": { "alias": "items"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
}

declare class TdDynamicMenuLinkComponent {
    item: IMenuItem;
    itemClicked: EventEmitter<ITdDynamicMenuLinkClickEvent>;
    emitClicked(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TdDynamicMenuLinkComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TdDynamicMenuLinkComponent, "td-dynamic-menu-link", never, { "item": { "alias": "item"; "required": false; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
}

/**
 * @deprecated This module is deprecated and will be removed in future versions.
 * Please migrate to using standalone components as soon as possible.
 */
declare class CovalentDynamicMenuModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<CovalentDynamicMenuModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentDynamicMenuModule, never, [typeof TdDynamicMenuComponent, typeof TdDynamicMenuItemComponent, typeof TdDynamicMenuLinkComponent], [typeof TdDynamicMenuComponent, typeof TdDynamicMenuItemComponent, typeof TdDynamicMenuLinkComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<CovalentDynamicMenuModule>;
}

export { CovalentDynamicMenuModule, TdDynamicMenuComponent, TdDynamicMenuItemComponent, TdDynamicMenuLinkComponent };
export type { IMenuItem, IMenuTrigger, ITdDynamicMenuLinkClickEvent };
