/**
 * asepriteFormat.ts — Aseprite .ase/.aseprite binary format parser & writer.
 * Spec: https://github.com/aseprite/aseprite/blob/main/docs/ase-file-specs.md
 *
 * Supports:
 *  - RGBA color depth (32-bit)
 *  - Layers (normal, groups)
 *  - Cels (raw + zlib-compressed read, raw write)
 *  - Palette chunks
 *  - Frame tags
 *  - Round-trip: parseAse → writeAse produces valid .ase files
 */
export interface AseDocument {
    width: number;
    height: number;
    colorDepth: 8 | 16 | 32;
    frames: AseFrame[];
    layers: AseLayer[];
    palette: AseColor[];
    tags: AseTag[];
    transparentIndex: number;
}
export interface AseFrame {
    duration: number;
    cels: AseCel[];
}
export interface AseLayer {
    name: string;
    visible: boolean;
    opacity: number;
    blendMode: number;
    childLevel: number;
    layerType: number;
}
export interface AseCel {
    layerIndex: number;
    x: number;
    y: number;
    opacity: number;
    width: number;
    height: number;
    pixels: Uint8Array;
}
export interface AseTag {
    name: string;
    from: number;
    to: number;
    direction: number;
    color: AseColor;
}
export interface AseColor {
    r: number;
    g: number;
    b: number;
    a: number;
}
export declare function parseAseFile(buffer: ArrayBuffer): Promise<AseDocument>;
export declare function writeAseFile(doc: AseDocument): Promise<ArrayBuffer>;
export declare function createEmptyAseDocument(width?: number, height?: number): AseDocument;
export declare function defaultPalette(): AseColor[];
export declare function aseColorToHex(c: AseColor): string;
export declare function hexToAseColor(hex: string): AseColor;
