import { Component } from 'vue'; import { MultiLangText } from '../model/CommonTypes'; type AbstractApp = { provide(key: string, value: unknown): void; }; export declare const contextMenuPluginKey = "BlueseaContextMenuPlugin"; export type MenuItem = { type?: 'menu' | 'link' | 'route' | 'separator' | 'custom'; menuId?: string; caption?: MultiLangText; component?: Component; disabled?: boolean; handler?: () => void; href?: string; target?: string; children?: MenuItem[]; }; export type MenuPosition = { x: number; y: number; }; export type ContextMenuOptions = { zIndex?: number; onHideContextMenu?: () => void; }; export type MousePosition = { clientX: number; clientY: number; }; export declare class BSContextMenuPlugin { contextMenuItems: import('vue').Ref; position: import('vue').Ref; options: import('vue').Ref; showContextMenu(event: MousePosition, menus: MenuItem[], options?: ContextMenuOptions): void; hideContextMenu(): void; install(app: AbstractApp): void; private markComponentRaw; } export declare const useContextMenu: () => BSContextMenuPlugin; export declare const useContextMenuOptional: () => BSContextMenuPlugin | undefined; export declare const createContextMenuPlugin: () => BSContextMenuPlugin; export {};