export interface DrawerProps { /** Whether the drawer is open */ isOpen: boolean; /** Callback when drawer should close */ onClose: () => void; /** Drawer title */ title: React.ReactNode; /** Optional subtitle */ subtitle?: React.ReactNode; /** Drawer width preset or custom CSS width value */ width?: "narrow" | "medium" | "wide" | (string & Record); /** Drawer content */ children: React.ReactNode; /** Optional footer content */ footer?: React.ReactNode; /** Additional CSS class for drawer panel */ className?: string; /** ARIA labelledby ID (defaults to internal title ID) */ ariaLabelledBy?: string; /** ARIA describedby ID (defaults to internal subtitle ID if subtitle exists) */ ariaDescribedBy?: string; /** Accessible label for the close button. Default: "Close" */ closeLabel?: string; /** * Refuse dismissal by Escape or a backdrop click, shaking the panel instead. * The close button and any footer control still call `onClose` directly, so * route those through the same guard when they also need confirming. */ preventDismiss?: boolean; /** * Called when `preventDismiss` blocked a dismissal, so the consumer can offer * an explicit way out (a discard confirmation, for instance). */ onDismissAttempt?: () => void; } export declare function Drawer({ isOpen, onClose, title, subtitle, width, children, footer, className, ariaLabelledBy, ariaDescribedBy, closeLabel, preventDismiss, onDismissAttempt, }: DrawerProps): import("react").JSX.Element;