import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import noop from './utils/noop'; export interface AnimationProps { onStart?: Function; onFrame?: Function; onPause?: Function; onResume?: Function; onStop?: Function; onRest?: Function; children?: React.ReactNode | ((AnimationChildProps?: any) => React.ReactNode); from?: Record; to?: Record; reverse?: boolean; reset?: boolean; force?: boolean; config?: Record; autoStart?: boolean; forwardInstance?: (value: any) => void; immediate?: boolean; } export default class Animation extends PureComponent { static propTypes: { onStart: PropTypes.Requireable<(...args: any[]) => any>; onFrame: PropTypes.Requireable<(...args: any[]) => any>; onPause: PropTypes.Requireable<(...args: any[]) => any>; onResume: PropTypes.Requireable<(...args: any[]) => any>; onStop: PropTypes.Requireable<(...args: any[]) => any>; onRest: PropTypes.Requireable<(...args: any[]) => any>; children: PropTypes.Requireable; from: PropTypes.Requireable; to: PropTypes.Requireable; reverse: PropTypes.Requireable; reset: PropTypes.Requireable; force: PropTypes.Requireable; config: PropTypes.Requireable; autoStart: PropTypes.Requireable; forwardInstance: PropTypes.Requireable<(...args: any[]) => any>; immediate: PropTypes.Requireable; }; static defaultProps: { autoStart: boolean; force: boolean; onStart: typeof noop; onFrame: typeof noop; onPause: typeof noop; onResume: typeof noop; onStop: typeof noop; onRest: typeof noop; }; _mounted: boolean; _destroyed: boolean; animation: any; reverse: () => void; destroy: () => void; reset: () => void; resume: () => void; end: () => void; stop: () => void; pause: () => void; start: () => void; constructor(props?: {}); startOrNot(): void; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps?: AnimationProps): void; initAnimation: (props?: AnimationProps) => void; bindEvents: () => void; render(): React.ReactNode; }