import { HTMLAttributes, ReactNode } from 'react';
export interface OverlaySplitViewProps extends Omit<HTMLAttributes<HTMLDivElement>, "content"> {
    /**
     * The sidebar pane.
     * On wide screens it sits beside the content.
     * On narrow screens it slides over the content as an overlay.
     */
    sidebar: ReactNode;
    /** The main content pane — always visible. */
    content: ReactNode;
    /**
     * Whether the sidebar is shown.
     * - Wide screens: always both visible; this prop is ignored.
     * - Narrow screens (≤ 400 px): controls whether the overlay is open.
     */
    showSidebar?: boolean;
    /**
     * Called when the user clicks the backdrop (narrow screens only).
     * Use this to set `showSidebar` to false.
     */
    onClose?: () => void;
    /**
     * When `true`, collapses the sidebar to icon-only width on wide screens.
     * Has no effect in narrow (overlay) mode.
     * Pair with `collapsed` on the inner `<Sidebar>` component to hide labels.
     */
    collapsed?: boolean;
    /**
     * Which side the sidebar appears on. Defaults to `"start"` (left in LTR).
     */
    sidebarPosition?: "start" | "end";
    /**
     * Minimum sidebar width in px. Defaults to `180`.
     */
    minSidebarWidth?: number;
    /**
     * Maximum sidebar width in px. Defaults to `280`.
     */
    maxSidebarWidth?: number;
    /**
     * Fraction of total width given to the sidebar. Defaults to `0.25`.
     */
    sidebarWidthFraction?: number;
}
/**
 * Sidebar + content layout where the sidebar becomes a slide-over overlay
 * on narrow screens, mirroring the Adwaita `AdwOverlaySplitView` pattern.
 *
 * On **wide** screens (> 400 px) sidebar and content are side-by-side.
 * On **narrow** screens (≤ 400 px) the content fills the full width and
 * the sidebar slides in as an overlay when `showSidebar` is true,
 * with a translucent backdrop behind it.
 *
 * @example
 * const [open, setOpen] = useState(false);
 * <OverlaySplitView
 *   showSidebar={open}
 *   onClose={() => setOpen(false)}
 *   sidebar={<Nav />}
 *   content={<MainContent onMenuClick={() => setOpen(true)} />}
 * />
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.OverlaySplitView.html
 */
export declare function OverlaySplitView({ sidebar, content, showSidebar, onClose, collapsed, sidebarPosition, minSidebarWidth, maxSidebarWidth, sidebarWidthFraction, className, style, ...props }: OverlaySplitViewProps): import("react/jsx-runtime").JSX.Element;
