// @flow /* DOCUMENTATION: https://orbit.kiwi/components/toast/ */ import * as React from "react"; import type { Globals } from "../common/common.js.flow"; export type Placement = | "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right"; export type Toast = {| +id: string, +icon?: React.Element, +visible?: boolean, +children: React.Node, +dismissTimeout?: number, +onUpdateHeight: (id: string, height: number) => void, +onMouseEnter: () => void, +onMouseLeave: () => void, +onDismiss: () => void, +placement: Placement, +offset?: number, +ariaLive: "polite" | "assertive", |}; export type Props = {| +topOffset?: number, +leftOffset?: number, +rightOffset?: number, +bottomOffset?: number, +gutter?: number, +dismissTimeout?: number, +placement?: Placement, ...Globals, |}; type Options = {| icon?: React.Element, loading?: React.Node, success?: string | ((data: any) => string), error?: string | ((err: any) => string), |}; export type createToastType = ( message: React.Node, options?: {| icon?: React.Element |}, ) => void; export type createToastPromiseType = (promise: Promise, options?: Options) => Promise; declare export var ToastRoot: React.ComponentType; declare export var createToast: createToastType; declare export var createToastPromise: createToastPromiseType;