import * as React from 'react';

export type AccordionItemButtonType = 'textButton' | 'button' | 'node';
export type AccordionItemShowLabel = 'hover' | 'always';

export interface AccordionItemCommonProps {
  title?: React.ReactNode;
  subtitle?: React.ReactNode;
  icon?: React.ReactNode;
  children?: React.ReactNode;
  expandLabel?: React.ReactNode;
  collapseLabel?: React.ReactNode;
  buttonType?: AccordionItemButtonType;
  showLabel?: AccordionItemShowLabel;
  className?: string;
  open?: boolean;
  initiallyOpen?: boolean;
  disabled?: boolean;
  onToggle?: React.MouseEventHandler<HTMLElement>;
  onMouseEnter?: React.MouseEventHandler<HTMLElement>;
  onMouseLeave?: React.MouseEventHandler<HTMLElement>;
}

export interface AccordionItemProps {
  skin?: 'light' | 'standard' | 'neutral';
  hideShadow?: boolean;
  size?: 'tiny' | 'small' | 'medium' | 'large';
  horizontalPadding?: 'tiny' | 'small' | 'medium' | 'large';
  transitionSpeed?: 'slow' | 'medium' | 'fast';
  onAnimationEnter?: void;
  onAnimationExit?: void;
}

export default class AccordionItem extends React.Component<
  AccordionItemProps & AccordionItemCommonProps
> {}
