import { EventEmitter, TemplateRef } from '@angular/core';
import type { ContextMenuComponent } from '../../components/context-menu/context-menu.component';
import * as i0 from "@angular/core";
export declare class ContextMenuItemDirective<T> {
    #private;
    template: TemplateRef<{
        $implicit?: T;
    }>;
    /**
     * Optional subMenu component ref
     */
    subMenu?: ContextMenuComponent<T>;
    /**
     * True to make this menu item a divider
     */
    divider: boolean;
    /**
     * Is this menu item disabled
     */
    set disabled(disabled: boolean | ((value?: T) => boolean));
    get disabled(): boolean;
    /**
     * Is this menu item passive (for title)
     */
    passive: boolean;
    /**
     * Is this menu item visible
     */
    visible: boolean | ((value?: T) => boolean);
    /**
     * Emits event and item
     */
    execute: EventEmitter<{
        event: MouseEvent | KeyboardEvent;
        value?: T;
    }>;
    /**
     * @internal
     */
    value?: T;
    constructor(template: TemplateRef<{
        $implicit?: T;
    }>);
    /**
     * @internal
     */
    triggerExecute(event: MouseEvent | KeyboardEvent, value?: T): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenuItemDirective<any>, [{ optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ContextMenuItemDirective<any>, "[contextMenuItem]", never, { "subMenu": { "alias": "subMenu"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "passive": { "alias": "passive"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "execute": "execute"; }, never, never, false, never>;
}
