import { IEmptyObject } from '../const';
import { Column, IHeadGroup, Settings, TablePropTypes } from '../props';
declare const useColumns: (props: TablePropTypes) => {
    needColSpan: import("vue").ComputedRef<boolean>;
    needRowSpan: import("vue").ComputedRef<boolean>;
    tableColumnSchema: import("vue").Reactive<WeakMap<object, any>>;
    tableColumnList: import("vue").Reactive<any[]>;
    visibleColumns: Column[];
    debounceUpdateColumns: import("lodash").DebouncedFuncLeading<(columns: Column[], onComplete?: () => void) => void>;
    sortColumns: import("vue").Reactive<any[]>;
    filterColumns: import("vue").Reactive<any[]>;
    columnGroup: Column[][];
    columnGroupMap: WeakMap<Column, IHeadGroup>;
    sortVersion: import("vue").Ref<number, number>;
    filterVersion: import("vue").Ref<number, number>;
    columnsVersion: import("vue").Ref<number, number>;
    clearColumnSort: () => void;
    clearSelectionAll: () => void;
    formatColumns: () => void;
    flatColumnTemplate: (cols: Column[]) => any[];
    isHiddenColumn: (col: Column) => any;
    getColumnId: (col: Column) => any;
    getColumnOrderWidth: (col: Column, orders?: string[]) => number;
    getColumnAttribute: (col: Column | IEmptyObject, attributeName: string) => any;
    getHeadColumnClass: (column: Column, colIndex: number) => {
        [x: string]: boolean;
        column_fixed: boolean;
        column_fixed_left: boolean;
        column_fixed_right: boolean;
        active: boolean;
    };
    getColumnClass: (column: Column, colIndex: number) => {
        [x: string]: boolean;
        column_fixed: boolean;
        column_fixed_left: boolean;
        column_fixed_right: boolean;
        active: boolean;
    };
    getFixedStyle: (column: Column) => any;
    getFixedStlye: (column: Column) => any;
    getColumnRect: (column: Column) => any;
    getColumnCustomClass: (column: any, row?: Record<string, object>) => any;
    getColumnRefAttribute: (col: Column | IEmptyObject, attributeName: string) => any;
    getColumnCalcWidth: (column: Column) => any;
    getColumnWidth: (column: Column) => number;
    getLeftColumnsWidth: (col: Column, includingSelf?: boolean) => number;
    getGroupAttribute: (group: Column) => IHeadGroup;
    getPreColumn: (col: Column) => Column;
    getColumnIndex: (col: Column) => number;
    resolveEventListener: (col: Column, index: number) => Record<string, (...args: any[]) => void> & {
        [x: string]: (e: MouseEvent) => void;
    };
    setColumnIsHidden: (column: Column, value?: boolean) => void;
    setColumnResizeWidth: (column: Column, value: number) => void;
    setColumnSortOption: (column: Column, option: Record<string, object>) => void;
    setColumnFilterOption: (column: Column, option: Record<string, object>) => void;
    setColumnAttributeBySettings: (settings: Settings, checkedVal?: string[]) => void;
    setColumnAttribute: (col: Column, attrName: string, attrValue: ((...args: any) => boolean | number | string | void) | Record<string, object> | Record<string, object>[] | boolean | number | object | string) => void;
    setColumnSortActive: (column: Column, active: boolean) => void;
    setFixedStyle: (column: Column, style: {
        left?: string;
        right?: string;
    }) => void;
    setColumnRect: (col: any, { left, right, width, height }: {
        left?: number;
        right?: number;
        width?: number;
        height?: number;
    }) => void;
    setVisibleColumns: () => void;
    setNextColumnWidth: (col: Column, newWidth: number) => void;
    resolveColsCalcWidth: (width: number) => void;
};
export type UseColumns = ReturnType<typeof useColumns>;
export default useColumns;
