import type { EasingType, IGraphic, IGroup } from '@visactor/vrender-core';
import { ACustomAnimate } from './custom-animate';
export type FunctionCallback<T> = (...args: any[]) => T;
export interface IMoveAnimationOptions {
    direction?: 'x' | 'y' | 'xy';
    orient?: 'positive' | 'negative';
    offset?: number;
    point?: {
        x?: number;
        y?: number;
    } | FunctionCallback<{
        x?: number;
        y?: number;
    }>;
    excludeChannels?: string[];
    layoutRect?: {
        width: number;
        height: number;
    };
}
interface IAnimationParameters {
    width: number;
    height: number;
    group: IGroup;
    elementIndex: number;
    elementCount: number;
    view: any;
}
export declare const moveIn: (graphic: IGraphic, options: IMoveAnimationOptions, animationParameters: IAnimationParameters) => {
    from: {
        x: any;
        y?: undefined;
    };
    to: {
        x: any;
        y?: undefined;
    };
} | {
    from: {
        y: any;
        x?: undefined;
    };
    to: {
        y: any;
        x?: undefined;
    };
} | {
    from: {
        x: any;
        y: any;
    };
    to: {
        x: any;
        y: any;
    };
};
export declare const moveOut: (graphic: IGraphic, options: IMoveAnimationOptions, animationParameters: IAnimationParameters) => {
    from: {
        x: any;
        y?: undefined;
    };
    to: {
        x: any;
        y?: undefined;
    };
} | {
    from: {
        y: any;
        x?: undefined;
    };
    to: {
        y: any;
        x?: undefined;
    };
} | {
    from: {
        x: any;
        y: any;
    };
    to: {
        x: any;
        y: any;
    };
};
export declare class MoveBase extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: any);
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class MoveIn extends MoveBase {
    onBind(): void;
}
export declare class MoveOut extends MoveBase {
    onBind(): void;
}
export {};
