import { default as React } from 'react';
import { ITableColumnProps } from '../../table';
import { ColumnActionHandler, DraggableHandler, RowsSelectionHandler, SortingState, TableSize, CellEditHandler } from '../types';
import { TableStyle } from '../../table/types';
/**
 * Data Table Static Context Value interface
 * Contains shared state and callbacks to eliminate props drilling
 */
type DataTableStaticContextValue<T extends object> = {
    hasColumnSeparator?: boolean;
    size?: TableSize;
    tableHeight?: number | 'auto';
    /** Computed pixel height for auto-height mode (from ResizeObserver) */
    autoHeight?: number;
    rowHeight?: number;
    rowKey?: keyof T;
    styles?: TableStyle;
    rowsSelection?: RowsSelectionHandler<T>;
    columns: ITableColumnProps<T>[];
    columnAction?: ColumnActionHandler;
    sorting?: SortingState;
    setSorting?: (sorting: SortingState | undefined) => void;
    handleAutoResize?: (columnKey: keyof T) => void;
    handleAutoResizeAll?: () => void;
    columnOrder: string[];
    setColumnOrder?: React.Dispatch<React.SetStateAction<string[]>>;
    draggable?: DraggableHandler;
    cellEdit?: CellEditHandler<T>;
    onRowClick?: (record: T) => void;
    onRowDoubleClick?: (record: T) => void;
    onHeaderClick?: (headerTitle: string, column: ITableColumnProps<T>) => void;
};
export default DataTableStaticContextValue;
