import React, { type ReactNode, type RefObject } from "react";
import { SheetContent as PrimitiveSheetContent } from "src/primitives/Sheet";
type SheetSize = "small" | "large" | "extraLarge";
/** Radix Sheet.Content props we forward via ...otherProps. */
type SheetContentProps = React.ComponentProps<typeof PrimitiveSheetContent>;
export interface SheetProps extends Omit<SheetContentProps, "children" | "className" | "side" | "showCloseButton" | "onEscapeKeyDown" | "onInteractOutside"> {
    /** Size of the sheet. */
    size?: SheetSize;
    /** Whether the sheet is open. */
    isOpen?: boolean;
    /** Callback invoked when the sheet is closed. */
    onClose?: () => void;
    /** Content rendered inside the sheet. */
    children?: ReactNode;
    /** Additional CSS class names applied to the sheet content. */
    className?: string;
    /** Close on pressing the Esc key. */
    closeOnEsc?: boolean;
    /** Show the close button. */
    closeButton?: boolean;
    /** Additional CSS class names applied to the backdrop/overlay. */
    backdropClassName?: string;
    /** Close on clicking outside the sheet. */
    closeOnOutsideClick?: boolean;
    /** Ref of the element to receive focus when the sheet opens. */
    initialFocusRef?: RefObject<HTMLElement | null>;
    /** Ref of the element to receive focus when the sheet closes. */
    finalFocusRef?: RefObject<HTMLElement | null>;
    /** Which side the sheet slides in from. */
    side?: "top" | "right" | "bottom" | "left";
    /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */
    modal?: boolean;
    /** Radix Dialog `defaultOpen` prop. */
    defaultOpen?: boolean;
}
interface SheetSubcomponentProps extends React.ComponentProps<"div"> {
    children?: ReactNode;
    className?: string;
}
declare const SheetHeader: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const SheetBody: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps & {
    hasFooter?: boolean;
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const SheetFooter: React.ForwardRefExoticComponent<Omit<SheetSubcomponentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const SheetTitle: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
declare const SheetDescription: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-dialog").DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
declare const Sheet: React.ForwardRefExoticComponent<SheetProps & React.RefAttributes<HTMLDivElement>> & {
    Header: typeof SheetHeader;
    Body: typeof SheetBody;
    Footer: typeof SheetFooter;
    Title: typeof SheetTitle;
    Description: typeof SheetDescription;
};
export { Sheet };
