import type { LineAreaAppearConfig, LineAreaLoopConfig, LineAreaUpdateConfig } from './types';
import { StreamLight } from '@visactor/vchart';
/**
 * 折线图/面积图/百分比面积图 入场动画
 * 动画类型:
 * 1. growth: 生长动画
 * 效果：line/area 使用路径增长, point 使用顶部移入。
 * 编排逻辑：line、area、point 共用 appear 的 easing 和 duration。
 * 2. load: 加载动画
 * 效果：line/area 使用整体裁剪进入, point 不额外配置进入方式。
 * 编排逻辑：line、area、point 共用 appear 的 easing 和 duration。
 */
export declare const lineOrAreaAppear: (config: LineAreaAppearConfig | undefined) => false | {
    line: {
        easing: string | undefined;
        duration: number;
    };
    area: {
        easing: string | undefined;
        duration: number;
    };
    point: {
        easing: string | undefined;
        duration: number;
    };
};
/**
 * 折线图/面积图/百分比面积图 循环动画
 * 动画类型:
 * 1. growth/load: 线面 loop 动画
 * 效果：line/area 执行路径增长或整体裁剪。
 * 编排逻辑：startTime = appear 存在 ? interval : 0, 有 loop 时 loopDuration = 1s, 执行后等待 interval + atmosphereDuration。
 * 2. atmosphere: 线面流光氛围动画
 * 效果：line/area 使用 StreamLight 形成流光。
 * 编排逻辑：延迟 loopDuration 后启动, 持续 atmosphereDuration, 一轮结束后等待 interval。
 * 3. atmospherePoint: 点氛围动画
 * 效果：point 执行 breath/reveal/ripple 等氛围效果。
 * 编排逻辑：和整轮时间线同步, 一轮结束后等待 interval + atmosphereDuration。
 */
export declare const lineOrAreaLoop: (config: LineAreaLoopConfig | undefined, ignoreFirstNormal: boolean) => false | {
    line: ({
        loop: boolean;
        startTime: number;
        delay: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
        custom: typeof StreamLight;
        customParameters: (...args: any[]) => {
            streamLength: number;
            attribute: {
                stroke: string | {
                    gradient: string;
                    x0: number;
                    x1: number;
                    y1: number;
                    y0: number;
                    stops: {
                        offset: number;
                        color: string;
                    }[];
                } | undefined;
                strokeOpacity: number;
                lineWidth: any;
            };
        };
    } | {
        startTime: number;
        easing: string;
        duration: number;
        delayAfter: number;
        loop: boolean;
        controlOptions: {
            immediatelyApply: boolean;
        };
        type: string;
        options: {
            orient: string;
        };
    } | {
        startTime: number;
        easing: string;
        duration: number;
        delayAfter: number;
        loop: boolean;
        controlOptions: {
            immediatelyApply: boolean;
        };
        type: string;
        oneByOne: boolean;
    })[];
    area: ({
        loop: boolean;
        startTime: number;
        delay: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
        custom: typeof StreamLight;
        customParameters: (...args: any[]) => {
            streamLength: number;
            attribute: {
                stroke: string | {
                    gradient: string;
                    x0: number;
                    x1: number;
                    y1: number;
                    y0: number;
                    stops: {
                        offset: number;
                        color: string;
                    }[];
                } | undefined;
                strokeOpacity: number;
                lineWidth: any;
            };
        };
    } | {
        startTime: number;
        easing: string;
        duration: number;
        delayAfter: number;
        loop: boolean;
        controlOptions: {
            immediatelyApply: boolean;
        };
        type: string;
        options: {
            orient: string;
        };
    } | {
        startTime: number;
        easing: string;
        duration: number;
        delayAfter: number;
        loop: boolean;
        controlOptions: {
            immediatelyApply: boolean;
        };
        type: string;
        oneByOne: boolean;
    })[];
    point: ({
        channel?: undefined;
        custom?: undefined;
        loop: boolean;
        startTime: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
    } | {
        channel: {
            scaleX: {
                from: number;
                to: number;
            };
            scaleY: {
                from: number;
                to: number;
            };
            fillOpacity?: undefined;
            strokeOpacity?: undefined;
            outerBorder?: undefined;
        };
        custom?: undefined;
        loop: boolean;
        startTime: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
    } | {
        channel: {
            fillOpacity: {
                from: number;
                to: number;
            };
            strokeOpacity: {
                from: number;
                to: number;
            };
            scaleX?: undefined;
            scaleY?: undefined;
            outerBorder?: undefined;
        };
        custom?: undefined;
        loop: boolean;
        startTime: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
    } | {
        channel: {
            outerBorder: {
                from: {
                    distance: number;
                    strokeOpacity: number;
                };
                to: (...args: any[]) => {
                    distance: number;
                    strokeOpacity: number;
                    stroke: any;
                };
            };
            scaleX?: undefined;
            scaleY?: undefined;
            fillOpacity?: undefined;
            strokeOpacity?: undefined;
        };
        custom: (ratio: number, from: any, to: any, out: any, graphic: any) => void;
        loop: boolean;
        startTime: number;
        delayAfter: number;
        duration: number;
        easing: string | undefined;
    })[];
};
/**
 * 折线图/面积图/百分比面积图 更新动画
 * 动画类型:
 * 1. default: 默认更新动画
 * 效果：使用 VChart 默认补间覆盖数据更新、点位变化和面积路径变化。
 * 编排逻辑：line、area、point 共用 update 的 easing 和 duration。
 */
export declare const lineOrAreaUpdate: (config: LineAreaUpdateConfig | undefined) => false | {
    line: {
        easing: string | undefined;
        duration: number;
    };
    area: {
        easing: string | undefined;
        duration: number;
    };
    point: {
        easing: string | undefined;
        duration: number;
    };
};
/**
 * 折线图/面积图/百分比面积图 离场动画
 * 动画类型:
 * 1. default: 默认离场动画
 * 效果：使用 VChart 默认补间完成 line、area、point 离场。
 * 编排逻辑：line、area、point 共用 exit 的 easing 和 duration, 保持节奏一致。
 */
export declare const lineOrAreaExit: (config: LineAreaUpdateConfig | undefined) => false | {
    line: {
        easing: string | undefined;
        duration: number;
    };
    point: {
        easing: string | undefined;
        duration: number;
    };
    area: {
        easing: string | undefined;
        duration: number;
    };
};
