import { SVGIcon } from "@progress/kendo-react-common";

interface ChipHandle {
  element: null | HTMLDivElement;
  props: ChipProps;
}
interface ChipFocusEvent {
  syntheticEvent: React.FocusEvent<any>;
  target: ChipHandle;
}

interface ChipMouseEvent {
  syntheticEvent: React.MouseEvent<any>;
  target: ChipHandle;
}
interface ChipKeyboardEvent {
  syntheticEvent: React.KeyboardEvent<any>;
  target: ChipHandle;
}

interface ChipRemoveEvent {
  syntheticEvent: React.SyntheticEvent<any>;
  target: ChipHandle;
}
export interface ChipProps {
  dataTestId?: string;
  ariaDescribedBy?: string;
  children?: React.ReactNode;
  className?: string;
  dataItem?: any;
  dir?: string;
  disabled?: boolean;
  fillMode?: null | "outline" | "solid";
  icon?: string;
  id?: string;
  removable?: boolean;
  removeIcon?: string;
  removeSvgIcon?: SVGIcon;
  rounded?: null | "small" | "medium" | "full" | "large";
  selected?: boolean;
  selectedIcon?: string;
  selectedSvgIcon?: SVGIcon;
  size?: null | "small" | "medium" | "large";
  style?: React.CSSProperties;
  svgIcon?: SVGIcon;
  tabIndex?: number;
  text?: string;
  themeColor?: null | "error" | "base" | "success" | "info" | "warning";
  value?: any;
  onBlur?: (event: ChipFocusEvent) => void;
  onClick?: (event: ChipMouseEvent) => void;
  onDoubleClick?: (event: ChipMouseEvent) => void;
  onFocus?: (event: ChipFocusEvent) => void;
  onKeyDown?: (event: ChipKeyboardEvent) => void;
  onMouseDown?: (event: ChipMouseEvent) => void;
  onMouseEnter?: (event: ChipMouseEvent) => void;
  onMouseLeave?: (event: ChipMouseEvent) => void;
  onMouseMove?: (event: ChipMouseEvent) => void;
  onMouseOut?: (event: ChipMouseEvent) => void;
  onMouseOver?: (event: ChipMouseEvent) => void;
  onMouseUp?: (event: ChipMouseEvent) => void;
  onRemove?: (event: ChipRemoveEvent) => void;
}
