import { type ReactNode, type RefObject } from "react";
import { DialogContent } from "src/primitives/Dialog";
export type AlertStyle = "danger" | "warning";
export type AlertSize = "small" | "medium" | "large";
type InitialFocusElement = "submit" | "cancel";
/** Radix Dialog.Content props we forward via ...otherProps. */
type DialogContentProps = React.ComponentProps<typeof DialogContent>;
export interface AlertProps extends Omit<DialogContentProps, "children" | "role" | "showCloseButton" | "className" | "style" | "onEscapeKeyDown" | "onInteractOutside"> {
    /** Size of the alert dialog. */
    size?: AlertSize;
    /** Whether the alert is open. */
    isOpen?: boolean;
    /** Whether the submit action is in progress. */
    isSubmitting?: boolean;
    /** Additional CSS class names applied to the dialog content. */
    className?: string;
    /** Close on pressing the Esc key. */
    closeOnEsc?: boolean;
    /** Show the close button. */
    closeButton?: boolean;
    /** Additional CSS class names applied to the backdrop/overlay. */
    backdropClassName?: string;
    /** Close on clicking outside the dialog. */
    closeOnOutsideClick?: boolean;
    /** Callback invoked when the alert is closed. */
    onClose?: () => void;
    /** Callback invoked when the submit button is clicked. */
    onSubmit?: () => void;
    /** Title text of the alert. */
    title?: string;
    /** Message content of the alert. */
    message?: ReactNode;
    /** Label for the submit button. */
    submitButtonLabel?: string;
    /** Label for the cancel button. */
    cancelButtonLabel?: string;
    /** Hide the cancel button. */
    hideCancelButton?: boolean;
    /** Visual style of the submit button. */
    style?: AlertStyle;
    /** Ref of the element to receive focus when the alert opens. */
    initialFocusRef?: RefObject<HTMLElement | null>;
    /** Which built-in button receives focus on open: "submit" or "cancel". */
    initialFocusElement?: InitialFocusElement;
    /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */
    modal?: boolean;
    /** Radix Dialog `defaultOpen` prop. */
    defaultOpen?: boolean;
}
declare const Alert: import("react").ForwardRefExoticComponent<Omit<AlertProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
export { Alert };
