/* eslint-disable @typescript-eslint/no-explicit-any */ import { TLAsset, TLShape, TLShapeProps } from '@tldraw/core' export interface TLCommonShapeProps { meta: M isEditing: boolean isBinding: boolean isHovered: boolean isSelected: boolean isErasing: boolean asset?: TLAsset } export type TLIndicatorProps = TLCommonShapeProps export interface TLComponentProps extends TLCommonShapeProps { events: { onPointerMove: React.PointerEventHandler onPointerDown: React.PointerEventHandler onPointerUp: React.PointerEventHandler onPointerEnter: React.PointerEventHandler onPointerLeave: React.PointerEventHandler onKeyUp: React.KeyboardEventHandler onKeyDown: React.KeyboardEventHandler } onEditingEnd: () => void } export interface TLReactShapeConstructor { new (props: S['props'] & { type: any }): S id: string smart: boolean } export abstract class TLReactShape

extends TLShape< P, M > { abstract ReactComponent: (props: TLComponentProps) => JSX.Element | null abstract ReactIndicator: (props: TLIndicatorProps) => JSX.Element | null }