import { StyleValue, ExtractPropTypes, PropType } from 'vue';
export interface TableColumnT {
    key: string;
    label?: string;
    style?: StyleValue;
}
export interface TableRowT {
    key?: string | number;
    [key: string]: any;
}
export interface TableCellT {
    value: any;
    key: string | number;
    colspan?: number;
    rowspan?: number;
    last?: boolean;
}
export type ColumnKeysT = Array<string>;
export type CellSpanT = (rowIndex: number, columnIndex: number, rowData?: TableRowT, column?: TableColumnT) => {
    rowspan?: number;
    colspan?: number;
} | undefined;
export declare const TableBorderTypes: readonly ["all", "row", "column", "frame", "row-column", "row-frame", "column-frame", "none"];
export type TableBorderT = (typeof TableBorderTypes)[number];
export declare const tableProps: {
    /**
     * 表头内容 TableColumnT[] | string[]
     */
    columns: {
        type: PropType<TableColumnT[] | string[]>;
    };
    /**
     * 表头内容 ColumnKeysT
     */
    columnKeys: {
        type: PropType<ColumnKeysT>;
    };
    /**
     * 表格数据 TableRowT[]
     */
    data: {
        type: PropType<TableRowT[]>;
    };
    /**
     * 是否显示边框 TableBorderT
     */
    border: {
        type: PropType<TableBorderT>;
        default: string;
    };
    /**
     * 是否小表格
     */
    small: {
        type: BooleanConstructor;
    };
    /**
     * 处理单元格合并(表体部分，不包含表头) CellSpanT
     */
    cellSpan: {
        type: PropType<CellSpanT>;
    };
    /**
     * 空数据提示文本
     */
    emptyLabel: {
        type: StringConstructor;
    };
    /**
     * 是否正在加载
     */
    loading: {
        type: BooleanConstructor;
    };
    /**
     * 加载提示文本
     */
    loadingLabel: {
        type: StringConstructor;
    };
};
export type TablePropsT = ExtractPropTypes<typeof tableProps>;
