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