import { SelectionState } from "../api/types.js";

//#region src/canvas/selection/selectionContext.d.ts

/**
 * Selection context interface for Lit context.
 */
interface SelectionContext {
  selectedIds: ReadonlySet<string>;
  selectionMode: SelectionState;
  boxSelectBounds: DOMRect | null;
  select: (id: string) => void;
  selectMultiple: (ids: string[]) => void;
  addToSelection: (id: string) => void;
  deselect: (id: string) => void;
  toggle: (id: string) => void;
  clear: () => void;
  startBoxSelect: (x: number, y: number) => void;
  updateBoxSelect: (x: number, y: number) => void;
  endBoxSelect: (hitTest: (bounds: DOMRect) => string[], addToSelection?: boolean) => void;
  createGroup: (ids: string[]) => string;
  ungroup: (groupId: string) => void;
  selectGroup: (groupId: string) => void;
  getGroupId: (elementId: string) => string | undefined;
  getGroupElements: (groupId: string) => string[];
  addEventListener: (type: "selectionchange", listener: (event: CustomEvent) => void) => void;
  removeEventListener: (type: "selectionchange", listener: (event: CustomEvent) => void) => void;
}
//#endregion
export { SelectionContext };
//# sourceMappingURL=selectionContext.d.ts.map