import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { StyledAnimationProps, StyledAnimateStyleType } from './StyledAnimation'; import noop from './utils/noop'; export interface ChildFCType { animateCls?: string; animateStyle?: StyledAnimateStyleType; animateEvents?: (eventProps?: any) => void; } export interface StyledTransitionProps extends StyledAnimationProps { state?: string | boolean; enter?: string; leave?: string; children?: React.ReactNode | ((TransitionProps: ChildFCType) => React.ReactNode | any); willEnter?: (value: any) => void; didEnter?: (value: any) => void; willLeave?: (value: any) => void; didLeave?: (value: any) => void; onStart?: (value: any) => void; onRest?: (value: any) => void; } export interface StyledTransitionState { state: string | boolean; lastChildren: React.ReactNode | ((TransitionProps: ChildFCType) => React.ReactNode | any); currentChildren: React.ReactNode | ((TransitionProps: ChildFCType) => React.ReactNode | any); } export default class StyledTransition extends Component { static propTypes: { state: PropTypes.Requireable; enter: PropTypes.Requireable; leave: PropTypes.Requireable; children: PropTypes.Requireable; willEnter: PropTypes.Requireable<(...args: any[]) => any>; didEnter: PropTypes.Requireable<(...args: any[]) => any>; willLeave: PropTypes.Requireable<(...args: any[]) => any>; didLeave: PropTypes.Requireable<(...args: any[]) => any>; onStart: PropTypes.Requireable<(...args: any[]) => any>; onRest: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { willEnter: typeof noop; didEnter: typeof noop; willLeave: typeof noop; didLeave: typeof noop; onStart: typeof noop; onRest: typeof noop; }; constructor(props?: {}); static getDerivedStateFromProps(props: StyledTransitionProps, state: StyledTransitionState): Partial; _isControlled: () => boolean; onRest: (props: any) => void; onStart: (props: any) => void; render(): React.JSX.Element; }