import { Dialog as SheetPrimitive } from '@base-ui/react/dialog';
import * as React from 'react';
declare const Root: React.ForwardRefExoticComponent<SheetPrimitive.Root.Props<unknown> & React.RefAttributes<HTMLDivElement>>;
declare const Trigger: React.ForwardRefExoticComponent<Omit<SheetPrimitive.Trigger.Props<unknown>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
declare const Close: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
declare function Portal({ ...props }: SheetPrimitive.Portal.Props): import("react/jsx-runtime").JSX.Element;
declare namespace Portal {
    var displayName: string;
}
export interface BackdropProps extends SheetPrimitive.Backdrop.Props {
    /** Disables open/close animations */
    disableAnimation?: boolean;
    /** Disables backdrop blur effect */
    disableBackdropBlur?: boolean;
}
declare const Backdrop: React.ForwardRefExoticComponent<Omit<BackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
export interface ViewportProps extends SheetPrimitive.Viewport.Props {
}
declare const Viewport: React.ForwardRefExoticComponent<Omit<ViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
interface PopupBaseProps extends SheetPrimitive.Popup.Props {
    side?: 'top' | 'right' | 'bottom' | 'left';
    showCloseButton?: boolean;
    disableAnimation?: boolean;
    disableBackdropBlur?: boolean;
}
declare function PopupBase({ className, children, side, showCloseButton, disableAnimation, disableBackdropBlur, ...props }: PopupBaseProps): import("react/jsx-runtime").JSX.Element;
declare namespace PopupBase {
    var displayName: string;
}
declare function TitleBase({ className, ...props }: SheetPrimitive.Title.Props): import("react/jsx-runtime").JSX.Element;
declare namespace TitleBase {
    var displayName: string;
}
declare function DescriptionBase({ className, ...props }: SheetPrimitive.Description.Props): import("react/jsx-runtime").JSX.Element;
declare namespace DescriptionBase {
    var displayName: string;
}
export interface SheetProps {
    /**
     * Optional trigger element that opens the sheet.
     * When provided, uses base-ui's render prop to prevent nested button hydration errors.
     * The trigger element will be rendered directly (not wrapped in a button).
     *
     * @example
     * <Sheet trigger={<Button>Open Sheet</Button>}>
     *   <Sheet.Popup>...</Sheet.Popup>
     * </Sheet>
     */
    trigger?: React.ReactElement;
    /** Sheet content */
    children?: React.ReactNode;
    /**
     * Controlled open state. When provided, the sheet is in controlled mode.
     * Use with `onOpenChange` to manage state externally.
     */
    open?: boolean;
    /**
     * Callback fired when the open state changes.
     * Required for controlled mode, optional for uncontrolled mode.
     */
    onOpenChange?: (open: boolean) => void;
    /**
     * Initial open state for uncontrolled mode.
     * Ignored when `open` prop is provided (controlled mode).
     */
    defaultOpen?: boolean;
    /** Whether the sheet is modal (blocks interaction with the rest of the page) */
    modal?: boolean;
    /** Called when the sheet should be dismissed */
    onDismiss?: () => void;
}
declare function SheetComponent({ trigger, open: controlledOpen, defaultOpen, onOpenChange, children, ...props }: SheetProps): import("react/jsx-runtime").JSX.Element;
declare namespace SheetComponent {
    var displayName: string;
}
export interface PopupProps extends React.ComponentProps<typeof PopupBase> {
    /** Width of the sheet for left/right sides */
    width?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
}
declare function Popup({ className, width, children, showCloseButton, ...props }: PopupProps): import("react/jsx-runtime").JSX.Element;
declare namespace Popup {
    var displayName: string;
}
export interface HeaderProps extends React.ComponentProps<'div'> {
    /** Icon to display in the header */
    icon?: React.ReactNode;
    /** Show close button in header */
    showCloseButton?: boolean;
    /** Callback when close button is clicked */
    onClose?: () => void;
}
declare function Header({ className, children, icon, showCloseButton, onClose, ...props }: HeaderProps): import("react/jsx-runtime").JSX.Element;
declare namespace Header {
    var displayName: string;
}
export interface TitleProps extends React.ComponentProps<typeof TitleBase> {
}
declare function Title({ className, ...props }: TitleProps): import("react/jsx-runtime").JSX.Element;
declare namespace Title {
    var displayName: string;
}
export interface DescriptionProps extends React.ComponentProps<typeof DescriptionBase> {
}
declare function Description({ className, ...props }: DescriptionProps): import("react/jsx-runtime").JSX.Element;
declare namespace Description {
    var displayName: string;
}
export interface BodyProps extends React.ComponentProps<'div'> {
}
declare function Body({ className, children, ...props }: BodyProps): import("react/jsx-runtime").JSX.Element;
declare namespace Body {
    var displayName: string;
}
export interface SectionProps extends React.ComponentProps<'div'> {
    /** Section label */
    label?: string;
    /** Section description/supporting text */
    description?: string;
}
declare function Section({ className, children, label, description, ...props }: SectionProps): import("react/jsx-runtime").JSX.Element;
declare namespace Section {
    var displayName: string;
}
export interface DividerProps extends React.ComponentProps<'div'> {
}
declare function Divider({ className, ...props }: DividerProps): import("react/jsx-runtime").JSX.Element;
declare namespace Divider {
    var displayName: string;
}
export interface FooterProps extends React.ComponentProps<'div'> {
    /** Primary action button text */
    primaryAction?: string;
    /** Secondary action button text */
    secondaryAction?: string;
    /** Callback for primary action */
    onPrimaryAction?: () => void;
    /** Callback for secondary action */
    onSecondaryAction?: () => void;
    /** Loading state for primary button */
    primaryLoading?: boolean;
    /** Disable primary button */
    primaryDisabled?: boolean;
}
declare function Footer({ className, children, primaryAction, secondaryAction, onPrimaryAction, onSecondaryAction, primaryLoading, primaryDisabled, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
declare namespace Footer {
    var displayName: string;
}
export type CloseProps = SheetPrimitive.Close.Props;
export type PortalProps = SheetPrimitive.Portal.Props;
export type TriggerProps = SheetPrimitive.Trigger.Props;
export type RootProps = SheetPrimitive.Root.Props;
declare const Sheet: typeof SheetComponent & {
    Root: React.ForwardRefExoticComponent<SheetPrimitive.Root.Props<unknown> & React.RefAttributes<HTMLDivElement>>;
    Trigger: React.ForwardRefExoticComponent<Omit<SheetPrimitive.Trigger.Props<unknown>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
    Portal: typeof Portal;
    Backdrop: React.ForwardRefExoticComponent<Omit<BackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
    Viewport: React.ForwardRefExoticComponent<Omit<ViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
    Popup: typeof Popup;
    Header: typeof Header;
    Body: typeof Body;
    Footer: typeof Footer;
    Title: typeof Title;
    Description: typeof Description;
    Close: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
    Section: typeof Section;
    Divider: typeof Divider;
};
export { Backdrop as SheetBackdrop, Body as SheetBody, Close as SheetClose, Description as SheetDescription, Divider as SheetDivider, Footer as SheetFooter, Header as SheetHeader, Popup as SheetPopup, Portal as SheetPortal, Root as SheetRoot, Section as SheetSection, Sheet, Title as SheetTitle, Trigger as SheetTrigger, Viewport as SheetViewport, };
