import type { VNode } from 'vue';
import type { MaButtonProps } from '../button/types';
export declare const ModalPositions: readonly ["top", "right", "bottom", "left", "center", "topleft", "topright", "bottomleft", "bottomright"];
export type ModalPosition = (typeof ModalPositions)[number];
export declare const ConfirmModal2Types: readonly ["info", "success", "warning", "error"];
export type ConfirmModal2Type = (typeof ConfirmModal2Types)[number];
export interface ConfirmModal2Button extends Omit<MaButtonProps, 'href' | 'target' | 'htmlType'> {
    label?: string;
    onClick?: (event: MouseEvent) => void;
}
export interface Modal2Props {
    /**
     * Specifies the visibility of the modal
     */
    open: boolean;
    /**
     * Specifies the z-index of the modal mask overlay
     */
    zIndex?: number;
    /**
     * Vue native teleport component prop `:to`
     *
     * {@link https://vuejs.org/guide/built-ins/teleport.html#basic-usage}
     */
    to?: string | HTMLElement;
    /**
     * Whether to close the modal when the mask (area outside the modal) is clicked
     */
    maskClosable?: boolean;
    /**
     * Specifies if pressing escape key should hide the modal
     */
    closeOnEscape?: boolean;
    /**
     * Whether a full screen button is visible on top right of the modal or not
     */
    maximizable?: boolean;
    /**
     * Specifies the full screen of the modal.
     */
    maximized?: boolean;
    /**
     * Defines if background should be blocked when modal is displayed
     */
    showMaskOverlay?: boolean;
    /**
     * Whether a close button is visible on top right of the modal or not
     */
    showCloseButton?: boolean;
    /**
     * Position of the modal
     */
    position?: ModalPosition;
    /**
     * Custom CSS class for the modal root container element
     */
    rootClass?: string;
    /**
     * Custom CSS class for the modal mask overlay (backdrop)
     */
    maskClass?: string;
    /**
     * Sets the modals's title.
     */
    title?: string;
    /**
     * Object literal to define widths per screen size
     */
    breakpoints?: Record<string, string>;
    /**
     * Whether to apply no padding to the body
     */
    noSpace?: boolean;
}
export interface ConfirmModal2Props extends Omit<Modal2Props, 'title' | 'maximizable' | 'maximized' | 'showCloseButton'> {
    type?: ConfirmModal2Type;
    title?: string | VNode;
    description?: string | VNode;
    showCancelButton?: boolean;
    showOkButton?: boolean;
    cancelButtonProps?: Partial<ConfirmModal2Button>;
    okButtonProps?: Partial<ConfirmModal2Button>;
    icon?: string;
    noSpace?: boolean;
}
export interface Modal2Emits {
    /**
     * Emitted when the visible changes
     */
    'update:open': [value: boolean];
    /**
     * Emitted when the maximized changes
     */
    'update:maximized': [value: boolean];
    /**
     * Fired when the modal mask is clicked
     */
    'click:mask': [e: Event];
    /**
     * Fired when the close button is clicked
     */
    'click:close': [e: Event];
    /**
     * Fired when a modal visible changes
     */
    'change': [value: boolean];
    /**
     * Callback to invoke when modal is shown
     */
    'show': [];
    /**
     * Callback to invoke after modal is hidden
     */
    'closed': [];
}
export interface ConfirmModal2Emits {
    /**
     * Emitted when the visible changes
     */
    'update:open': [value: boolean];
}
export interface Modal2Slots {
    /**
     * Slot for the modals's header content
     * Typically used to display the title or controls
     */
    header: () => unknown;
    /**
     * Slot for customizing the modal's title
     * The close and maximize buttons will be automatically rendered based on props
     */
    title: () => unknown;
    /**
     * Slot for the modals's tab menu
     */
    tabs: () => unknown;
    /**
     * Default slot for the main content of the modals
     * Used to display the primary information or interactive elements
     */
    default: () => unknown;
    /**
     * Slot for the modals's footer content
     * Commonly used for action buttons or supplementary information
     */
    footer: () => unknown;
}
