import { SyntheticEvent } from "react";

export interface ChipListHandle {
  element: null | HTMLDivElement;
  props: ChipListProps;
}

export interface ChipListChangeEvent {
  syntheticEvent: SyntheticEvent<any>;
  target: ChipListHandle;
  value: any;
}

export interface KendoMouseEvent<T> {}

export interface ChipListDataChangeEvent {
  syntheticEvent: SyntheticEvent<any>;
  target: ChipListHandle;
  value: any;
}

export interface ChipListProps {
  dataTestId?: string;
  ariaDescribedBy?: string;
  ariaLabelledBy?: string;
  chip?: React.ComponentType<any>;
  className?: string;
  data?: any;
  defaultData?: any[];
  defaultValue?: any;
  dir?: string;
  disabled?: boolean;
  id?: string;
  name?: string;
  required?: boolean;
  selection?: string;
  size?: null | "small" | "medium" | "large";
  style?: React.CSSProperties;
  tabIndex?: number;
  textField?: string;
  valid?: boolean;
  validationMessage?: string;
  validityStyles?: boolean;
  value?: any;
  valueField?: string;
  onChange?: (event: ChipListChangeEvent) => void;
  onClick?: (args: any) => void;
  onDataChange?: (event: ChipListDataChangeEvent) => void;
  onDoubleClick?: (args: any) => void;
  onMouseDown?: (args: any) => void;
  onMouseEnter?: (args: any) => void;
  onMouseLeave?: (args: any) => void;
  onMouseMove?: (args: any) => void;
  onMouseOut?: (args: any) => void;
  onMouseOver?: (args: any) => void;
  onMouseUp?: (args: any) => void;
}
