import { ReactNode } from "react";
import { AnimationChild as KendoAnimationChild } from "@progress/kendo-react-animation";

export interface AnimationEventArguments {
  animatedElement: HTMLElement;
  target: KendoAnimationChild;
}

type PushDirection = "up" | "down" | "left" | "right";

export interface PushProps {
  dataTestId?: string;
  children: ReactNode;
  appear?: boolean;
  childFactory?: any;
  className?: string;
  component?: string;
  componentChildClassName?: string;
  componentChildStyle?: any;
  direction?: PushDirection;
  enter?: boolean;
  exit?: boolean;
  id?: string;
  mountOnEnter?: boolean;
  stackChildren?: boolean;
  style?: any;
  transitionEnterDuration?: number;
  transitionExitDuration?: number;
  unmountOnExit?: boolean;
  onEnter?: (event: AnimationEventArguments) => void;
  onEntered?: (event: AnimationEventArguments) => void;
  onEntering?: (event: AnimationEventArguments) => void;
  onExit?: (event: AnimationEventArguments) => void;
  onExited?: (event: AnimationEventArguments) => void;
  onExiting?: (event: AnimationEventArguments) => void;
}
