/**
 * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
 * Copyright 2025 by Keenthemes Inc
 */
import { VirtualElement } from '@popperjs/core';
import KTComponent from '../component';
import { KTContextMenuConfigInterface, KTContextMenuInterface } from './types';
declare global {
    interface Window {
        KT_CONTEXT_MENU_INITIALIZED: boolean;
        KTContextMenu: typeof KTContextMenu;
    }
}
type Point = {
    x: number;
    y: number;
};
export declare class KTContextMenu extends KTComponent implements KTContextMenuInterface {
    protected _name: string;
    protected _defaultConfig: KTContextMenuConfigInterface;
    protected _config: KTContextMenuConfigInterface;
    protected _menuElement: HTMLElement;
    protected _targetElement: HTMLElement;
    protected _isTransitioning: boolean;
    protected _isOpen: boolean;
    protected _shownAt: number;
    protected _lastPoint: Point;
    constructor(element: HTMLElement, config?: KTContextMenuConfigInterface);
    protected _resolveTargetElement(root: HTMLElement): HTMLElement;
    protected _resolveMenuElement(root: HTMLElement): HTMLElement;
    protected _handleContainer(): void;
    protected _setupNestedSubmenus(): void;
    protected _updatePoint(x: number, y: number): void;
    protected _toggleAtEvent(event: MouseEvent): void;
    protected _showAtEvent(event: MouseEvent): void;
    protected _showAt(x: number, y: number): void;
    protected _hide(): void;
    protected _getVirtualReference(): VirtualElement;
    protected _initPopper(): void;
    protected _destroyPopper(): void;
    protected _getPopperConfig(): object;
    protected _isContextMenuOpen(): boolean;
    showAt(x: number, y: number): void;
    showAtEvent(event: MouseEvent): void;
    hide(): void;
    toggleAtEvent(event: MouseEvent): void;
    isOpen(): boolean;
    getMenuElement(): HTMLElement;
    getTargetElement(): HTMLElement;
    static getElement(reference: HTMLElement): HTMLElement;
    static getInstance(element: HTMLElement): KTContextMenu;
    static getOrCreateInstance(element: HTMLElement, config?: KTContextMenuConfigInterface): KTContextMenu;
    static update(): void;
    static hide(skipElement?: HTMLElement): void;
    static handleOpen(): void;
    static handleToggle(): void;
    static handleClickAway(): void;
    static handleKeyboard(): void;
    static handleDismiss(): void;
    static initHandlers(): void;
    static createInstances(): void;
    static init(): void;
    static reinit(): void;
}
export {};
//# sourceMappingURL=context-menu.d.ts.map