import type { Theme } from "./theme.js";
import type { ElementObject } from "./render.js";
export interface ElementInfo {
    id: string;
    type: string;
    tooltip?: string;
    bbox: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    anchors: Record<string, {
        x: number;
        y: number;
    }>;
    element: SVGGElement;
    spec: ElementObject;
}
export interface DrawingInfo {
    width: number;
    height: number;
    viewBox: string;
    theme: Theme;
    elementCount: number;
    namedElementCount: number;
}
export interface CanvasPoint {
    x: number;
    y: number;
    clientX: number;
    clientY: number;
}
export interface EventMap {
    'element:click': (info: ElementInfo, event: MouseEvent) => void;
    'element:hover': (info: ElementInfo, event: MouseEvent) => void;
    'element:leave': (info: ElementInfo, event: MouseEvent) => void;
    'element:select': (info: ElementInfo | null, event: MouseEvent) => void;
    'canvas:click': (point: CanvasPoint, event: MouseEvent) => void;
    'canvas:contextmenu': (point: CanvasPoint, event: MouseEvent) => void;
}
