import { Component, ReactNode, ReactChild } from 'react'; export interface AnimateHooks { beforeAppear?: () => void; onAppear?: (node?: HTMLElement) => void; afterAppear?: (node?: HTMLElement) => void; beforeEnter?: (node?: HTMLElement) => void; onEnter?: (node?: HTMLElement) => void; afterEnter?: (node?: HTMLElement) => void; beforeLeave?: (node?: HTMLElement) => void; afterLeave?: (node?: HTMLElement) => void; onLeave?: (node?: HTMLElement) => void; } export declare type AnimateProps = { animation: string | { appear: string; enter: string; leave: string; }; animationAppear: boolean; component: ReactNode | string; singleMode: boolean; children: ReactNode; timeout?: number | { appear?: number; enter?: number; exit?: number; }; } & AnimateHooks; export declare type KeyedReactNode = ReactChild & { key: any; }; declare class Animate extends Component { static propTypes: { animation: any; animationAppear: any; component: any; singleMode: any; children: any; beforeAppear: any; onAppear: any; afterAppear: any; beforeEnter: any; onEnter: any; afterEnter: any; beforeLeave: any; onLeave: any; afterLeave: any; timeout: any; }; static defaultProps: { animationAppear: boolean; component: string; singleMode: boolean; beforeAppear: () => void; onAppear: () => void; afterAppear: () => void; beforeEnter: () => void; onEnter: () => void; afterEnter: () => void; beforeLeave: () => void; onLeave: () => void; afterLeave: () => void; }; normalizeNames(names: any): { appear: any; appearActive: string; enter: string; enterActive: string; leave: string; leaveActive: string; }; render(): JSX.Element; } export default Animate;