import { type HTMLAttributes, type ReactNode, type RefObject } from 'react';
export type PanelSubviewHostProps = HTMLAttributes;
export interface PanelSubviewProps extends Omit, 'title'> {
/** Whether the subview is showing. It animates in and out around this. */
open: boolean;
/** Fires from the back button and from Escape. Set `open` false in reply. */
onBack: () => void;
/** The subview's heading. Already translated upstream. */
title: ReactNode;
/** Accessible name and tooltip of the back button. Already translated. */
backLabel: string;
/** Optional leading glyph for the heading. */
icon?: ReactNode;
/** Heading level. Default `2`; pass `3` to read as subordinate to the host. */
headingLevel?: 2 | 3;
/** Extra header actions, rendered after the back button. */
headerActions?: ReactNode;
/** Pinned below the scroll body: the form's cancel and save, typically. */
footer?: ReactNode;
/** How `footer`'s row is justified. `'end'` (default) keeps the single
* trailing cluster every other subview uses; `'between'` splits the
* row — render `footer` as two children (a leading destructive action,
* a trailing Cancel/Save cluster) and the container puts one at each
* end, the same shape as the appointment editor's ACTION FOOTER. */
footerAlign?: 'end' | 'between';
/** Fires once the exit has played and the subview has unmounted. */
onExited?: () => void;
/**
* Focus this on open instead of the subview itself: a form's first field,
* say. The subview is still announced through its heading.
*/
initialFocusRef?: RefObject;
children: ReactNode;
}
export declare const PanelSubview: import("react").ForwardRefExoticComponent> & {
Host: import("react").ForwardRefExoticComponent>;
};
//# sourceMappingURL=panel-subview.d.ts.map