import { ReactNode } from 'react';
import { ClosingButtonProps } from '../../../buttons/closing-button/closing-button';
export interface ModalHeaderProps {
/**
* Title text. Rendered as an `
` and automatically registered as the modal's
* `aria-labelledby`. Pass `children` instead for full control of the title markup.
*/
title?: ReactNode;
/**
* Description text below the title. Automatically registered as the modal's
* `aria-describedby`.
*/
description?: ReactNode;
/**
* Show the closing button.
* @default true
*/
closeButton?: boolean;
/**
* Forwarded to the closing button — use to override size, title, etc.
*/
closeButtonProps?: Omit;
/**
* Replaces the default title/description layout entirely. When set, `title` and
* `description` are ignored.
*
* Accessibility note: the automatic `aria-labelledby` / `aria-describedby` wiring
* only fires for the `title` / `description` props. With `children` you need to
* connect them yourself — call `useModal()` to read `labelId` / `descriptionId`
* and put them on the right elements:
*
* ```tsx
* function CustomHeader() {
* const { labelId, descriptionId, onOpenChange } = useModal();
* return (
*
* Custom title
* Supporting text
* onOpenChange(false)} />
*
* );
* }
* ```
*
* Alternatively, set `aria-labelledby` / `aria-describedby` explicitly on
* `` pointing at IDs you control.
*/
children?: ReactNode;
/**
* Additional class name.
*/
className?: string;
}
export declare const ModalHeader: {
(props: ModalHeaderProps): JSX.Element;
displayName: string;
};
export default ModalHeader;