import { PointerEvent as ReactPointerEvent, RefObject, UIEvent as ReactUIEvent } from 'react';
import { DragEndEvent } from '@dnd-kit/core';
/**
 * Layout and column-behavior context.
 *
 * This groups scroll synchronization, sticky-column metadata, and drag/resize
 * callbacks so header/footer/cell components do not need the full render model
 * just to participate in layout behavior.
 */
export type TableLayoutContextValue = {
    handleBodyScroll?: (event: ReactUIEvent<HTMLElement> | undefined) => void;
    tableHeadRowRef: RefObject<HTMLDivElement>;
    tableFooterRowRef: RefObject<HTMLDivElement>;
    draggableColumnKeys?: string[];
    lastResizableColumnKey?: string;
    resettableColumnKeys?: Set<string>;
    stickyLeftColumnCount?: number;
    stickyRightColumnCount?: number;
    stickyFooter?: boolean;
    onColumnDragEnd?: (event: DragEndEvent) => void;
    onColumnResizeReset?: (columnKey: string) => void;
    onColumnResizeStart?: (columnKey: string, event: ReactPointerEvent<HTMLDivElement>) => void;
};
export declare const TableLayoutContext: import('react').Context<TableLayoutContextValue | null>;
export declare const useOptionalTableLayoutContext: () => TableLayoutContextValue | null;
export declare const useTableLayoutContext: () => TableLayoutContextValue;
