import type { Direction, ResizeEvent } from '../types';
/**
 * Options for the useResizer hook.
 */
export interface UseResizerOptions {
    direction: Direction;
    sizes: number[];
    minSizes: number[];
    maxSizes: number[];
    snapPoints?: number[] | undefined;
    snapTolerance?: number | undefined;
    step?: number | undefined;
    onResizeStart?: ((event: ResizeEvent) => void) | undefined;
    onResize?: ((sizes: number[], event: ResizeEvent) => void) | undefined;
    onResizeEnd?: ((sizes: number[], event: ResizeEvent) => void) | undefined;
}
/**
 * Return type for the useResizer hook.
 */
export interface UseResizerResult {
    isDragging: boolean;
    currentSizes: number[];
    handlePointerDown: (dividerIndex: number) => (e: React.PointerEvent) => void;
}
/**
 * Hook that handles pointer-based resizing of panes.
 *
 * This is a low-level hook used internally by SplitPane. For most use cases,
 * you should use the SplitPane component directly.
 *
 * Features:
 * - Unified pointer events (handles mouse, touch, and pen input)
 * - Pointer capture for reliable drag behavior
 * - RAF-throttled updates for smooth performance
 * - Snap points support
 * - Step-based resizing
 *
 * @param options - Configuration options for the resizer
 * @returns Handlers and state for resize interactions
 */
export declare function useResizer(options: UseResizerOptions): UseResizerResult;
//# sourceMappingURL=useResizer.d.ts.map