import type { ComputedRef, Ref, ShallowRef } from 'vue'; import type { ColumnsType, ExpandType, FinallyColumnType, HeaderCellType, Key, StickyOffsets, SurelyTableProps } from '../components/interface'; import type { RangeCell } from './RangeInterface'; export declare const CheckboxColumnKey = "__Internal__Checkbox__Columnkey"; export declare const ExpandColumnKey = "__Internal__Expand__Columnkey"; export interface UseColumnsType { leftColumns: ShallowRef; rightColumns: ShallowRef; centerColumns: ShallowRef; allColumns: ShallowRef; visibleCenterColumns: ShallowRef; visibleCenterHeaderColumns: ShallowRef; leftWidth: Ref; rightWidth: Ref; centerWidth: Ref; bodyMaxWidth: ComputedRef; leftHeaderColumns: ShallowRef; rightHeaderColumns: ShallowRef; centerHeaderColumns: ShallowRef; maxRowSpan: Ref; headerHeight: ShallowRef; maxHeaderHeight: Ref; getColumnPosition: (_index: number, _colSpan?: number) => { width: number; left: number; minWidth: number; maxWidth: number; }; getColumnPositionByKey: (_key: Key) => { width: number; left: number; minWidth: number; maxWidth: number; } | undefined; columnKeyIndexMap: ShallowRef>; expandIconColumnIndex: Ref; columnRowsForAutoHeaderHeight: ShallowRef; stickyOffsets: ShallowRef; } export declare const defaultMinWidth = 50; export default function useColumns({ props, rawColumns, bodyScrollWidth, baseHeight, measureWidthRef, expandType, expandable, scrollLeft, bodyWidth, xVirtual, draggingColumnKey, latestRangeStartCell, }: { props: SurelyTableProps; rawColumns: Ref; bodyScrollWidth: Ref; baseHeight: Ref; measureWidthRef: Ref; expandable: Ref; rowExpandable?: Ref<(_record: any) => boolean>; direction?: Ref<'ltr' | 'rtl'>; expandType: Ref; scrollLeft: Ref; bodyWidth: Ref; xVirtual: Ref; draggingColumnKey: Ref; latestRangeStartCell: ShallowRef; }): UseColumnsType;