export type ArrayElement = ArrayType extends readonly (infer ElementType)[] ? ElementType : never; export type Motion

= any> = boolean | MotionObject | MotionFunction

; export type MotionFunction

= (props: P) => MotionObject; export interface MotionObject { [x: string]: any; children?: React.ReactNode | ((props: MotionChildrenProps) => React.ReactNode); willEnter?: () => void; didEnter?: () => void; willLeave?: () => void; didLeave?: () => void; onStart?: () => void; onRest?: () => void; state?: string; } export interface MotionChildrenProps { animateCls?: string; animateStyle?: { animationTimingFunction?: string; animationName?: string; animationDuration?: number | string; animationDelay?: number | string; animationIterationCount?: number | string; animationDirection?: 'alternate' | 'normal'; animationFillMode?: string; }; animateEvents?: { onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; }; }