import { IAnimObject } from './IAnimObject';
export * from './IAnimObject';
export interface IObject {
    [key: string]: any;
}
export declare type IFunc = (v: any) => void;
export interface IProps extends IObject {
    attr?: boolean;
    animation?: IAnimObject | IAnimObject[];
    paused?: boolean;
    reverse?: boolean;
    repeat?: number;
    repeatDelay?: number;
    yoyo?: boolean;
    moment?: null | number;
    regionStartTime?: number;
    regionEndTime?: number;
    onChange?: (v: ICallBack) => void;
    onChangeTimeline?: (v: ITimelineCallBack) => void;
}
export declare type IMode = 'onUpdate' | 'onStart' | 'onComplete' | 'onRepeat';
export declare type ITimeLineMode = 'onTimelineUpdate' | 'onTimelineStart' | 'onTimelineComplete' | 'onTimelineRepeat';
export interface ICallBack {
    mode?: IMode;
    moment?: number;
    ratio?: number;
    vars: IObject | IObject[];
    index: number;
    repeat?: number;
    timelineMoment?: number;
    targets?: IObject[] | IObject;
}
export interface ICallBackChange extends ICallBack {
    silence?: boolean;
    render?: boolean;
}
export interface ITimelineCallBack {
    mode: ITimeLineMode;
    moment: number;
    repeat: number;
    vars?: IObject[] | IObject;
    totalTime: number;
    targets?: IObject[] | IObject;
}
