//#region src/canvas/api/types.d.ts
/**
 * Core types for the canvas system.
 */
/**
 * Selection state enumeration.
 */
type SelectionState = "none" | "single" | "multiple" | "box-selecting";
/**
 * Element bounds interface - elements can implement this to override default bounding rect.
 * This allows elements to provide custom hit testing areas or account for visual bounds
 * that differ from DOM bounds.
 */
interface CanvasElementBounds {
  getCanvasBounds(): DOMRect;
}
/**
 * Canvas element metadata for API/manipulation.
 * Positions and dimensions are in canvas coordinate space.
 */
interface CanvasElementData {
  id: string;
  element: HTMLElement;
  x: number;
  y: number;
  width: number;
  height: number;
  rotation?: number;
}
/**
 * Canvas data structure for export/import.
 */
interface CanvasData {
  elements: CanvasElementData[];
  groups: Array<{
    id: string;
    elementIds: string[];
  }>;
}
//#endregion
export { CanvasData, CanvasElementBounds, CanvasElementData, SelectionState };
//# sourceMappingURL=types.d.ts.map