/**
 * pixelEditorTypes — shared types, constants & helpers for PixelEditor.
 */
import { type RGBA, type BrushShape, type SymmetryMode } from "./pixelEditorUtils";
export type Tool = "pencil" | "eraser" | "fill" | "line" | "rect" | "ellipse" | "eyedropper" | "select" | "move" | "gradient" | "dither";
export interface Layer {
    id: string;
    name: string;
    visible: boolean;
    opacity: number;
    locked: boolean;
    blendMode: BlendMode;
}
export type BlendMode = "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten";
export interface HistoryEntry {
    desc: string;
    cels: Map<string, ImageData>;
    layers: Layer[];
    frameCount: number;
}
export interface Selection {
    x: number;
    y: number;
    w: number;
    h: number;
}
export declare const TOOLS: {
    id: Tool;
    icon: string;
    label: string;
    key: string;
}[];
export declare const BLEND_MODES: BlendMode[];
export declare const BRUSH_SHAPES: {
    id: BrushShape;
    label: string;
    icon: string;
}[];
export declare const SYMMETRY_MODES: {
    id: SymmetryMode;
    label: string;
}[];
export declare const DEFAULT_PALETTE: string[];
export declare const lid: () => string;
export declare const celKey: (f: number, l: number) => string;
export declare const inB: (x: number, y: number, w: number, h: number) => boolean;
export declare const downloadBlob: (blob: Blob, name: string) => void;
/** Hex → RGBA tuple. */
export declare const hex2t: (hex: string) => RGBA;
/** Draw ellipse outline using parametric approach. */
export declare const plotEllipse: (data: ImageData, cx: number, cy: number, rx: number, ry: number, color: RGBA, w: number, h: number, filled?: boolean) => void;
