import { type KeyboardEvent, type PointerEvent } from "react"; export type SpreadsheetDimensionAxis = "row" | "column"; /** One pixel dimension change, committed after a drag or keyboard gesture. */ export type SpreadsheetDimensionCommit = { sheetId: string; axis: SpreadsheetDimensionAxis; index: number; size: number; }; type ResizeOptions = { sheetId: string; generationId: string | null; revision: string | number; rowHeights: readonly (readonly [number, number])[]; columnWidths: readonly (readonly [number, number])[]; defaultRowHeight: number; defaultColumnWidth: number; enabled: boolean; commit?: ((change: SpreadsheetDimensionCommit) => void | Promise) | undefined; onCommandError?: ((error: Error) => void) | undefined; onStart?: (() => void) | undefined; }; /** Transient gesture/pending previews only; the caller owns durable dimensions. */ export declare function useSpreadsheetResizing(options: ResizeOptions): { rowHeights: readonly (readonly [number, number])[]; columnWidths: readonly (readonly [number, number])[]; previewKey: string; handleProps: (axis: SpreadsheetDimensionAxis, index: number) => { onPointerDown(event: PointerEvent): void; onPointerMove(event: PointerEvent): void; onPointerUp(event: PointerEvent): void; onPointerCancel(event: PointerEvent): void; onLostPointerCapture(event: PointerEvent): void; onKeyDown(event: KeyboardEvent): void; onKeyUp(event: KeyboardEvent): void; onBlur(): void; }; pendingCount: number; error: { message: string; retry: (() => void) | undefined; } | null; clearError: () => void; }; export declare function SpreadsheetResizeHandle({ axis, label, size, ...handlers }: { axis: SpreadsheetDimensionAxis; label: string; size: number; } & ReturnType["handleProps"]>): import("react").JSX.Element; export {};