import type { CreateElement } from 'vue';
import type { BaseTableCol, RowspanColspan, TableExpandedRowParams, TableRowData, TdBaseTableProps, TdEnhancedTableProps, TdPrimaryTableProps } from './type';
export interface BaseTableProps extends TdBaseTableProps {
    renderExpandedRow?: (h: CreateElement, params: TableExpandedRowParams<TableRowData>) => JSX.Element;
    onLeafColumnsChange?: (columns: BaseTableColumns) => void;
    thDraggable?: boolean;
}
export declare type PrimaryTableProps = TdPrimaryTableProps;
export declare type EnhancedTableProps = TdEnhancedTableProps;
export declare type TableProps = PrimaryTableProps;
export declare type ThRowspanAndColspan = Map<any, RowspanColspan>;
export declare type BaseTableColumns = TdBaseTableProps['columns'];
export interface ColumnStickyLeftAndRight {
    left: number[];
    right: number[];
    top: number[];
    bottom?: number[];
}
export interface TableColFixedClasses {
    left: string;
    right: string;
    lastLeft: string;
    firstRight: string;
    leftShadow: string;
    rightShadow: string;
}
export interface TableRowFixedClasses {
    top: string;
    bottom: string;
    firstBottom: string;
    withoutBorderBottom: string;
}
export interface FixedColumnInfo {
    left?: number;
    right?: number;
    top?: number;
    bottom?: number;
    parent?: FixedColumnInfo;
    children?: string[];
    width?: number;
    height?: number;
    col?: BaseTableCol;
    index?: number;
    lastLeftFixedCol?: boolean;
    firstRightFixedCol?: boolean;
}
export declare type RowAndColFixedPosition = Map<string | number, FixedColumnInfo>;
