import { Overlay, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay'; import { Subject } from 'rxjs'; import { ContextMenuComponent } from './contextMenu.component'; import { ContextMenuItemDirective } from './contextMenu.item.directive'; import { ContextMenuContentComponent } from './contextMenuContent.component'; export interface IContextMenuClickEvent { anchorElement?: Element | EventTarget; contextMenu?: ContextMenuComponent; event?: MouseEvent | KeyboardEvent; parentContextMenu?: ContextMenuContentComponent; item: any; activeMenuItemIndex?: number; } export interface IContextMenuContext extends IContextMenuClickEvent { menuItems: ContextMenuItemDirective[]; menuClass: string; } export interface CloseLeafMenuEvent { exceptRootMenu?: boolean; event?: MouseEvent | KeyboardEvent; } export interface OverlayRefWithContextMenu extends OverlayRef { contextMenu?: ContextMenuContentComponent; } export interface CancelContextMenuEvent { eventType: 'cancel'; event?: MouseEvent | KeyboardEvent; } export interface ExecuteContextMenuEvent { eventType: 'execute'; event?: MouseEvent | KeyboardEvent; item: any; menuItem: ContextMenuItemDirective; } export declare type CloseContextMenuEvent = ExecuteContextMenuEvent | CancelContextMenuEvent; export declare class ContextMenuService { private overlay; private scrollStrategy; isDestroyingLeafMenu: boolean; show: Subject; triggerClose: Subject; close: Subject; private contextMenuContent; private overlays; private fakeElement; constructor(overlay: Overlay, scrollStrategy: ScrollStrategyOptions); openContextMenu(context: IContextMenuContext): void; attachContextMenu(overlay: OverlayRef, context: IContextMenuContext): void; closeAllContextMenus(closeEvent: CloseContextMenuEvent): void; getLastAttachedOverlay(): OverlayRefWithContextMenu; destroyLeafMenu({ exceptRootMenu, event }?: CloseLeafMenuEvent): void; destroySubMenus(contextMenu: ContextMenuContentComponent): void; isLeafMenu(contextMenuContent: ContextMenuContentComponent): boolean; }