@magnetman103/expo-pencilkit-ui
Version:
Forked from expo-pencilkit-ui
115 lines • 3.28 kB
TypeScript
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