import { AfterViewInit, EventEmitter, OnDestroy, QueryList } from '@angular/core';
import { WindowMenuState } from '../window/window-menu';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class MenuBase implements AfterViewInit {
    label?: string;
    sublabel?: string;
    icon?: string;
    enabled: boolean;
    accelerator?: string;
    role?: string;
    visible: boolean;
    onlyMacOs: boolean | '';
    noMacOs: boolean | '';
    id?: string;
    before?: string;
    after?: string;
    beforeGroupContaining?: string;
    afterGroupContaining?: string;
    click: EventEmitter<any>;
    change: EventEmitter<any>;
    type: string;
    protected registered: Set<MenuBase>;
    protected subscriptions: Map<MenuBase, Subscription>;
    child?: QueryList<MenuBase>;
    constructor();
    buildTemplate(): {
        [name: string]: any;
    };
    validOs(): boolean;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuBase, never, never, { "label": { "alias": "label"; "required": false; }; "sublabel": { "alias": "sublabel"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "accelerator": { "alias": "accelerator"; "required": false; }; "role": { "alias": "role"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "onlyMacOs": { "alias": "onlyMacOs"; "required": false; }; "noMacOs": { "alias": "noMacOs"; "required": false; }; "id": { "alias": "id"; "required": false; }; "before": { "alias": "before"; "required": false; }; "after": { "alias": "after"; "required": false; }; "beforeGroupContaining": { "alias": "beforeGroupContaining"; "required": false; }; "afterGroupContaining": { "alias": "afterGroupContaining"; "required": false; }; }, { "click": "click"; "change": "change"; }, ["child"], never, true, never>;
}
export declare class MenuItemDirective extends MenuBase {
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuItemDirective, "dui-menu-item", never, {}, {}, never, never, false, never>;
}
export declare class MenuCheckboxDirective extends MenuBase {
    checked: boolean;
    type: string;
    buildTemplate(): {
        checked: boolean;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuCheckboxDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuCheckboxDirective, "dui-menu-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class MenuRadioDirective extends MenuBase {
    checked: boolean;
    type: string;
    buildTemplate(): {
        checked: boolean;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuRadioDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuRadioDirective, "dui-menu-radio", never, { "checked": { "alias": "checked"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class MenuSeparatorDirective extends MenuBase {
    type: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuSeparatorDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuSeparatorDirective, "dui-menu-separator", never, {}, {}, never, never, false, never>;
}
export declare class MenuDirective extends MenuBase implements OnDestroy, AfterViewInit {
    protected windowMenuState: WindowMenuState;
    position: number;
    constructor(windowMenuState: WindowMenuState);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<MenuDirective, "dui-menu", never, { "position": { "alias": "position"; "required": false; }; }, {}, never, never, false, never>;
}
