import { Component, ReactElement } from "react";
export enum modes {
out = "out-in",
in = "in-out",
}
export interface SwitchTransitionProps {
/**
* Transition modes.
* `out-in`: Current element transitions out first, then when complete, the new element transitions in.
* `in-out`: New element transitions in first, then when complete, the current element transitions out.
*/
mode?: "out-in" | "in-out" | undefined;
/**
* Any `Transition` or `CSSTransition` component
*/
children: ReactElement;
}
/**
* A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).
* You can use it when you want to control the render between state transitions.
* Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.
*
* If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.
* If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child
*
* ```jsx
* function App() {
* const [state, setState] = useState(false);
* return (
*
* node.addEventListener("transitionend", done, false)}
* classNames='fade' >
*
*
*
* )
* }
* ```
*/
declare class SwitchTransition extends Component {}
export default SwitchTransition;