/**
 * Flowtype definitions for AlertBase
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.21.0
 * @flow
 */

import * as $Flowgen$Import$styled_2d_components from "styled-components";
import * as $Flowgen$Import$react from "react";
import Button from "@littlespoon/button";
import Typography from "@littlespoon/ui/Typography";
import { AlertTypes, AlertVariant } from "./Alert";
declare export var AlertWrapper: $Flowgen$Import$styled_2d_components.StyledComponent<
  "div",
  any,
  {
    ...{
      title?: string | void,
      variant?: $Values<typeof AlertVariant> | void,
      type?: $Values<typeof AlertTypes> | void,
      showCloseButton?: boolean | void,
      closeButtonTitle?: string | void,
      isOpen?: boolean | void,
      delay?: number | void,
      stackIndex?: number | void,
      ...
    },
    ...{
      children?: $Flowgen$Import$react.Node,
      ...
    },
  },
  empty
>;
declare export var AlertMessages: $Flowgen$Import$styled_2d_components.StyledComponent<
  "div",
  any,
  | $Rest<
      {
        ...{
          title?: string | void,
          variant?: $Values<typeof AlertVariant> | void,
          type?: $Values<typeof AlertTypes> | void,
          showCloseButton?: boolean | void,
          closeButtonTitle?: string | void,
          isOpen?: boolean | void,
          delay?: number | void,
          stackIndex?: number | void,
          ...
        },
        ...{
          children?: $Flowgen$Import$react.Node,
          ...
        },
        ...{
          type: typeof AlertTypes.TOAST,
          delay?: number | void,
          showCloseButton: boolean,
          onClose: () => void,
          ...
        },
        ...$Flowgen$Import$react.HTMLAttributes<HTMLElement>,
      },
      { ... }
    >
  | $Rest<
      {
        ...{
          title?: string | void,
          variant?: $Values<typeof AlertVariant> | void,
          type?: $Values<typeof AlertTypes> | void,
          showCloseButton?: boolean | void,
          closeButtonTitle?: string | void,
          isOpen?: boolean | void,
          delay?: number | void,
          stackIndex?: number | void,
          ...
        },
        ...{
          children?: $Flowgen$Import$react.Node,
          ...
        },
        ...{
          type: typeof AlertTypes.RELATIVE | typeof AlertTypes.BANNER,
          showCloseButton: boolean,
          onClose?: (() => void) | void,
          ...
        },
        ...$Flowgen$Import$react.HTMLAttributes<HTMLElement>,
      },
      { ... }
    >
  | $Rest<
      {
        ...{
          title?: string | void,
          variant?: $Values<typeof AlertVariant> | void,
          type?: $Values<typeof AlertTypes> | void,
          showCloseButton?: boolean | void,
          closeButtonTitle?: string | void,
          isOpen?: boolean | void,
          delay?: number | void,
          stackIndex?: number | void,
          ...
        },
        ...{
          children?: $Flowgen$Import$react.Node,
          ...
        },
        ...{
          type?: typeof AlertTypes.RELATIVE | typeof AlertTypes.BANNER | void,
          onClose?: (() => void) | void,
          ...
        },
        ...$Flowgen$Import$react.HTMLAttributes<HTMLElement>,
      },
      { ... }
    >,
  empty
>;
declare export var AlertDescription: $Flowgen$Import$styled_2d_components.StyledComponent<
  typeof Typography,
  any,
  {
    noMargin: true,
    variant: {
      0: "p4",
      1000: "p3",
      ...
    },
    ...
  },
  "variant" | "noMargin"
>;
declare export var IconWrapper: $Flowgen$Import$styled_2d_components.StyledComponent<
  "div",
  any,
  { ... },
  empty
>;
declare export var AlertCloseButton: $Flowgen$Import$styled_2d_components.StyledComponent<
  typeof Button,
  any,
  { ... },
  empty
>;
