///
declare type MotionChildrenFunc = (props: {
className?: string;
}, ref?: React.MutableRefObject | React.RefCallback) => React.ReactNode;
export interface MotionProps {
destroyAfterLeave?: boolean;
leaveClassName?: string;
children: React.ReactNode | MotionChildrenFunc;
name?: string;
enter?: boolean;
onEnterPrepare?: (element: HTMLElement) => void;
onEnterStart?: (element: HTMLElement) => void;
onEnterActive?: (element: HTMLElement) => void;
onEnterEnd?: (element: HTMLElement) => void;
leave?: boolean;
onLeavePrepare?: (element: HTMLElement) => void;
onLeaveStart?: (element: HTMLElement) => void;
onLeaveActive?: (element: HTMLElement) => void;
onLeaveEnd?: (element: HTMLElement) => void;
visible?: boolean;
bindMotionElement?: (element: HTMLElement) => void;
}
export declare enum MotionStatus {
NONE = "none",
IGNORE_ENTER = "ignore_enter",
IGNORE_LEAVE = "ignore_leave",
APPEAR = "appear",
ENTER = "enter",
LEAVE = "leave"
}
export declare enum MotionStep {
NONE = "none",
PREPARE = "prepare",
START = "start",
ACTIVE = "active",
END = "end"
}
declare type TransitionType = 'fade' | 'collapse' | 'scale-y';
export interface TransitionProps extends React.DetailedHTMLProps, Tag> {
visible: boolean;
height?: number;
className?: string;
transitionTypes?: TransitionType[];
display?: React.CSSProperties['display'];
duration?: 'fast' | 'slow' | 'medium';
tag?: keyof HTMLElementTagNameMap;
destroyAfterLeave?: MotionProps['destroyAfterLeave'];
hideDisplayAfterLeave?: boolean;
bindMotionElement?: (element: HTMLElement) => void;
}
export {};