/** * @rajeev02/camera — Photo Editor * Full photo editing: crop, rotate, adjust, draw, text, stickers, blur, frames, heal, collage */ export type EditTool = "crop" | "rotate" | "flip" | "adjust" | "filter" | "draw" | "text" | "sticker" | "blur" | "frame" | "vignette" | "sharpen" | "heal" | "red_eye" | "perspective" | "collage" | "background_remove" | "resize"; export interface CropPreset { id: string; label: string; aspectRatio: number | null; } export interface AdjustmentValues { brightness: number; contrast: number; saturation: number; exposure: number; highlights: number; shadows: number; warmth: number; tint: number; sharpness: number; grain: number; vignette: number; clarity: number; fadeAmount: number; hue: number; } export interface DrawConfig { color: string; brushSize: number; brushType: "pen" | "marker" | "pencil" | "spray" | "neon" | "eraser" | "blur_brush"; opacity: number; } export interface TextOverlay { id: string; text: string; fontFamily: string; fontSize: number; color: string; backgroundColor?: string; bold: boolean; italic: boolean; underline: boolean; alignment: "left" | "center" | "right"; rotation: number; position: { x: number; y: number; }; opacity: number; shadow?: { color: string; offsetX: number; offsetY: number; blur: number; }; outline?: { color: string; width: number; }; } export interface StickerOverlay { id: string; source: string; position: { x: number; y: number; }; scale: number; rotation: number; opacity: number; flipHorizontal: boolean; } export interface BlurRegion { id: string; type: "circle" | "rectangle" | "freeform"; center: { x: number; y: number; }; radius?: number; width?: number; height?: number; intensity: number; blurType: "gaussian" | "motion" | "radial" | "pixelate"; /** Freeform path points */ path?: { x: number; y: number; }[]; } export interface FrameConfig { id: string; type: "solid" | "gradient" | "pattern" | "rounded" | "polaroid" | "film_strip" | "torn_paper"; color?: string; width: number; cornerRadius?: number; innerPadding?: number; } export interface EditAction { id: string; tool: EditTool; timestamp: number; params: Record; } /** * Photo Editor Controller — manages edit state, history, undo/redo */ export declare class PhotoEditorController { private sourceUri; private adjustments; private textOverlays; private stickerOverlays; private blurRegions; private drawPaths; private frame; private cropRegion; private rotation; private flipH; private flipV; private history; private historyIndex; private activeFilter; private listeners; constructor(sourceUri: string); setCrop(x: number, y: number, width: number, height: number): void; rotate(degrees: number): void; rotateLeft(): void; rotateRight(): void; flipHorizontal(): void; flipVertical(): void; straighten(degrees: number): void; setPerspective(topLeft: { x: number; y: number; }, topRight: { x: number; y: number; }, bottomLeft: { x: number; y: number; }, bottomRight: { x: number; y: number; }): void; setAdjustment(key: keyof AdjustmentValues, value: number): void; resetAdjustments(): void; getAdjustments(): AdjustmentValues; applyFilter(filterId: string): void; removeFilter(): void; getActiveFilter(): string | null; addText(overlay: Omit): string; updateText(id: string, updates: Partial): void; removeText(id: string): void; getTextOverlays(): TextOverlay[]; addSticker(sticker: Omit): string; updateSticker(id: string, updates: Partial): void; removeSticker(id: string): void; getStickers(): StickerOverlay[]; startDrawPath(config: DrawConfig): void; addDrawPoint(x: number, y: number): void; endDrawPath(): void; clearDrawing(): void; getDrawPaths(): typeof this.drawPaths; addBlurRegion(region: Omit): string; removeBlurRegion(id: string): void; getBlurRegions(): BlurRegion[]; setFrame(frame: FrameConfig): void; removeFrame(): void; getFrame(): FrameConfig | null; undo(): boolean; redo(): boolean; canUndo(): boolean; canRedo(): boolean; getHistoryCount(): number; getEditState(): Record; /** Reset all edits */ resetAll(): void; on(listener: (event: string) => void): () => void; private addToHistory; private emit; private getDefaultAdjustments; } /** Standard crop presets */ export declare function getCropPresets(): CropPreset[]; //# sourceMappingURL=index.d.ts.map