import { TNodeReturnValue } from '../common';
import { TdBaseTableProps, TableExpandedRowParams, TableRowData, TdPrimaryTableProps, TdEnhancedTableProps, RowspanColspan, BaseTableCol } from './type';
export interface BaseTableProps extends TdBaseTableProps {
    renderExpandedRow?: (params: TableExpandedRowParams<TableRowData>) => TNodeReturnValue;
    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 = BaseTableCol<TableRowData>[];
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>;
