// @flow
import type { SpaceProps } from '../../../mixins/spacing';
import type { ContainerProps } from '../../../mixins/container';
import type { TestingProps } from '../../../mixins/testing';

export type ButtonProps = {|
  ...SpaceProps,
  ...ContainerProps,
  ...TestingProps,
  'aria-describedby'?: string,
  disabled?: boolean,
  size?: 'sm' | 'md',
  type?: 'submit' | 'button',
  onBlur?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onClick?: (event: SyntheticEvent<HTMLButtonElement>) => void,
  onFocus?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onMouseEnter?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onMouseLeave?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  href?: string,
  target?: string,
|};
