import { Overlay, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay'; import { Injector, EventEmitter } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; export interface ActiveContextMenuSub { id: number; isTriggerHovered: BehaviorSubject; isMenuHovered: BehaviorSubject; submenu: boolean; } export interface ActiveContextMenu extends ActiveContextMenuSub { overlayRef: OverlayRef; component: any; menuClose: EventEmitter; menuAction: EventEmitter; } export declare class ContextMenuService { private overlay; private scrollStrategy; private injector; menus: ActiveContextMenu[]; id: number; constructor(overlay: Overlay, scrollStrategy: ScrollStrategyOptions, injector: Injector); /** * * @param $event triggering event * @param menuComponent the component to be shown * @param submenu is a menu within a menu * @param level if submenu, what level */ show($event: MouseEvent, menuComponent: any, context: any, menuClose: EventEmitter, menuAction: EventEmitter, submenu?: boolean, level?: number): ActiveContextMenu; getCurrentLevel(): number; closeAll(context?: any, idx?: number): void; destroyMenu(menu: ActiveContextMenu, context?: any): void; close(menu: ActiveContextMenu, menuIndex: number, context?: any): void; checkOutsideClick($event: MouseEvent): void; closeSubMenu(id: number): void; }