import { ExcalidrawLinearElement, FillStyle, GroupId, RoundnessType, StrokeStyle } from "@zsviczian/excalidraw/types/element/types"; export type Point = [number, number]; export type ExcalidrawElementBase = { id: string; x: number; y: number; strokeColor: string; backgroundColor: string; fillStyle: FillStyle; strokeWidth: number; strokeStyle: StrokeStyle; roundness: null | { type: RoundnessType; value?: number; }; roughness: number; opacity: number; width: number; height: number; angle: number; /** Random integer used to seed shape generation so that the roughjs shape doesn't differ across renders. */ seed: number; /** Integer that is sequentially incremented on each change. Used to reconcile elements during collaboration or when saving to server. */ version: number; /** Random integer that is regenerated on each change. Used for deterministic reconciliation of updates during collaboration, in case the versions (see above) are identical. */ versionNonce: number; isDeleted: boolean; /** List of groups the element belongs to. Ordered from deepest to shallowest. */ groupIds: GroupId[]; /** Ids of (linear) elements that are bound to this element. */ boundElementIds: ExcalidrawLinearElement["id"][] | null; }; export type ExcalidrawRectangle = ExcalidrawElementBase & { type: "rectangle"; }; export type ExcalidrawLine = ExcalidrawElementBase & { type: "line"; points: readonly Point[]; }; export type ExcalidrawEllipse = ExcalidrawElementBase & { type: "ellipse"; }; export type ExcalidrawGenericElement = ExcalidrawRectangle | ExcalidrawEllipse | ExcalidrawLine | ExcalidrawDraw; export type ExcalidrawDraw = ExcalidrawElementBase & { type: "line"; points: readonly Point[]; }; export declare function createExElement(): ExcalidrawElementBase; export declare function createExRect(): ExcalidrawRectangle; export declare function createExLine(): ExcalidrawLine; export declare function createExEllipse(): ExcalidrawEllipse; export declare function createExDraw(): ExcalidrawDraw;