import { default as React, ReactNode } from 'react';
import { BaseProps } from '../../../libraries/common-types/src/common-types';
export type DefaultProps = Omit<BaseProps, "children"> & {
    /**
     * One or several CTA links or buttons
     * */
    actions?: ReactNode;
    children: ReactNode;
    /**
     * An optional accessible description to be announced when the dialog is opened.
     * */
    description?: string;
    /**
     * Prevents the modal from closing on click outside if set to `true`.
     * */
    disableCloseOnClickOutside?: boolean;
    /**
     * Visually hides the description if set to `true`.
     * */
    hideDescription?: boolean;
    /**
     * An optional image to be displayed at the top of the modal.
     * */
    image?: ReactNode;
    /**
     * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.
     * */
    notification?: ReactNode;
    /**
     * Determines whether the button group should be fixed at the bottom or scroll with the content.
     * */
    stickyButtons?: boolean;
    /**
     * An accessible title to be announced when the dialog is opened.
     * */
    title: string;
    /**
     * z-index of the modal
     * */
    zIndex?: number;
    /**
     * Event handler called when focus moves to the trigger after closing.
     * */
    onCloseAutoFocus?: (e: Event) => void;
};
type NoCloseButtonProps = {
    /**
     * An accessible label for the close button.
     * */
    closeButtonAriaLabel?: never;
    /**
     * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.
     * */
    showCloseButton?: false;
};
type CloseButtonProps = {
    /**
     * An accessible label for the close button.
     * */
    closeButtonAriaLabel: string;
    /**
     * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.
     * */
    showCloseButton: true;
};
export type ModalContentProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);
export declare const ModalContent: React.ForwardRefExoticComponent<(Omit<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    /**
     * One or several CTA links or buttons
     * */
    actions?: ReactNode;
    children: ReactNode;
    /**
     * An optional accessible description to be announced when the dialog is opened.
     * */
    description?: string;
    /**
     * Prevents the modal from closing on click outside if set to `true`.
     * */
    disableCloseOnClickOutside?: boolean;
    /**
     * Visually hides the description if set to `true`.
     * */
    hideDescription?: boolean;
    /**
     * An optional image to be displayed at the top of the modal.
     * */
    image?: ReactNode;
    /**
     * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.
     * */
    notification?: ReactNode;
    /**
     * Determines whether the button group should be fixed at the bottom or scroll with the content.
     * */
    stickyButtons?: boolean;
    /**
     * An accessible title to be announced when the dialog is opened.
     * */
    title: string;
    /**
     * z-index of the modal
     * */
    zIndex?: number;
    /**
     * Event handler called when focus moves to the trigger after closing.
     * */
    onCloseAutoFocus?: (e: Event) => void;
} & NoCloseButtonProps, "ref"> | Omit<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    /**
     * One or several CTA links or buttons
     * */
    actions?: ReactNode;
    children: ReactNode;
    /**
     * An optional accessible description to be announced when the dialog is opened.
     * */
    description?: string;
    /**
     * Prevents the modal from closing on click outside if set to `true`.
     * */
    disableCloseOnClickOutside?: boolean;
    /**
     * Visually hides the description if set to `true`.
     * */
    hideDescription?: boolean;
    /**
     * An optional image to be displayed at the top of the modal.
     * */
    image?: ReactNode;
    /**
     * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.
     * */
    notification?: ReactNode;
    /**
     * Determines whether the button group should be fixed at the bottom or scroll with the content.
     * */
    stickyButtons?: boolean;
    /**
     * An accessible title to be announced when the dialog is opened.
     * */
    title: string;
    /**
     * z-index of the modal
     * */
    zIndex?: number;
    /**
     * Event handler called when focus moves to the trigger after closing.
     * */
    onCloseAutoFocus?: (e: Event) => void;
} & CloseButtonProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
export declare const MAX_NUMBER_OF_ACTIONS = 3;
export declare const ModalActions: ({ actions, notification, }: Pick<ModalContentProps, "actions" | "notification">) => React.JSX.Element | null;
export {};
//# sourceMappingURL=modal-content.d.ts.map