/**
 * lottieExport.ts — Export animations to Lottie/Bodymovin JSON format.
 *
 * Converts rig poses and choreography sequences to Lottie animation format
 * that can be played back with lottie-web, lottie-ios, lottie-android, etc.
 */
import type { RigPose, RigConfig } from "./rig/rigTypes";
export interface LottieKeyframe {
    /** Time in ms. */
    time: number;
    /** Pose at this keyframe. */
    pose: RigPose;
}
export interface LottieExportOptions {
    /** Animation name. */
    name?: string;
    /** Width in pixels. */
    width?: number;
    /** Height in pixels. */
    height?: number;
    /** Frames per second. */
    fps?: number;
    /** Rig configuration (defaults to DEFAULT_RIG). */
    rig?: RigConfig;
    /** Character size for FK solving. */
    size?: number;
    /** Author name. */
    author?: string;
}
interface LottieLayer {
    ddd: number;
    ind: number;
    ty: number;
    nm: string;
    sr: number;
    ks: Record<string, unknown>;
    ao: number;
    shapes: unknown[];
    ip: number;
    op: number;
    st: number;
    bm: number;
}
interface LottieAnimation {
    v: string;
    fr: number;
    ip: number;
    op: number;
    w: number;
    h: number;
    nm: string;
    ddd: number;
    assets: unknown[];
    layers: LottieLayer[];
    meta?: {
        a: string;
        g: string;
    };
}
/**
 * Export a sequence of RigPose keyframes to Lottie JSON format.
 * Returns a Lottie animation object that can be serialized with JSON.stringify().
 */
export declare function exportToLottie(keyframes: LottieKeyframe[], options?: LottieExportOptions): LottieAnimation;
/** Serialize Lottie animation to a JSON string. */
export declare function lottieToJSON(animation: LottieAnimation): string;
/** Create a downloadable Blob for the Lottie animation. */
export declare function lottieToBlob(animation: LottieAnimation): Blob;
/**
 * Convert a choreography sequence (pose name + duration) to Lottie keyframes.
 * Utility for bridging the choreography system to Lottie export.
 */
export declare function choreoToLottieKeyframes(poses: Array<{
    pose: RigPose;
    durationMs: number;
}>): LottieKeyframe[];
export {};
