import { type Y } from '@blockeditor/store'; import type { SurfaceBlockModel } from '../surface-model.js'; import { ElementModel } from './base.js'; import { BrushElementModel } from './brush.js'; import { ConnectorElementModel } from './connector.js'; import { GroupElementModel } from './group.js'; import { ShapeElementModel } from './shape.js'; import { TextElementModel } from './text.js'; export declare function createElementModel(type: string, id: string, yMap: Y.Map, model: SurfaceBlockModel, options: { onChange: (payload: { id: string; props: Record; oldValues: Record; }) => void; skipFieldInit?: boolean; }): { model: ElementModel; unmount: () => void; mount: () => void; }; export declare function propsToY(type: string, props: Record): Record | (import("./base.js").BaseProps & { children: Y.Map; title: Y.Text; }) | import("./brush.js").BrushProps | import("./shape.js").ShapeProps; export declare function createModelFromProps(props: Record, model: SurfaceBlockModel, options: { onChange: (payload: { id: string; props: Record; oldValues: Record; }) => void; }): { model: ElementModel; unmount: () => void; mount: () => void; }; export { BrushElementModel, ConnectorElementModel, ElementModel, GroupElementModel, ShapeElementModel, TextElementModel, }; export type CanvasElement = BrushElementModel | ConnectorElementModel | ShapeElementModel | TextElementModel | GroupElementModel; export declare enum CanvasElementType { SHAPE = "shape", BRUSH = "brush", CONNECTOR = "connector", TEXT = "text", GROUP = "group" } export type ElementModelMap = { ['shape']: ShapeElementModel; ['brush']: BrushElementModel; ['connector']: ConnectorElementModel; ['text']: TextElementModel; ['group']: GroupElementModel; }; export declare function isCanvasElementType(type: string): type is CanvasElementType; //# sourceMappingURL=index.d.ts.map