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;