import React from 'react';
import { DataTableColumn } from '../DataTable';
interface ColumnWidthMap {
    [columnId: string]: number;
}
type ColumnWidth = DataTableColumn['width'];
export interface ColumnResizeContextValue {
    columnWidths: ColumnWidthMap | null;
    getEffectiveColumnWidth: (column: DataTableColumn) => ColumnWidth;
    getStickyColumnStyle: (columns: DataTableColumn[], column: DataTableColumn) => {
        left: number;
    };
    getTableWidth: (fallback?: string) => string;
    resizeColumn: (columnId: string, newWidth: number) => void;
    startColumnResize?: (columnId: string, e: MouseEvent) => void;
    endColumnResize?: (columnId: string, e: MouseEvent) => void;
}
export interface ColumnResizeProps {
    columns?: DataTableColumn[];
    isTableResizable?: boolean;
    onColumnResize?: (columnId: string, newWidth: number) => void;
    onColumnResizeStart?: (columnId: string, startWidth: number, e: MouseEvent) => void;
    onColumnResizeEnd?: (columnId: string, endWidth: number, e: MouseEvent) => void;
    minColumnWidth?: number;
    maxColumnWidth?: number;
    children?: React.ReactNode;
}
export declare const ColumnResizeContext: React.Context<ColumnResizeContextValue>;
/**
 * ColumnResize manages the state and logic of column resizing for tables.
 * Given an array of columns with resize configuration, it provides a context with resize handlers,
 * width calculations, and sticky column positioning.
 *
 * Key features:
 * - Manages column width state with min/max constraints
 * - Provides effective width calculations for columns
 * - Handles sticky column positioning with dynamic widths
 * - Supports both resizable and non-resizable table modes
 * - Offers resize event callbacks (onColumnResize, onColumnResizeStart, onColumnResizeEnd)
 */
export declare const ColumnResize: React.FC<ColumnResizeProps>;
export {};
//# sourceMappingURL=ColumnResize.d.ts.map