import * as React from 'react';
import type { ProportionProps } from '../Proportion';
import { DragHandlePublicAPIProps } from '../DragHandle/DragHandle';

export interface CardGalleryItemProps {
  badge?: React.ReactNode;
  title?: React.ReactNode;
  subtitle?: React.ReactNode;
  suffix?: React.ReactNode;
  draggable?: boolean;
  dragHandleProps?: Partial<DragHandlePublicAPIProps>;
  dragging?: boolean;
  droppable?: boolean;
  dragDisabled?: boolean;
  tabIndex?: number;
  size?: 'small' | 'medium';
  backgroundImageUrl?: string;
  backgroundImageNode?: React.ReactNode;
  primaryActionProps: {
    label?: React.ReactNode;
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
    disabled?: boolean;
    disabledMessage?: string;
  };
  secondaryActionProps?: {
    label?: React.ReactNode;
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
  };
  settingsMenu?: React.ReactNode;
  dataHook?: string;
  aspectRatio?: ProportionProps['aspectRatio'];
  imagePlacement?: 'top' | 'side';
  showSuffixOnHover?: boolean;
}

export default class CardGalleryItem extends React.PureComponent<CardGalleryItemProps> {}
