import _keys from "lodash/fp/keys";
import PropTypes from 'prop-types';
import ButtonLink from '../../atom/button-link';
import InputSwitch from '../../atom/input-switch';
import Title from '../../atom/title';
import Link from '../../atom/link';
import CardsGrid from '../../organism/cards-grid';
import ListItems from '../../organism/list-items';
import { ICONS } from '../../util/button-icons';
import { propTypes as iconPropTypes } from '../../atom/icon';
const propTypes = {
  content: PropTypes.string,
  mode: PropTypes.oneOf(['alert', 'information', 'cookie', 'items', 'list']),
  header: PropTypes.shape({
    title: PropTypes.shape(Title.propTypes),
    headerIcon: PropTypes.string,
    backgroundImage: PropTypes.string
  }),
  firstButton: PropTypes.shape({
    label: PropTypes.string,
    handleOnclick: PropTypes.func,
    'aria-label': PropTypes.string,
    largeButton: PropTypes.bool,
    type: PropTypes.oneOf(['dangerous', 'primary', 'secondary', 'tertiary']),
    customStyle: ButtonLink.propTypes.customStyle
  }),
  secondButton: PropTypes.shape({
    label: PropTypes.string,
    handleOnclick: PropTypes.func,
    type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),
    'aria-label': PropTypes.string,
    largeButton: PropTypes.bool,
    customStyle: ButtonLink.propTypes.customStyle,
    icon: PropTypes.shape({
      position: PropTypes.oneOf(['right', 'left']),
      type: PropTypes.oneOf(_keys(ICONS))
    })
  }),
  thirdButton: PropTypes.shape({
    label: PropTypes.string,
    handleOnclick: PropTypes.func,
    type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),
    'aria-label': PropTypes.string,
    largeButton: PropTypes.bool,
    customStyle: ButtonLink.propTypes.customStyle
  }),
  onClose: PropTypes.func,
  icon: PropTypes.oneOfType([PropTypes.string, PropTypes.shape(iconPropTypes)]),
  backgroundImageUrl: PropTypes.string,
  descriptionText: PropTypes.string,
  cookieTitle: PropTypes.string,
  headerSubtitle: PropTypes.string,
  descriptionBtnTxt: PropTypes.string,
  listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes)),
  items: PropTypes.shape({
    type: PropTypes.oneOf(['content', 'list']),
    list: PropTypes.oneOfType([PropTypes.shape(CardsGrid.propTypes), PropTypes.shape(ListItems.propTypes)])
  }),
  link: PropTypes.shape(Link.propTypes)
};
export default propTypes;
//# sourceMappingURL=types.js.map