import type { BarLikeAppearConfig, BarLikeLoopConfig, BarLikeUpdateConfig } from './types';
/**
 * 柱图/条形图 入场动画
 * 动画类型:
 * 1. growth: 生长动画
 * 效果：横向柱使用宽度增长, 纵向柱使用高度增长。
 * 编排逻辑：仅作用于 bar mark, 使用 appear 的 easing 和 duration。
 * 2. load: 加载动画
 * 效果：使用逐个淡入, 让柱子按图元顺序出现。
 * 编排逻辑：仅作用于 bar mark, 使用 appear 的 easing 和 duration。
 * 3. 其他: 默认入场动画
 * 效果：不指定额外动画 type, 交给 VChart 默认入场补间。
 * 编排逻辑：仅保留 easing 和 duration。
 */
export declare const barAppear: (config: BarLikeAppearConfig | undefined, chartType: string) => false | {
    bar: {
        easing: string | undefined;
        duration: number;
    };
};
/**
 * 柱图/条形图 更新动画
 * 动画类型:
 * 1. moveIn: 移入动画
 * 效果：update 阶段沿柱图方向从画布外移入。
 * 编排逻辑：复用移入方向, 但不再补随机 dataKey, 只作用于 bar mark。
 * 2. 其他: 默认更新动画
 * 效果：使用 VChart 默认更新补间。
 * 编排逻辑：只保留 easing 和 duration, 不影响轴、标签等其他组件。
 */
export declare const barUpdate: (config: BarLikeUpdateConfig | undefined, chartType: string, spec?: any) => false | {
    bar: {
        easing: string | undefined;
        duration: number;
    };
};
/**
 * 柱图/条形图 循环动画
 * 动画类型:
 * 1. highLight: 分组高亮动画
 * 效果：按类目分组依次切换高亮填充和描边。
 * 编排逻辑：startTime = appear 存在 ? interval : 0, loopDuration = groupDuration * groupCount + stopDuration, 一轮结束后等待 interval。
 * 2. growth/moveIn/load: mark 循环动画
 * 效果：复用对应的柱图 mark 动画。
 * 编排逻辑：先执行 loopDuration, 再等待 interval + atmosphereDuration 后重复。
 * 3. atmosphere: 流光氛围动画
 * 效果：使用 StreamLight 在柱子上形成流光。
 * 编排逻辑：延迟 loopDuration 后启动, 持续 atmosphereDuration, 一轮结束后等待 interval。
 */
export declare const barLoop: (config: BarLikeLoopConfig | undefined, ignoreFirstNormal: boolean, chartType: string, spec?: any) => false | {
    bar: any[];
};
/**
 * 柱图/条形图 离场动画
 * 动画类型:
 * 1. moveIn: 反向移出动画
 * 效果：沿柱图进入方向反向移出画布。
 * 编排逻辑：只有 update 效果为 moveIn 时才补充 moveOut。
 * 2. 其他: 默认离场动画
 * 效果：不配置自定义 exit。
 * 编排逻辑：返回空配置, 由 VChart 默认行为处理。
 */
export declare const barExit: (config: BarLikeUpdateConfig | undefined, chartType: string) => false | {
    bar?: undefined;
} | {
    bar: {
        duration: number;
        type: string;
        options: {
            direction: string;
            orient: string;
            point: (_datum: any, element: any, opt: any) => {
                [x: string]: any;
            };
        };
    };
};
