/**
 * Smart selection tools for PhotoEditor
 * Implements magic wand, lasso selection, and healing brush
 */
export interface SelectionMask {
    width: number;
    height: number;
    data: Uint8Array;
}
export interface Point {
    x: number;
    y: number;
}
export type SelectionMode = 'replace' | 'add' | 'subtract' | 'intersect';
export declare function createEmptyMask(width: number, height: number): SelectionMask;
export declare function createFullMask(width: number, height: number): SelectionMask;
export declare function invertMask(mask: SelectionMask): SelectionMask;
export declare function combineMasks(maskA: SelectionMask, maskB: SelectionMask, mode: SelectionMode): SelectionMask;
export declare function featherMask(mask: SelectionMask, radius: number): SelectionMask;
export interface MagicWandOptions {
    tolerance: number;
    contiguous: boolean;
    antiAlias: boolean;
    feather: number;
}
export declare function magicWandSelect(imageData: ImageData, startX: number, startY: number, options?: Partial<MagicWandOptions>): SelectionMask;
export interface LassoOptions {
    feather: number;
    antiAlias: boolean;
}
export declare function lassoSelect(width: number, height: number, points: Point[], options?: Partial<LassoOptions>): SelectionMask;
/** Magnetic lasso - snaps to edges in image */
export declare function magneticLassoPoint(imageData: ImageData, x: number, y: number, searchRadius?: number): Point;
export interface ColorRangeOptions {
    fuzziness: number;
    feather: number;
}
export declare function selectColorRange(imageData: ImageData, targetColor: {
    r: number;
    g: number;
    b: number;
}, options?: Partial<ColorRangeOptions>): SelectionMask;
export interface HealingBrushOptions {
    radius: number;
    hardness: number;
    opacity: number;
    mode: 'heal' | 'clone';
}
/** Apply healing brush at destination using source area */
export declare function applyHealingBrush(imageData: ImageData, srcX: number, srcY: number, dstX: number, dstY: number, options?: Partial<HealingBrushOptions>): ImageData;
/** Simple content-aware fill using surrounding pixels */
export declare function contentAwareFill(imageData: ImageData, mask: SelectionMask): ImageData;
/** Render marching ants selection outline */
export declare function renderSelectionOutline(ctx: CanvasRenderingContext2D, mask: SelectionMask, offset?: number): void;
/** Apply mask as alpha to ImageData */
export declare function applyMaskToImageData(imageData: ImageData, mask: SelectionMask, invert?: boolean): ImageData;
