import { type Ref } from 'vue';
import type { TableProps } from './table';
import type { ColumnInst } from './column';
export interface WidthItem {
    id: number;
    width?: number;
    minWidth?: number;
    maxWidth?: number;
    origin?: {
        width?: number;
        minWidth?: number;
        maxWidth?: number;
    };
}
/**
 * 更新列的宽度
 * 列最小宽度为80，如果设定了width则使用设定的width作为宽度，没有设定宽度的列平分剩余的宽度（容器的宽度减去已使用的宽度）
 */
export default function useTableLayout({ props, wrapperRef, headerWrapperRef, bodyWrapperRef, bodyTableRef, columns, showData, }: {
    showData: Ref<object[]>;
    props: TableProps;
    wrapperRef: Ref<HTMLElement>;
    headerWrapperRef: Ref<HTMLElement>;
    bodyWrapperRef: Ref<HTMLElement>;
    bodyTableRef: Ref<HTMLElement>;
    columns: Ref<ColumnInst[]>;
}): {
    widthMap: Ref<Record<string, WidthItem>, Record<string, WidthItem>>;
    bodyWidth: Ref<number, number>;
    bodyHeight: Ref<number, number>;
    isScrollX: Ref<boolean, boolean>;
    isScrollY: Ref<boolean, boolean>;
    isWatchX: Ref<boolean, boolean>;
};
