import { ToRefs, Ref, ComputedRef } from 'vue';
import { DataTablePropsT, EffectiveDataTableColumnT } from './types';
type RemovedBodyCellInfo = {
    /** 当前单元格的索引 */
    index: string;
    /** 被如何合并的 */
    removedMethod: 'colspan' | 'rowspan';
    /** 由哪一列触发的合并 */
    removedBy: string;
};
export declare const useDataColumn: (options: ToRefs<DataTablePropsT> & {
    tableEl: Ref<HTMLTableElement | undefined>;
    containerWidth: Ref<number>;
}) => {
    dataColumnMap: Map<string, EffectiveDataTableColumnT>;
    dataColumns: Ref<EffectiveDataTableColumnT[]>;
    groupColumns: Ref<EffectiveDataTableColumnT[][]>;
    removedBodyCellsBySpan: ComputedRef<RemovedBodyCellInfo[]>;
    isBodyCellRemoved: (rowIndex: number, colIndex: number) => boolean;
    isLastLeftFixedCell: (rowIndex: number, colIndex: number) => boolean;
    isFirstRightFixedCell: (rowIndex: number, colIndex: number) => boolean;
    hasLeftFixedColumn: ComputedRef<boolean>;
    hasRightFixedColumn: ComputedRef<boolean>;
    handleColumnResizerMousedown: (options: {
        event: MouseEvent;
        column: EffectiveDataTableColumnT;
        colIndex: number;
    }) => void;
    resizingColumnKey: Ref<string, string>;
};
export {};
