import { FC, ReactNode } from 'react'; export type DrawerAnchor = 'left' | 'right' | 'top' | 'bottom'; export type DrawerCloseReason = 'backdropClick' | 'escapeKeyDown'; export interface DrawerProps { open?: boolean; onClose?: (event: Event | React.SyntheticEvent, reason: DrawerCloseReason) => void; anchor?: DrawerAnchor; variant?: 'temporary' | 'persistent' | 'permanent'; hideBackdrop?: boolean; className?: string; sx?: unknown; PaperProps?: { className?: string; sx?: unknown; }; /** * Accepted for MUI `Drawer` parity (DEC-003). The panel always stays mounted so the slide * transition can play, so `keepMounted` is effectively always-on — this prop is a typed no-op. */ ModalProps?: { keepMounted?: boolean; }; /** Trigger element — when inside a modal ``, portal into it so the sheet is interactive. */ anchorEl?: Element | null; children?: ReactNode; } /** * Sliding edge panel (replaces MUI `Drawer`). Portalled, slides from `anchor`, temporary variant * shows a backdrop and closes on backdrop-click / Escape. Public props preserved (DEC-003). TASK-304. * * When the trigger is inside a modal ``, portals into that dialog (inertness) and stacks with * z-index — no nested Popover API (mobile Safari stacks nested `showPopover` under the dialog). * * @figmaNode none — no dedicated Figma drawer/side-sheet. As a modal edge-panel it reuses the DS * **modal family** tokens established by `StyledDialog`: overlay `bg/modal` #626e7eb2 (delta-600 @70%) * + Dialogue-popup elevation (#22213366, 0 4 40). Edge panels are flush (no radius); content is * consumer-supplied. */ export declare const StyledDrawer: FC;