import { TemplateRef, ViewContainerRef } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { ComponentPortal } from '@angular/cdk/portal';
import { MenuItem, MenuOptions } from '../../types/menu';
import * as i0 from "@angular/core";
export declare const calcMenuItemBounds: (menuItems: MenuItem[], dataObj: any) => Promise<DOMRect>;
export declare class MenuComponent {
    viewContainer: ViewContainerRef;
    sanitizer: DomSanitizer;
    private _data;
    dialog: MatDialog;
    dialogRef: MatDialogRef<any>;
    data: any;
    items: MenuItem[];
    config: MenuOptions;
    id: string;
    overlayOverlap: number;
    hoverDelay: number;
    showDebugOverlay: boolean;
    targetBounds: DOMRect;
    ownerCords: DOMRect;
    selfCords: any;
    parentItem: any;
    parentContext: any;
    isLockedOpen: boolean;
    hasBootstrapped: boolean;
    pointerIsOnVoid: boolean;
    pointerHasBeenOverMask: boolean;
    parentIsNgxMenu: boolean;
    coverRectCords: {
        top: number;
        left: number;
        height: number;
        width: number;
    };
    readonly matIconRx: RegExp;
    showIconColumn: boolean;
    showShortcutColumn: boolean;
    template: TemplateRef<any>;
    templateType: "template" | "component";
    componentPortal: ComponentPortal<any>;
    private childDialogs;
    constructor(viewContainer: ViewContainerRef, sanitizer: DomSanitizer, _data: any, dialog: MatDialog, // optional only for the purpose of estimating dimensions
    dialogRef: MatDialogRef<any>);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     *
     */
    onMenuItemClick(item: MenuItem, row: HTMLTableRowElement, keepOpen?: boolean): Promise<any>;
    /**
     *
     * @param label
     * @returns
     */
    formatLabel(label: string): string;
    /**
     * Close the context menu under these circumstances
     */
    close(result?: any): void;
    closeOnVoid(force?: boolean): void;
    startHoverTimer(item: any, row: any): void;
    stopHoverTimer(item: any): void;
    private closeTimer;
    startCloseTimer(): void;
    stopCloseTimer(): void;
    /**
     * Check if the dialog is clipping offscreen
     * if so, move it back into view.
     */
    private onResize;
    onWheel(evt: WheelEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, [null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "ngx-menu", never, { "data": { "alias": "data"; "required": false; }; "items": { "alias": "items"; "required": false; }; "config": { "alias": "config"; "required": false; }; "id": { "alias": "id"; "required": false; }; "overlayOverlap": { "alias": "overlayOverlap"; "required": false; }; "hoverDelay": { "alias": "hoverDelay"; "required": false; }; "showDebugOverlay": { "alias": "showDebugOverlay"; "required": false; }; "targetBounds": { "alias": "targetBounds"; "required": false; }; "ownerCords": { "alias": "ownerCords"; "required": false; }; "selfCords": { "alias": "selfCords"; "required": false; }; "parentItem": { "alias": "parentItem"; "required": false; }; "parentContext": { "alias": "parentContext"; "required": false; }; "isLockedOpen": { "alias": "isLockedOpen"; "required": false; }; }, {}, never, never, true, never>;
}
