import { Tooltip as KendoTooltip } from "@progress/kendo-react-tooltip";

export interface TooltipProps {
  dataTestId?: string;
  anchorElement?: string;
  appendTo?: null | HTMLElement;
  children?: any;
  className?: string;
  content?: any | string;
  id?: string;
  open?: boolean;
  openDelay?: number;
  parentTitle?: boolean;
  position?: "auto" | "right" | "left" | "bottom" | "top";
  showCallout?: boolean;
  style?: React.CSSProperties;
  targetElement?: any;
  tooltipClassName?: string;
  tooltipStyle?: React.CSSProperties;
  updateInterval?: number;
  filter?: (target: HTMLElement) => boolean;
  onClose?: (event: TooltipEvent) => void;
  onOpen?: (event: TooltipEvent) => void;
  onPosition?: (event: TooltipPositionEvent) => { left: number; top: number };
}

interface TooltipEvent {
  nativeEvent: any;
  syntheticEvent: React.SyntheticEvent<any>;
  target: KendoTooltip;
}

interface TooltipPositionEvent {
  anchorElement?: string;
  element: HTMLDivElement;
  mouseLeft: number;
  mouseTop: number;
  nativeEvent: any;
  position?: TooltipPosition;
  syntheticEvent: React.SyntheticEvent<any>;
  target: KendoTooltip;
  targetElement: HTMLElement | null;
}

type TooltipPosition = "auto" | "right" | "left" | "bottom" | "top";
