import * as React from 'react'; import type { TLBounds, TLComponentProps, TLForwardedRef, TLShape, TLUser } from '../types'; export declare abstract class TLShapeUtil { refMap: Map>; boundsCache: WeakMap; showCloneHandles: boolean; hideBounds: boolean; isStateful: boolean; abstract Component: React.ForwardRefExoticComponent>; abstract Indicator: (props: { shape: T; meta: M; user?: TLUser; bounds: TLBounds; isHovered: boolean; isSelected: boolean; }) => React.ReactElement | null; abstract getBounds: (shape: T) => TLBounds; shouldRender: (prev: T, next: T) => boolean; getRef: (shape: T) => React.RefObject; hitTestBounds: (shape: T, bounds: TLBounds) => boolean; getRotatedBounds: (shape: T) => TLBounds; static Component: (component: (props: TLComponentProps, ref: TLForwardedRef) => React.ReactElement) => React.ForwardRefExoticComponent, "bounds" | "shape" | "asset" | "isEditing" | "isBinding" | "isHovered" | "isSelected" | "isGhost" | "isChildOfSelected" | "meta" | "onShapeChange" | "onShapeBlur" | "events"> & React.RefAttributes>; static Indicator: (component: (props: { shape: T_1; meta: M_1; isHovered: boolean; isSelected: boolean; bounds: TLBounds; }) => React.ReactElement) => (props: { shape: T_1; meta: M_1; isHovered: boolean; isSelected: boolean; bounds: TLBounds; }) => React.ReactElement; } //# sourceMappingURL=TLShapeUtil.d.ts.map