import { LitElement } from 'lit';
import { AppState } from '@infinite-canvas-tutorial/ecs';
import { ExtendedAPI } from '../API';
export declare function executeCopy(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent): void;
export declare function executeCut(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent): void;
export declare function executePaste(api: ExtendedAPI, appState: AppState, event?: ClipboardEvent, position?: {
    x: number;
    y: number;
}): Promise<void>;
/**
 * @see https://opensource.adobe.com/spectrum-web-components/components/imperative-api/#using-a-virtual-trigger
 */
export declare class ContextMenu extends LitElement {
    static styles: import("lit").CSSResult;
    appState: AppState;
    api: ExtendedAPI;
    private isClipboardEmpty;
    private binded;
    private lastContextMenuPosition;
    private lastPointerMovePosition;
    private handleExecuteAction;
    private handleExport;
    private contextMenuTemplate;
    private handleContextMenu;
    private handleCopy;
    private handleCut;
    private handlePaste;
    private handleKeyDown;
    private handlePointerMove;
    /**
     * @see https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/File_drag_and_drop#prevent_the_browsers_default_drag_behavior
     */
    private handleDragOver;
    /**
     * @see https://github.com/excalidraw/excalidraw/blob/master/packages/excalidraw/components/App.tsx#L10242
     */
    private handleDrop;
    private executeBringToFront;
    private executeBringForward;
    private executeSendBackward;
    private executeSendToBack;
    private executeToggleVisibility;
    private executeToggleLock;
    private executeCrop;
    disconnectedCallback(): void;
    render(): import("lit").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'ic-spectrum-context-menu': ContextMenu;
    }
}
