UNPKG

@magnetman103/expo-pencilkit-ui

Version:
115 lines 3.28 kB
import React from "react"; /** * Drawing tool types available in PencilKit */ export type DrawingToolType = "pen" | "marker" | "pencil" | "eraser" | "lasso"; /** * Eraser types available in PencilKit */ export type EraserType = "vector" | "bitmap"; /** * Event payload for drawing start events */ export interface DrawStartEvent { data: string; } /** * Event payload for drawing end events */ export interface DrawEndEvent { data: string; } /** * Event payload for drawing change events */ export interface DrawChangeEvent { data: string; } /** * Event payload for can undo changed events */ export interface CanUndoChangedEvent { canUndo: boolean; } /** * Event payload for can redo changed events */ export interface CanRedoChangedEvent { canRedo: boolean; } export interface ZoomChangedEvent { zoomScale: number; contentOffset: { x: number; y: number; }; frameSize: { width: number; height: number; }; contentSize: { width: number; height: number; }; } /** * Native event wrapper for view component events */ export interface NativeEvent<T> { nativeEvent: T; } /** * Props for PencilKitView component */ export interface PencilKitViewProps { style?: any; imagePath?: { uri: string; }; onDrawStart?: (event: NativeEvent<DrawStartEvent>) => void; onDrawEnd?: (event: NativeEvent<DrawEndEvent>) => void; onDrawChange?: (event: NativeEvent<DrawChangeEvent>) => void; onCanUndoChanged?: (event: NativeEvent<CanUndoChangedEvent>) => void; onCanRedoChanged?: (event: NativeEvent<CanRedoChangedEvent>) => void; drawingPolicy?: "pencilOnly" | "anyInput"; onZoomChanged?: (event: NativeEvent<ZoomChangedEvent>) => void; } /** * Ref methods available on PencilKitView */ export interface PencilKitViewRef { setupToolPicker(): Promise<void>; clearDrawing(): Promise<void>; undo(): Promise<void>; redo(): Promise<void>; captureDrawing(): Promise<string>; getCanvasDataAsBase64(): Promise<string>; setCanvasDataFromBase64(base64String: string): Promise<boolean>; canUndo(): Promise<boolean>; canRedo(): Promise<boolean>; setCanvasBackgroundColor(colorString: string): Promise<void>; getCanvasBackgroundColor(): Promise<string>; showColorPicker(): Promise<void>; setZoomScale(zoomScale: number): Promise<void>; setContentOffset(contentOffset: { x: number; y: number; }, animated: boolean): Promise<void>; setDrawingTool(toolType: DrawingToolType, color: string, width: number, eraserType?: EraserType): Promise<void>; getCurrentDrawingTool(): Promise<{ toolType: DrawingToolType; color: string; width: number; eraserType?: EraserType; }>; setDrawingColor(color: string): Promise<void>; setDrawingWidth(width: number): Promise<void>; setDrawingToolType(toolType: DrawingToolType): Promise<void>; setEraserTool(eraserType: EraserType): Promise<void>; setLassoTool(): Promise<void>; } /** * PencilKit View Component */ export declare const PencilKitView: React.ForwardRefExoticComponent<PencilKitViewProps & React.RefAttributes<PencilKitViewRef>>; //# sourceMappingURL=index.d.ts.map