import * as React from "react";
import * as DialogPrimitive from "@radix-ui/react-dialog";
import { type VariantProps } from "class-variance-authority";
declare const Drawer: React.FC<DialogPrimitive.DialogProps>;
declare const DrawerTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
declare const DrawerClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
declare const DrawerPortal: React.FC<DialogPrimitive.DialogPortalProps>;
declare const DrawerOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const drawerVariants: (props?: ({
    side?: "bottom" | "left" | "right" | "top" | null | undefined;
    flush?: boolean | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type DrawerSide = "right" | "left" | "top" | "bottom";
interface DrawerContentProps extends Omit<React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, "style">, VariantProps<typeof drawerVariants> {
    /** Remove outer wrapper padding and panel rounded/border/padding so the
     *  panel attaches flush to the viewport edge. Use for full-height side
     *  panels (e.g. the embedded chat). */
    flush?: boolean;
    /** Enable the drag-to-resize handle on the inside-facing edge. Only
     *  active for `side="left"` / `side="right"` (or `top`/`bottom`) on
     *  non-mobile viewports. */
    resizable?: boolean;
    /** Minimum allowed size (px) when resizable. */
    minSize?: number;
    /** Maximum allowed size (px) when resizable. Also clamped by viewport. */
    maxSize?: number;
    /** Initial size (px) when no localStorage entry exists. */
    defaultSize?: number;
    /** localStorage key for persisting the size across sessions. */
    storageKey?: string;
    /** Pixel breakpoint below which `resizable` is disabled and inline
     *  size is not applied (so consumer CSS can render full-viewport). */
    mobileBreakpoint?: number;
    /** Optional className applied to the overlay. */
    overlayClassName?: string;
    /** Optional aria-label for the resize handle. */
    resizeAriaLabel?: string;
    /** Inline style merged onto the outer animated wrapper (DialogPrimitive.Content).
     *  Use this for animation-end transform/animation resets so `position: fixed`
     *  descendants can escape the wrapper's containing block. */
    style?: React.CSSProperties;
    /** Inline style merged onto the inner panel (next to the resize-driven size). */
    panelStyle?: React.CSSProperties;
    /** Optional className applied to the inner panel. (Alias for `className`.) */
    panelClassName?: string;
}
declare const DrawerContent: React.ForwardRefExoticComponent<DrawerContentProps & React.RefAttributes<HTMLDivElement>>;
declare const DrawerHeader: {
    ({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
declare const DrawerTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
declare const DrawerBody: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
declare const DrawerFooter: {
    ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export { Drawer, DrawerTrigger, DrawerClose, DrawerPortal, DrawerOverlay, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter, };
export type { DrawerContentProps, DrawerSide };
//# sourceMappingURL=drawer.d.ts.map