import { DialogContentEmits, DialogContentProps } from 'reka-ui';
/**
 * Shared props for UiDialog subcomponents.
 */
export type UiDialogSubComponentCommonProps = {
    /** Render as a child element instead of wrapping. */
    asChild?: boolean;
};
/**
 * Allowed Tailwind `max-w-*` utilities for {@link UiDialogContentProps.maxWidth}.
 * Prefer these over arbitrary class strings so MCP and consumers get a closed set.
 */
export type UiDialogContentMaxWidth = 'max-w-sm' | 'max-w-md' | 'max-w-lg' | 'max-w-xl' | 'max-w-2xl' | 'max-w-3xl' | 'max-w-4xl' | 'max-w-5xl' | 'max-w-6xl' | 'max-w-7xl' | 'max-w-full' | 'max-w-none' | 'max-w-[50vw]';
/**
 * A modal dialog for focused tasks and content. Description and `#actions` are optional.
 * @category Overlays
 * @useCases forms, details, multi-step flows, rich content
 * @keywords dialog, modal, overlay, popup
 * @related UiAlertDialog, UiSheet, UiDrawer
 */
export type UiDialogProps = {
    /**
     * The controlled open state of the dialog.
     * Use `v-model:open` for controlled mode.
     */
    open?: boolean;
    /**
     * When set to `true`, interaction with outside elements is disabled and focus is trapped.
     * @default true
     */
    modal?: boolean;
};
/**
 * Props for UiDialogTrigger.
 * @category Overlays
 * @useCases opening a dialog from buttons, links, or custom controls
 */
export type UiDialogTriggerProps = UiDialogSubComponentCommonProps & {};
/**
 * Props for UiDialogClose.
 * @category Overlays
 * @useCases closing a dialog from footer actions or icon buttons
 */
export type UiDialogCloseProps = UiDialogSubComponentCommonProps & {};
/**
 * Props for UiDialogContent (optional `title` / `description`, slots: `header`, default body, `actions`).
 * @category Overlays
 * @useCases confirmations, forms, file pickers, settings panels
 */
export type UiDialogContentProps = UiDialogSubComponentCommonProps & DialogContentProps & {
    /**
     * Optional dialog title (maps to `DialogTitle`).
     */
    title?: string;
    /**
     * Optional supporting text below the title (maps to `DialogDescription`).
     */
    description?: string;
    /**
     * Screen-reader-only label when no `title` is provided (accessibility).
     * @default 'Dialog'
     */
    ariaTitle?: string;
    /**
     * Accessible name for the built-in header close button (when `showCloseButton` is true).
     * @default 'Close dialog'
     */
    ariaLabelCloseDialog?: string;
    /**
     * Tailwind max-width utility for the panel. Defaults to **`max-w-[50vw]`** (half the viewport).
     */
    maxWidth?: UiDialogContentMaxWidth;
    /**
     * When `true` and you are **not** using the `#header` slot, shows a header **Close** control (icon button).
     * Set to `false` if the dialog is closed only via `#actions` or programmatically.
     * @default true
     */
    showCloseButton?: boolean;
};
/** Emits forwarded from `DialogContent` (reka-ui). */
export type UiDialogContentEmits = DialogContentEmits;
/**
 * Props for UiDialogHeader.
 * @category Overlays
 * @useCases grouping title and description in a custom `#header` slot
 */
export type UiDialogHeaderProps = Record<string, never>;
/**
 * Props for UiDialogFooter.
 * @category Overlays
 * @useCases action button rows in `#actions` or manual footer composition
 */
export type UiDialogFooterProps = Record<string, never>;
/**
 * Props for UiDialogTitle.
 * @category Overlays
 * @useCases accessible dialog titles in custom headers
 */
export type UiDialogTitleProps = {
    /** Render as a child element instead of wrapping. */
    asChild?: UiDialogSubComponentCommonProps['asChild'];
};
/**
 * Props for UiDialogDescription.
 * @category Overlays
 * @useCases supplementary copy under the title
 */
export type UiDialogDescriptionProps = {
    /** Render as a child element instead of wrapping. */
    asChild?: UiDialogSubComponentCommonProps['asChild'];
};
