import * as DialogPrimitive from '@radix-ui/react-dialog'; import { type VariantProps } from 'class-variance-authority'; import { type CSSProperties, type ComponentPropsWithoutRef } from 'react'; interface AppLayoutDrawerRootProps extends ComponentPropsWithoutRef { } declare const AppLayoutDrawerRoot: { ({ open: openProp, defaultOpen, onOpenChange, modal, children, ...rest }: AppLayoutDrawerRootProps): import("react").JSX.Element; displayName: string; }; declare const AppLayoutDrawerTrigger: import("react").ForwardRefExoticComponent>; declare const AppLayoutDrawerClose: import("react").ForwardRefExoticComponent>; declare const appLayoutDrawerVariants: (props?: ({ side?: "bottom" | "left" | "right" | "top" | null | undefined; flush?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface AppLayoutDrawerContentProps extends Omit, 'style'>, VariantProps { flush?: boolean; resizable?: boolean; minSize?: number; maxSize?: number; defaultSize?: number; storageKey?: string; /** Pixel breakpoint below which `resizable` is disabled and inline size is * not applied (so the panel can render full-area on mobile). Defaults to * 800 — the library's Tailwind `md` breakpoint, so the JS mobile switch * and the `md:` panel styles flip together. */ mobileBreakpoint?: number; overlayClassName?: string; resizeAriaLabel?: string; style?: CSSProperties; panelStyle?: CSSProperties; panelClassName?: string; /** Override the portal container. Defaults to AppLayout's main-area container * (from context). Pass `null` to opt out of portaling. */ container?: HTMLElement | null; /** Keep the panel mounted across close so its subtree state survives an * open → close → open cycle (no remount, no refetch, no flicker). Lazy: * nothing renders until the first open; after that the panel stays mounted * (Radix `forceMount`) and the slide animation runs off `data-state`. * Default `false` — preserves the standard unmount-on-close behaviour for * every other consumer. */ keepMounted?: boolean; /** When `true` (default), clicks on the dim overlay over the main content * area close the drawer. Clicks on AppLayout chrome (header, sidebar) NEVER * close the drawer regardless of this flag — chrome interactions shouldn't * accidentally dismiss a persistent panel. Pass `false` to make the drawer * fully persistent (X button or Escape only). Consumer-provided * `onInteractOutside` still runs first and can preventDefault to override. */ dismissOnInteractOutside?: boolean; /** Debug helper — when `true`, on each open the component snapshots the * scroll metrics (scrollLeft / scrollWidth / clientWidth / overflow-x) of * every ancestor of the portal container, at mount, after RAF, +150ms, * +350ms, and on close. Use to diagnose layout-shift on open: look for an * ancestor that gains `scrollLeft > 0` or has `overflow-x: visible` while * `scrollWidth > clientWidth`. Remove the prop once diagnosed. */ debugLayoutShift?: boolean; } declare const AppLayoutDrawerContent: import("react").ForwardRefExoticComponent>; declare const AppLayoutDrawerHeader: { ({ className, children, ...props }: import("react").HTMLAttributes): import("react").JSX.Element; displayName: string; }; declare const AppLayoutDrawerTitle: import("react").ForwardRefExoticComponent>; declare const AppLayoutDrawerDescription: import("react").ForwardRefExoticComponent, "ref"> & import("react").RefAttributes>; declare const AppLayoutDrawerBody: { ({ className, ...props }: import("react").HTMLAttributes): import("react").JSX.Element; displayName: string; }; declare const AppLayoutDrawerFooter: { ({ className, ...props }: import("react").HTMLAttributes): import("react").JSX.Element; displayName: string; }; export { AppLayoutDrawerRoot as AppLayoutDrawer, AppLayoutDrawerTrigger, AppLayoutDrawerClose, AppLayoutDrawerContent, AppLayoutDrawerHeader, AppLayoutDrawerTitle, AppLayoutDrawerDescription, AppLayoutDrawerBody, AppLayoutDrawerFooter, }; //# sourceMappingURL=app-layout-drawer.d.ts.map