import { ElementRef, EventEmitter, QueryList, OnInit } from '@angular/core';
import { AbstractContextComponent } from './abstract-context.component';
import { ContextMenuOption } from './context-menu-option';
import * as i0 from "@angular/core";
export declare abstract class AbstractContextMenuComponent<T> extends AbstractContextComponent<T> implements OnInit {
    childDropdownMenuElement: QueryList<ElementRef>;
    scrollableList: ElementRef;
    action: EventEmitter<any>;
    readonly levelSeparator = "_|_";
    hasIcons: boolean;
    private contextMenuOptionsList;
    set contextMenuOptions(value: Array<T>);
    get contextMenuOptions(): Array<T>;
    ngOnInit(): void;
    dotsClicked(event: MouseEvent): void;
    open(event: MouseEvent): void;
    doClick(event: any, elementID: string, action: ContextMenuOption, parent?: ContextMenuOption): void;
    doClickWithAction(event: any, elementID: string, actionId: string): void;
    doMouseOver(event: any, elementID: string, actionId: string): void;
    getSelfReference(): AbstractContextMenuComponent<T>;
    getMenuLevel(actionId: string): number;
    getOptionDetailsActionId(actionId: string): string;
    getOptionDetailsHasChildren(actionId: string): boolean;
    showSubmenu(event: any, actionId: string, selectedChild: ElementRef, elementId: string): void;
    protected checkIfHasIcons(): void;
    protected checkTargetAndClose(target: any): void;
    protected hideSubmenus(untilLevel: number): void;
    abstract openWithOptions(event: MouseEvent, newContextMenuOptions: Array<T>): void;
    abstract isEnabled(elementId: string, actionId: string): boolean;
    abstract isIconEnabled(elementId: string, actionId: string): boolean;
    abstract executeAction(event: any, elementId: string, actionId: string, parentAction?: string): void;
    protected abstract existsAtLeastOneActionEnabled(): boolean;
    protected abstract getOption(actionId: string): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractContextMenuComponent<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractContextMenuComponent<any>, never, never, { "contextMenuOptions": { "alias": "contextMenuOptions"; "required": false; }; }, { "action": "action"; }, never, never, false, never>;
}
