import { CSSProperties } from 'react';
import { PanelSide } from '../../../../../../../types';
import { PanelRuntimeDescriptor } from '../types';
/**
 * Default runtime width applied when a side panel does not persist a custom size yet.
 */
export declare const PANEL_DEFAULT_WIDTH = 360;
/**
 * Default runtime height applied when a top/bottom panel does not persist a custom size yet.
 */
export declare const PANEL_DEFAULT_HEIGHT = 280;
/**
 * Hard minimum width used to avoid collapsing left/right panels into unusable shells.
 */
export declare const PANEL_MIN_WIDTH = 200;
/**
 * Hard minimum height used to avoid collapsing top/bottom panels into unusable shells.
 */
export declare const PANEL_MIN_HEIGHT = 100;
/**
 * Invisible hit-area thickness for resize affordances.
 */
export declare const PANEL_RESIZE_HANDLE_SIZE = 10;
/**
 * Canonical side order used to render and group panel windows.
 */
export declare const PANEL_SIDES: PanelSide[];
/**
 * Detect whether a panel grows along the horizontal axis.
 */
export declare const isHorizontalPanelSide: (side: PanelSide) => side is "left" | "right";
/**
 * Resolve the edge that should expose the resize affordance for a panel side.
 */
export declare const getResizeHandleSide: (side: PanelSide) => "left" | "right" | "top" | "bottom";
/**
 * Resolve the resize cursor that matches the panel growth axis.
 */
export declare const getResizeCursor: (side: PanelSide) => "col-resize" | "row-resize";
/**
 * Resolve whether the stable rail should render before the panel slot in DOM order.
 */
export declare const shouldRenderResizeRailBeforePanel: (side: PanelSide) => side is "bottom" | "right";
/**
 * Build the inline overlay handle style for panels that still own their local resize affordance.
 */
export declare const getInlineResizeHandleStyle: (side: PanelSide) => CSSProperties;
/**
 * Build the pinned-panel rail handle style so the hit area sits on the actual layout boundary.
 */
export declare const getRailResizeHandleStyle: (side: PanelSide) => CSSProperties;
/**
 * Clamp a panel size to the allowed runtime limits for its emergence side.
 */
export declare const clampPanelSize: (side: PanelSide, nextSize: number, parentElement: HTMLElement | null, panel: PanelRuntimeDescriptor) => number;
/**
 * Read the pointer coordinate that belongs to the resize axis for one panel side.
 */
export declare const getPointerPositionForPanelSide: (side: PanelSide, pointerEvent: Pick<MouseEvent, "clientX" | "clientY">) => number;
/**
 * Compute the slot dimensions that should be reserved for a panel side.
 */
export declare const getPanelSlotStyle: (panel: PanelRuntimeDescriptor) => {
    width: string;
    minWidth: string;
    maxWidth: string;
    height: string;
    minHeight?: undefined;
    maxHeight?: undefined;
} | {
    width: string;
    height: string;
    minHeight: string;
    maxHeight: string;
    minWidth?: undefined;
    maxWidth?: undefined;
};
//# sourceMappingURL=panelRuntime.d.ts.map