import { IObject, IMode } from '.';
export declare type IAnimType = 'to' | 'from' | 'set';
export declare type IEaseType = 'linear' | 'easeInSine' | 'easeOutSine' | 'easeInOutSine' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint' | 'easeInExpo' | 'easeInOutExpo' | 'easeInOutExpo' | 'easeInCirc' | 'easeOutCirc' | 'easeInOutCirc' | 'easeInBack' | 'easeOutBack' | 'easeInOutBack' | 'easeInElastic' | 'easeOutElastic' | 'easeInOutElastic' | 'easeInBounce' | 'easeOutBounce' | 'easeInOutBounce' | string;
export declare type IAnimCallBack = (e?: {
    index: number;
    targets: IObject | IObject[];
    ratio?: number;
    moment?: number;
    mode: IMode;
    vars?: IObject | IObject[];
}) => void;
export interface IBezierProps {
    type?: string;
    autoRotate?: boolean;
    vars: {
        x: number;
        y: number;
    }[];
}
export interface IChildrenProps {
    value: number;
    floatLength?: number;
    formatMoney?: {
        thousand: string;
        decimal: string;
    };
}
export interface IStyleAnimProps {
    [key: string]: any;
    path?: string;
    x?: number | string;
    y?: number | string;
    z?: number | string;
    translateX?: number | string;
    translateY?: number | string;
    translateZ?: number | string;
    rotate?: number | string;
    rotateX?: number | string;
    rotateY?: number | string;
    scale?: number | string;
    scaleX?: number | string;
    scaleY?: number | string;
    transformOrigin?: number | string;
    grayScale?: number;
    sepia?: number;
    hueRotate?: string;
    invert?: number;
    brightness?: number;
    contrast?: number;
    saturate?: number;
    blur?: string;
    width?: number | string;
    maxWidth?: number | string;
    minWidth?: number | string;
    height?: number | string;
    maxHeight?: number | string;
    minHeight?: number | string;
    lineHeight?: number | string;
    opacity?: number | string;
    top?: number | string;
    right?: number | string;
    bottom?: number | string;
    left?: number | string;
    marginTop?: number | string;
    marginRight?: number | string;
    marginBottom?: number | string;
    marginLeft?: number | string;
    paddingTop?: number | string;
    paddingRight?: number | string;
    paddingBottom?: number | string;
    paddingLeft?: number | string;
    color?: string;
    backgroundColor?: string;
    borderWidth?: number | string;
    borderRadius?: number | string;
    borderColor?: string;
    boxShadow?: string;
    textShadow?: string;
    strokeWidth?: number;
    fill?: string;
    stroke?: string;
    strokeDashoffset?: number;
    strokeDasharray?: string;
}
export interface IAnimObject extends IStyleAnimProps {
    type?: IAnimType;
    startAt?: IObject;
    duration?: number;
    delay?: number;
    repeat?: number;
    repeatDelay?: number;
    appearTo?: number | string;
    yoyo?: boolean;
    ease?: IEaseType;
    style?: IStyleAnimProps;
    cx?: number;
    cy?: number;
    r?: number;
    x1?: number;
    y1?: number;
    x2?: number;
    y2?: number;
    rx?: number;
    ry?: number;
    dx?: number;
    dy?: number;
    offset?: number | string;
    stdDeviation?: number | string;
    stopColor?: string;
    stopOpacity?: number;
    onStart?: IAnimCallBack;
    onUpdate?: IAnimCallBack;
    onComplete?: IAnimCallBack;
    onRepeat?: IAnimCallBack;
    PathMotion?: {
        path?: string | {
            x: number;
            y: number;
            [key: string]: any;
        }[];
        pathVars?: {
            type?: 'thru' | 'soft' | 'cubic';
            curviness?: number;
            relative?: boolean;
        };
        center?: number | string[];
        x?: boolean;
        y?: boolean;
        rotate?: boolean;
    };
    SVGDraw?: string | number;
    SVGMorph?: {
        path?: string;
        attr?: string;
        maxSegmentLength?: number;
    };
}
