import { ReactNode } from 'react';
export type Side = 'left' | 'top' | 'right' | 'bottom';
/** Callback to dismiss an overlay panel */
export type OverlayDismissCallback = () => void;
export interface LayoutContextValue {
    registerPanel: (side: Side, size: number) => void;
    unregisterPanel: (side: Side) => void;
    updatePanelSize: (side: Side, size: number) => void;
    setDragging: (isDragging: boolean) => void;
    markReady: () => void;
    panelSizes: Record<Side, number>;
    isDragging: boolean;
    isReady: boolean;
    /** Whether transitions are enabled for panels */
    hasTransition: boolean;
    /** Register an overlay panel's dismiss callback. Returns unregister function. */
    registerOverlayPanel: (dismiss: OverlayDismissCallback) => () => void;
    /** Dismiss all overlay panels */
    dismissOverlayPanels: () => void;
    /** Whether there are any overlay panels currently open */
    hasOverlayPanels: boolean;
}
export declare const LayoutContext: import("react").Context<LayoutContextValue | null>;
export declare function useLayoutContext(): LayoutContextValue | null;
export interface LayoutProviderProps {
    children: ReactNode;
    /** Whether transitions are enabled for panels */
    hasTransition?: boolean;
}
export declare function LayoutProvider({ children, hasTransition, }: LayoutProviderProps): import("react/jsx-runtime").JSX.Element;
/**
 * Provider that resets the layout context for sub-components.
 * Used to prevent panels in nested Layouts from affecting parent layouts.
 */
export declare function LayoutContextReset({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export interface LayoutPanelContextValue {
    /** Callback to change the panel's open state */
    onOpenChange: (isOpen: boolean) => void;
    /** Current open state of the panel */
    isOpen: boolean;
}
export declare const LayoutPanelContext: import("react").Context<LayoutPanelContextValue | null>;
export declare function useLayoutPanelContext(): LayoutPanelContextValue | null;
