import { SMap } from "../../types";
import { FormatVersion } from "../types/format-version";
/** */
export interface Animation {
    /** */
    animation_length?: number;
    /** */
    anim_time_update?: number | string;
    /** */
    loop?: boolean | "hold_on_last_frame";
    /** */
    bones?: Record<"string", BoneAnimation>;
    /** */
    particle_effects?: SMap<{
        effect?: string;
        locator?: string;
    } | {
        effect?: string;
        locator?: string;
    }[]>;
    /** */
    sound_effects?: SMap<{
        effect?: string;
    } | {
        effect?: string;
    }[]>;
    /** */
    timeline?: SMap<string | string[]>;
}
/** */
export declare namespace Animation {
    /**
     *
     * @param value
     * @returns
     */
    function is(value: any): value is Animation;
}
/** */
export interface Animations extends Readonly<FormatVersion> {
    /** */
    format_version: string;
    /** */
    animations: {
        /** */
        [animation: string]: Animation;
    };
}
/** */
export declare namespace Animations {
    /**
     *
     * @param value
     * @returns
     */
    function is(value: any): value is Animations;
}
type Vec3 = [number | string, number | string, number | string];
export interface BoneAnimation {
    rotation?: Vec3 | Record<string, Vec3 | string> | string;
    position?: Vec3 | Record<string, Vec3 | string> | string;
    scale?: Vec3 | Record<string, Vec3 | string> | string;
}
export {};
