/** @module @airtable/blocks/ui: Dialog */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
import { DialogStyleProps } from './dialog';
/**
 * Props for the {@link ConfirmationDialog} component. Also accepts:
 * * {@link DialogStyleProps}
 *
 * @noInheritDoc
 * @docsPath UI/components/ConfirmationDialog
 */
interface ConfirmationDialogProps extends DialogStyleProps {
    /** Extra styles to apply to the dialog element. */
    style?: React.CSSProperties;
    /** The title of the dialog. */
    title: string;
    /** The label for the cancel button. Defaults to 'Cancel'. */
    cancelButtonText?: string;
    /** The label for the confirm button. Defaults to 'Confirm'. */
    confirmButtonText?: string;
    /** Whether the action is dangerous (potentially destructive or not easily reversible). Defaults to `false`. */
    isConfirmActionDangerous: boolean;
    /** Extra `className`s to apply to the dialog element, separated by spaces. */
    className?: string;
    /** The body of the dialog. When it’s a string it will automatically be wrapped in a Text component. */
    body?: React.ReactNode | string;
    /** Extra `className`s to apply to the background element, separated by spaces. */
    backgroundClassName?: string;
    /** Extra styles to apply to the background element. */
    backgroundStyle?: React.CSSProperties;
    /** Cancel button event handler. Handles click events and Space/Enter keypress events. */
    onCancel: () => unknown;
    /** Confirm button event handler. Handles click events and Space/Enter keypress events. */
    onConfirm: () => unknown;
    /** Whether the cancel button can be interacted with. Defaults to `false`. */
    isCancelButtonDisabled?: boolean;
    /** Whether the confirm button can be interacted with. Defaults to `false`. */
    isConfirmButtonDisabled?: boolean;
}
/**
 * A styled modal dialog component that prompts the user to confirm or cancel an action.
 *
 * [[ Story id="confirmationdialog--example" title="Confirmation dialog example" ]]
 *
 * By default, this component will focus the "Confirm" button on mount, so that pressing
 * the Enter key will confirm the action.
 *
 * @component
 * @docsPath UI/components/ConfirmationDialog
 */
declare class ConfirmationDialog extends React.Component<ConfirmationDialogProps> {
    /** @hidden */
    static propTypes: {
        title: PropTypes.Validator<string>;
        body: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        cancelButtonText: PropTypes.Requireable<string>;
        confirmButtonText: PropTypes.Requireable<string>;
        isConfirmActionDangerous: PropTypes.Requireable<boolean>;
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        backgroundClassName: PropTypes.Requireable<string>;
        backgroundStyle: PropTypes.Requireable<object>;
        onCancel: PropTypes.Validator<(...args: any[]) => any>;
        onConfirm: PropTypes.Validator<(...args: any[]) => any>;
        isCancelButtonDisabled: PropTypes.Requireable<boolean>;
        isConfirmButtonDisabled: PropTypes.Requireable<boolean>;
    };
    /** @hidden */
    static defaultProps: {
        cancelButtonText: string;
        confirmButtonText: string;
        isConfirmActionDangerous: boolean;
        isCancelButtonDisabled: boolean;
        isConfirmButtonDisabled: boolean;
        width: string;
    };
    /** @internal */
    _confirmButtonRef: React.RefObject<HTMLButtonElement>;
    /** @hidden */
    componentDidMount(): void;
    /** @hidden */
    render(): JSX.Element;
}
export default ConfirmationDialog;
