import { Pager as KendoPager } from "@progress/kendo-react-data-tools";

export interface PagerTargetEvent {
  [key: string]: any;
  target?: any;
  value?: any;
}
export interface BasePageChangeEvent {
  skip: number;
  take: number;
  syntheticEvent?: React.SyntheticEvent<any>;
  nativeEvent?: any;
  targetEvent?: PagerTargetEvent;
}

export interface PageChangeEvent extends BasePageChangeEvent {
  target: KendoPager;
  syntheticEvent: React.SyntheticEvent<any>;
  nativeEvent: any;
  targetEvent: PagerTargetEvent;
}

export interface PagerProps {
  dataTestId?: string;
  id?: string;
  buttonCount?: number;
  className?: string;
  dir?: string;
  info?: boolean;
  onPageChange?:
    | ((event: PageChangeEvent) => void)
    | ((event: BasePageChangeEvent) => void);

  pageSizes?: number[] | undefined[];
  pageSizeValue?: string | number;
  previousNext?: boolean;
  responsive?: boolean;
  size?: null | "small" | "medium" | "large";
  skip: number;
  style?: React.CSSProperties;
  take: number;
  total: number;
  type?: "input" | "numeric";
  messagesMap?: (messageKey: string) => {
    defaultMessage: string;
    messageKey: string;
  };
}
