import type { Component, HTMLAttributes, VNode } from 'vue';
import { type OUIAProps } from '../../helpers/ouia';
import { type ModalTitleIconVariant } from './common';
interface Props extends OUIAProps, /* @vue-ignore */ Omit {
/** Flag to show the modal */
open?: boolean;
/** Flag to remove the close button in the header area of the modal */
noClose?: boolean;
/** Flag indicating if loose modal content should not be placed in a modal body wrapper */
noBodyWrapper?: boolean;
/** Flag to disable focus trap */
disableFocusTrap?: boolean;
/** The element to focus when the modal opens. By default the first
* focusable element will receive focus.
*/
elementToFocus?: HTMLElement | SVGElement | string;
/** Id of the focus trap, to append menus to it so that they break out of the modal box */
focusTrapId?: string;
/** Additional classes added to the modal backdrop */
backdropClass?: HTMLAttributes['class'];
/** Simple text content of the Modal Header, also used for aria-label on the body */
title?: string;
/** Optional title label text for screen readers */
titleLabel?: string;
/** Optional alert icon (or other) to show before the title of the Modal Header
* When the predefined alert types are used the default styling
* will be automatically applied */
titleIconVariant?: ModalTitleIconVariant;
/** The parent container to append the modal to. Defaults to document.body */
appendTo?: HTMLElement | string | (() => HTMLElement);
/** Id of Modal Box description */
ariaDescribedby?: string;
/** Variant of the modal */
variant?: 'default' | 'small' | 'medium' | 'large';
/** Default width of the modal. */
width?: number | string;
/** Maximum width of the modal. */
maxWidth?: number | string;
/** Alternate position of the modal */
position?: 'default' | 'top';
/** Offset from alternate position. Can be any valid CSS length/percentage */
positionOffset?: string;
/** Id of the ModalBoxBody */
descriptorId?: string;
component?: string | Component;
/** Flag to disable animations. */
noAnimations?: boolean;
/** Called when Escape is pressed while the modal is open, in place of closing it */
onEscapePress?: (event: KeyboardEvent) => void;
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: __VLS_WithSlots any;
}, string, import("vue").PublicProps, Readonly & Readonly<{
"onUpdate:open"?: ((value: boolean) => any) | undefined;
}>, {
component: string | Component;
variant: "default" | "small" | "large" | "medium";
ouiaSafe: boolean;
position: "default" | "top";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
/** Content of the modal: wrapped in a modal body unless it is made of pf-modal-header, pf-modal-body and pf-modal-footer */
default?: (props?: Record) => VNode[];
/** Custom content of the modal header, replacing the title and the description */
header?: (props?: Record) => VNode[];
/** Content of the modal footer */
footer?: (props?: Record) => VNode[];
/** Help section of the modal header */
help?: (props?: Record) => VNode[];
/** Description of the modal, in the header */
description?: (props?: Record) => VNode[];
/** Custom icon shown before the title */
'title-icon'?: (props?: Record) => VNode[];
}>;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};
//# sourceMappingURL=Modal.vue.d.ts.map