import { MouseEvent as ReactMouseEvent } from 'react';

interface UseSplitResizeOptions {
    /** Left-pane fraction at rest (0–1). */
    defaultRatio?: number;
    /** Clamp so neither pane can collapse. */
    min?: number;
    max?: number;
}
/**
 * Drives a two-pane resizable split. Apply `leftRatio` as the left pane's
 * `flexGrow` and `1 - leftRatio` as the right pane's; dragging the divider
 * updates the ratio.
 *
 * The pointer listeners live on `document` (so the drag keeps tracking when the
 * cursor leaves the thin divider) and are always torn down — on mouse-up AND on
 * unmount. The unmount teardown matters: without it, a drag interrupted by the
 * editor unmounting (e.g. navigation) would leave `document.body` with text
 * selection disabled and a resize cursor stuck for the rest of the page's life.
 */
export declare const useSplitResize: ({ defaultRatio, min, max, }?: UseSplitResizeOptions) => {
    containerRef: import('react').MutableRefObject<HTMLDivElement | null>;
    leftRatio: number;
    onSeparatorMouseDown: (e: ReactMouseEvent) => void;
};
export {};
