/// <reference types="react" />
import { ButtonProps } from '../Button/types';
import { DefaultAttributes } from '../types';
export declare type ModalSizes = 'small' | 'medium' | 'large';
export declare type ModalPositions = 'center' | 'top';
export declare type TitleModes = 'stacked' | 'truncated';
export declare type ModalActions = 'acknowledge' | 'confirm';
export declare type ModalVariants = 'wide' | 'narrow';
export declare type TModalTitle = {
    text: string | JSX.Element;
    mode?: TitleModes;
};
export declare type ModalActionButtonsProps = {
    text: string;
} & Partial<ButtonProps>;
export declare type ModalProps = DefaultAttributes & {
    isOpen: boolean;
    onClose: () => void;
    size: ModalSizes;
    className?: string;
    variant?: ModalVariants;
    title?: TModalTitle;
    modalRoot?: string | HTMLElement;
    shouldCloseOnEsc?: boolean;
    shouldCloseOnOverlayClick?: boolean;
    pinnedFooter?: boolean;
    hideCloseIcon?: boolean;
    position?: ModalPositions;
    action?: ModalActions;
    primaryAction?: ModalActionButtonsProps;
    dismissAction?: ModalActionButtonsProps;
    stackedActionButtons?: boolean;
    isLoading?: boolean;
};
export declare type DialogContentProps = DefaultAttributes & Pick<ModalProps, 'onClose' | 'pinnedFooter' | 'action' | 'variant' | 'hideCloseIcon' | 'title' | 'primaryAction' | 'dismissAction' | 'stackedActionButtons' | 'isLoading'>;
export declare type ModalActionsProps<T> = T;
export declare type ModalHeaderProps = DefaultAttributes & {
    className?: string;
    hideCloseIcon?: boolean;
    onClose: () => void;
    mode?: TitleModes;
    variant?: ModalVariants;
};
export declare type ModalContentProps = {
    className?: string;
    variant?: ModalVariants;
};
export declare type ModalAcknowledgeProps = ModalContentProps & {
    primaryAction: ModalActionButtonsProps;
    stackedActionButtons?: boolean;
    'data-testid'?: string;
    'data-trackid'?: string;
};
export declare type ModalConfirmProps = ModalContentProps & {
    primaryAction: ModalActionButtonsProps;
    dismissAction: ModalActionButtonsProps;
    stackedActionButtons?: boolean;
    'data-testid'?: string;
    'data-trackid'?: string;
};
export declare type ModalHeaderCSSProps = Pick<ModalHeaderProps, 'variant'>;
export declare type ModalTitleCSSProps = Pick<ModalHeaderProps, 'mode' | 'hideCloseIcon' | 'variant'>;
export declare type ModalContentCSSProps = Pick<ModalProps, 'pinnedFooter' | 'action' | 'stackedActionButtons' | 'variant'>;
export declare type ModalFooterCSSProps = Pick<ModalProps, 'pinnedFooter' | 'stackedActionButtons' | 'variant'>;
export declare type DialogCSSProps = Pick<ModalProps, 'size' | 'position' | 'variant'>;
