import { ClassName, Styles } from '../../common';
import type { TdBaseTableProps, TableRowData } from '../type';
import type { RowAndColFixedPosition, TableRowFixedClasses, TableColFixedClasses } from '../interface';
export declare function getColumnFixedStyles(col: TdBaseTableProps['columns'][0], index: number, rowAndColFixedPosition: RowAndColFixedPosition, tableColFixedClasses: TableColFixedClasses): {
    style?: Styles;
    classes?: ClassName;
};
export declare function getRowFixedStyles(rowId: string | number, rowIndex: number, rowLength: number, fixedRows: TdBaseTableProps['fixedRows'], rowAndColFixedPosition: RowAndColFixedPosition, tableRowFixedClasses: TableRowFixedClasses, virtualTranslateY?: number): {
    style: Styles;
    classes: ClassName;
};
export default function useFixed(props: TdBaseTableProps): {
    tableWidth: import("vue").Ref<number, number>;
    tableElmWidth: import("vue").Ref<number, number>;
    thWidthList: import("vue").Ref<{
        [colKey: string]: number;
    }, {
        [colKey: string]: number;
    }>;
    isFixedHeader: import("vue").Ref<boolean, boolean>;
    isWidthOverflow: import("vue").Ref<boolean, boolean>;
    tableContentRef: import("vue").Ref<HTMLDivElement, HTMLDivElement>;
    isFixedColumn: import("vue").Ref<boolean, boolean>;
    showColumnShadow: {
        left: boolean;
        right: boolean;
    };
    rowAndColFixedPosition: import("vue").ShallowRef<RowAndColFixedPosition, RowAndColFixedPosition>;
    virtualScrollHeaderPos: import("vue").Ref<{
        left: number;
        top: number;
    }, {
        left: number;
        top: number;
    } | {
        left: number;
        top: number;
    }>;
    setData: (dataSource: TableRowData[]) => void;
    refreshTable: () => void;
    setTableElmWidth: (width: number) => void;
    setUseFixedTableElmRef: (val: HTMLTableElement) => void;
    updateColumnFixedShadow: (target: HTMLElement, extra?: {
        skipScrollLimit?: boolean;
    }) => void;
    updateTableAfterColumnResize: () => void;
};
