import React from 'react'; export interface DrawerProps { /** Optional custom header row content (shown next to the title area). */ header?: React.ReactNode; /** Renders below the main header row when a header is shown. */ headerExtra?: React.ReactNode; /** Title shown in the header; omit with `header` / `headerExtra` to control visibility. */ title?: React.ReactNode; /** Main panel content (scrollable body). */ children: React.ReactNode; /** Sticky footer below the body. */ footer?: React.ReactNode; /** When `true`, the drawer is visible (open animation). Controlled from the parent. */ isOpen: boolean; /** * If `true`, clicking the backdrop closes the drawer. If there is no header, this is often the only way to dismiss without `onClose` from children. * * @default false */ closeOnOverlayClick?: boolean; /** * @description Height gap in pixels to subtract from the drawer's height, so the drawer appears shorter by this amount. Useful for keeping the app header visible above the drawer. * * @default 50 * @example * */ heightGap?: number; /** * Slide-in edge: `right` (default) or `left`. * * @default 'right' */ origin?: 'left' | 'right'; /** Class name on the root overlay `section`. */ className?: string; /** Class name on the inner panel (`drawer_content`), e.g. to override max-width. */ contentClassName?: string; /** * When false, the drawer body has no horizontal/vertical padding (default padding is kept for typical form layouts). * * @default true */ bodyPadding?: boolean; /** * `fit` sizes the panel to the child block width (`width: auto`, capped at 600px). Use with children that define a stable width (e.g. ChatPanel min/max). `default` keeps full-width panel behavior (max 540px). * * @default 'default' */ contentWidth?: 'default' | 'fit'; /** * Called after the close animation finishes and the drawer unmounts from the tree (when transitioning from open to closed). */ onClose: () => void; } declare const Drawer: React.FC; export default Drawer;