// @flow
import type { Node } from 'react';
import type { SpaceProps } from '../../../mixins/spacing';
import type { StackedProps } from '../../../mixins/stacking';
import type { TranslatedContent } from '../../../types';
import type { StylableProps } from '../../../mixins/themes';
import type { TestingProps } from '../../../mixins/testing';

export type ModalBreakpoints = 'sm' | 'md' | 'lg' | 'xl';

export type ModalProps = {|
  ...StylableProps,
  ...TestingProps,
  show: boolean,
  persistent?: boolean,
  onClose: () => void,
  size?: ModalBreakpoints,
  children: Node,
  headerText?: TranslatedContent,
  hideHeader?: boolean,
  refToRestoreFocus?: { current: HTMLElement | null },
  ...SpaceProps,
  ...StackedProps,
|};
