/**
 * spineExport.ts — Export animations to Spine JSON format.
 *
 * Spine is a popular 2D skeletal animation tool. This module exports
 * rig configurations and pose sequences to the Spine JSON format
 * for import into Spine editor or Spine runtimes.
 */
import type { RigPose, RigConfig } from "./rig/rigTypes";
export interface SpineExportOptions {
    /** Skeleton name. */
    name?: string;
    /** Character size for FK solving. */
    size?: number;
    /** Rig configuration. */
    rig?: RigConfig;
    /** Image path prefix for attachments. */
    imagePath?: string;
}
export interface SpineKeyframe {
    time: number;
    pose: RigPose;
}
export interface SpineAnimationDef {
    name: string;
    keyframes: SpineKeyframe[];
    loop?: boolean;
}
interface SpineBone {
    name: string;
    parent?: string;
    length: number;
    x: number;
    y: number;
    rotation: number;
}
interface SpineSlot {
    name: string;
    bone: string;
    attachment: string | null;
}
interface SpineJSON {
    skeleton: {
        hash: string;
        spine: string;
        x: number;
        y: number;
        width: number;
        height: number;
        images: string;
    };
    bones: SpineBone[];
    slots: SpineSlot[];
    skins: Record<string, Record<string, Record<string, unknown>>>;
    animations: Record<string, {
        bones: Record<string, {
            rotate: unknown[];
        }>;
    }>;
}
/** Export rig and animations to Spine JSON format. */
export declare function exportToSpine(animations: SpineAnimationDef[], options?: SpineExportOptions): SpineJSON;
/** Serialize Spine data to JSON string. */
export declare function spineToJSON(data: SpineJSON): string;
/** Create a downloadable Blob for the Spine JSON. */
export declare function spineToBlob(data: SpineJSON): Blob;
export {};
