import * as React from 'react';
import * as Dialog from '@radix-ui/react-dialog';
import { FlexProps } from '@strapi/design-system';
/** Duration of the close animation in ms. Use for timing cleanup (e.g. removing URL params). */
export declare const DRAWER_CLOSE_ANIMATION_MS = 300;
interface DrawerBodyProps extends FlexProps {
    animationDirection?: 'up' | 'left';
    children: React.ReactNode;
}
interface DrawerRootProps {
    isVisible?: boolean;
    onClose?: () => void;
    children: React.ReactNode;
}
interface DrawerScrollableContentProps {
    children: React.ReactNode;
    /** When provided, content can collapse/expand (e.g. for minimize). Omit to always show. */
    isContentExpanded?: boolean;
}
interface DrawerCloseButtonProps extends React.PropsWithChildren {
    onClose: () => void;
    label?: string;
}
declare const Drawer: {
    Root: ({ isVisible, onClose, children }: DrawerRootProps) => React.ReactElement;
    Body: React.ForwardRefExoticComponent<Omit<DrawerBodyProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
    ScrollableContent: ({ children, isContentExpanded, }: DrawerScrollableContentProps) => import("react/jsx-runtime").JSX.Element;
    CloseButton: ({ onClose, label, children }: DrawerCloseButtonProps) => import("react/jsx-runtime").JSX.Element;
    Title: React.ForwardRefExoticComponent<Dialog.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>>;
    Description: React.ForwardRefExoticComponent<Dialog.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
};
export { Drawer };
