/**
 * important info: only resize happened, th width calculating allowed
 * 验证场景：多级表头调整叶子结点列宽、吸顶表头调整列宽、列数量发生变化、表格未超出、表格已超出
 * - 固定列，调整列宽，需要更新固定位置；右侧固定列，调整列宽，需特殊处理
 * - 当表格内容没有超出时，即没有出现横向滚动条时，此时认为表格有足够的列宽呈现内容，修改宽度为相邻宽度调整
 * - 当表格内容超出，出现横向滚动条时，会自动调整当前列宽和表格总列宽，不影响相邻列宽
 */
import React, { MutableRefObject } from 'react';
import { BaseTableCol, TableRowData, TdBaseTableProps } from '../type';
export default function useColumnResize(params: {
    isWidthOverflow: boolean;
    tableContentRef: MutableRefObject<HTMLDivElement>;
    showColumnShadow: {
        left: boolean;
        right: boolean;
    };
    getThWidthList: (type?: 'default' | 'calculate') => {
        [colKeys: string]: number;
    };
    updateThWidthList: (data: {
        [colKeys: string]: number;
    }) => void;
    setTableElmWidth: (width: number) => void;
    updateTableAfterColumnResize: () => void;
    onColumnResizeChange: TdBaseTableProps['onColumnResizeChange'];
}): {
    resizeLineRef: React.MutableRefObject<HTMLDivElement>;
    resizeLineStyle: React.CSSProperties;
    onColumnMouseover: (e: React.MouseEvent<HTMLTableHeaderCellElement, MouseEvent>, col: BaseTableCol<TableRowData>) => void;
    onColumnMousedown: (e: React.MouseEvent<HTMLTableHeaderCellElement, MouseEvent>, col: BaseTableCol<TableRowData>, index: number) => void;
    setEffectColMap: (nodes: BaseTableCol<TableRowData>[], parent: BaseTableCol<TableRowData> | null) => void;
    updateTableWidthOnColumnChange: (colKeys: string[]) => void;
};
