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

type CTAProps =
  | {|
      onClick?: (event: SyntheticEvent<HTMLButtonElement>) => void,
      type?: 'submit' | 'button',
    |}
  | {|
      href: string,
      target?: string,
    |};

export type SecondaryButtonProps = {|
  ...TestingProps,
  ...SpaceProps,
  ...StackeeProps,
  ...ContainerProps,
  ...CTAProps,
  ...StylableProps,
  disabled?: boolean,
  'aria-describedby'?: string,
  onBlur?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onFocus?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onMouseEnter?: (SyntheticFocusEvent<HTMLInputElement>) => void,
  onMouseLeave?: (SyntheticFocusEvent<HTMLInputElement>) => void,
|};
