// special file for minimal import import * as React from 'react'; import * as ReactReconciler from 'react-reconciler' import Konva from 'konva'; export interface KonvaNodeEvents { onMouseOver?(evt: Konva.KonvaEventObject): void; onMouseMove?(evt: Konva.KonvaEventObject): void; onMouseOut?(evt: Konva.KonvaEventObject): void; onMouseEnter?(evt: Konva.KonvaEventObject): void; onMouseLeave?(evt: Konva.KonvaEventObject): void; onMouseDown?(evt: Konva.KonvaEventObject): void; onMouseUp?(evt: Konva.KonvaEventObject): void; onWheel?(evt: Konva.KonvaEventObject): void; onClick?(evt: Konva.KonvaEventObject): void; onDblClick?(evt: Konva.KonvaEventObject): void; onTouchStart?(evt: Konva.KonvaEventObject): void; onTouchMove?(evt: Konva.KonvaEventObject): void; onTouchEnd?(evt: Konva.KonvaEventObject): void; onTap?(evt: Konva.KonvaEventObject): void; onDblTap?(evt: Konva.KonvaEventObject): void; onDragStart?(evt: Konva.KonvaEventObject): void; onDragMove?(evt: Konva.KonvaEventObject): void; onDragEnd?(evt: Konva.KonvaEventObject): void; onTransform?(evt: Konva.KonvaEventObject): void; onTransformStart?(evt: Konva.KonvaEventObject): void; onTransformEnd?(evt: Konva.KonvaEventObject): void; onContextMenu?(evt: Konva.KonvaEventObject): void; onPointerDown?(evt: Konva.KonvaEventObject): void; onPointerMove?(evt: Konva.KonvaEventObject): void; onPointerUp?(evt: Konva.KonvaEventObject): void; onPointerCancel?(evt: Konva.KonvaEventObject): void; onPointerEnter?(evt: Konva.KonvaEventObject): void; onPointerLeave?(evt: Konva.KonvaEventObject): void; onPointerOver?(evt: Konva.KonvaEventObject): void; onPointerOut?(evt: Konva.KonvaEventObject): void; onPointerClick?(evt: Konva.KonvaEventObject): void; onPointerDblClick?(evt: Konva.KonvaEventObject): void; onGotPointerCapture?(evt: Konva.KonvaEventObject): void; onLostPointerCapture?(evt: Konva.KonvaEventObject): void; } export interface KonvaNodeComponent< Node extends Konva.Node, Props = Konva.NodeConfig // We use React.ClassAttributes to fake the 'ref' attribute. This will ensure // consumers get the proper 'Node' type in 'ref' instead of the wrapper // component type. > extends React.FC> { getPublicInstance(): Node; getNativeNode(): Node; // putEventListener(type: string, listener: Function): void; // handleEvent(event: Event): void; } export interface StageProps extends Konva.NodeConfig, KonvaNodeEvents, Pick< React.HTMLAttributes, 'className' | 'role' | 'style' | 'tabIndex' | 'title' > {} // Stage is the only real class because the others are stubs that only know how // to be rendered when they are under stage. Since there is no real backing // class and are in reality are a string literal we don't want users to actually // try and use them as a type. By defining them as a variable with an interface // consumers will not be able to use the values as a type or constructor. // The down side to this approach, is that typescript thinks the type is a // function, but if the user tries to call it a runtime exception will occur. export var Stage: KonvaNodeComponent; export var Layer: KonvaNodeComponent; export var FastLayer: KonvaNodeComponent; export var Group: KonvaNodeComponent; export var Label: KonvaNodeComponent; /** Shapes */ export var Rect: KonvaNodeComponent; export var Circle: KonvaNodeComponent; export var Ellipse: KonvaNodeComponent; export var Wedge: KonvaNodeComponent; export var Transformer: KonvaNodeComponent< Konva.Transformer, Konva.TransformerConfig >; export var Line: KonvaNodeComponent; export var Sprite: KonvaNodeComponent; export var Image: KonvaNodeComponent; export var Text: KonvaNodeComponent; export var TextPath: KonvaNodeComponent; export var Star: KonvaNodeComponent; export var Ring: KonvaNodeComponent; export var Arc: KonvaNodeComponent; export var Tag: KonvaNodeComponent; export var Path: KonvaNodeComponent; export var RegularPolygon: KonvaNodeComponent< Konva.RegularPolygon, Konva.RegularPolygonConfig >; export var Arrow: KonvaNodeComponent; export var Shape: KonvaNodeComponent; export var useStrictMode: (useStrictMode: boolean) => void; export var KonvaRenderer: ReactReconciler.Reconciler