import React from 'react';
import { SemanticVariant } from '../../constants';
export interface ActionModalProps {
    /** Optional message override to show when the `onAction` prop has exceeded the `actionSlowTimeout` time. */
    actionSlowMsg?: React.ReactNode;
    /** If the `onAction` prop is a Promise, this number will be the timeout to let the user press the cancel button, if `onCancel` prop is provided. The default is 7500 (7.5 sec). */
    actionSlowTimeout?: number;
    /** Text to display on action button. */
    actionText?: React.ReactNode;
    /** Main content of the modal. */
    body: React.ReactNode;
    /** `true` by default, the `onCancel` prop will be called after the `onAction` function is called (and resolved if it's a Promise)   */
    cancelAfterAction?: boolean;
    /** Text to display on cancel button. */
    cancelText?: React.ReactNode;
    /** If true, modal will close when pressing the `Esc` key. */
    escPressClose?: boolean;
    /** SVG Icon to go along with the body. */
    icon?: React.ReactElement | React.ReactSVGElement;
    /** Callback to be trigger when action button has been pressed. If it's a Promise it will be awaited. */
    onAction: () => void | Promise<any>;
    /** Callback to be triggered when cancel button has been pressed */
    onCancel?: () => void;
    /** Title to be displayed on top of the body */
    title?: React.ReactNode;
    /** Semantic variant of button */
    variant?: SemanticVariant;
}
declare const ActionModal: ({ actionSlowMsg, actionSlowTimeout, actionText, body, cancelAfterAction, cancelText, escPressClose, icon, onAction, onCancel, title, variant, }: ActionModalProps) => React.ReactElement;
export { ActionModal };
