import { Component } from "react"; export type EndHandler = (node: HTMLElement, done: () => void) => void; export type EnterHandler = (node: HTMLElement, isAppearing: boolean) => void; export type ExitHandler = (node: HTMLElement) => void; export const UNMOUNTED = 'unmounted'; export const EXITED = 'exited'; export const ENTERING = 'entering'; export const ENTERED = 'entered'; export const EXITING = 'exiting'; export interface TransitionActions { appear?: boolean; enter?: boolean; exit?: boolean; } export type TransitionStatus = typeof ENTERING | typeof ENTERED | typeof EXITING | typeof EXITED | typeof UNMOUNTED; export type TransitionChildren = React.ReactNode | ((status: TransitionStatus) => React.ReactNode); export interface TransitionProps extends TransitionActions { in?: boolean; mountOnEnter?: boolean; unmountOnExit?: boolean; timeout: number | { enter?: number, exit?: number }; addEndListener?: EndHandler; onEnter?: EnterHandler; onEntering?: EnterHandler; onEntered?: EnterHandler; onExit?: ExitHandler; onExiting?: ExitHandler; onExited?: ExitHandler; [prop: string]: any; children?: TransitionChildren; } /** * The Transition component lets you describe a transition from one component * state to another _over time_ with a simple declarative API. Most commonly * It's used to animate the mounting and unmounting of Component, but can also * be used to describe in-place transition states as well. * * By default the `Transition` component does not alter the behavior of the * component it renders, it only tracks "enter" and "exit" states for the components. * It's up to you to give meaning and effect to those states. For example we can * add styles to a component when it enters or exits: * * ```jsx * import Transition from 'react-transition-group/Transition'; * * const duration = 300; * * const defaultStyle = { * transition: `opacity ${duration}ms ease-in-out`, * opactity: 0, * } * * const transitionStyles = { * entering: { opacity: 1 }, * entered: { opacity: 1 }, * }; * * const Fade = ({ in: inProp }) => ( * * {(state) => ( *
* I'm A fade Transition! *
* )} *
* ); * ``` * */ declare class Transition extends Component {} export default Transition;