import { ReactNode } from 'react';
import { ColumnProps } from './components/Column/Column';
import { Header, Column, ColumnTitle } from './components';
declare type ColumnType<T> = ColumnProps<T>;
export interface TableProps<T> {
    /** 表格标题 */
    title?: string;
    /** 表格配置 */
    columns?: ColumnType<T>[];
    /** 子组件 */
    children?: ReactNode;
    /** 获取导出数据 */
    getExportedData?: () => Promise<T[]>;
}
export interface TableType<T> extends React.FC<TableProps<T>> {
    Header: typeof Header;
    Column: typeof Column;
    ColumnTitle: typeof ColumnTitle;
}
export interface ColumnItem<T> {
    /** 标题 */
    title?: HeaderItem;
    /** 数据名称路径 */
    dataIndex?: string;
    /**  格式化值 */
    formatValue?: (value: unknown, record: T) => string | number | undefined;
    /** 内容水平垂直居中 */
    center?: boolean;
    /** 内容水平布局 */
    align?: 'left' | 'right' | 'center';
    /** 内容垂直布局 */
    verticalAlign?: 'top' | 'bottom' | 'center';
    /** 文字颜色（csv格式无效） */
    color?: string;
    /** 文字大小（csv格式无效） */
    fontSize?: number;
    /** 文字加粗（csv格式无效） */
    bold?: true;
    /** 单元格背景颜色（csv格式无效） */
    background?: string;
    /** 单元格宽度（csv格式无效） */
    width?: number;
    /** 单元格边框宽度（csv格式无效） */
    borderSize?: string;
    /** 单元格边框颜色（csv格式无效） */
    borderColor?: string;
}
export interface HeaderItem {
    /** 标题 */
    title?: string;
    /** 内容水平垂直居中 */
    center?: boolean;
    /** 内容水平布局 */
    align?: 'left' | 'right' | 'center';
    /** 内容垂直布局 */
    verticalAlign?: 'top' | 'bottom' | 'center';
    /** 文字颜色（csv格式无效） */
    color?: string;
    /** 文字大小（csv格式无效） */
    fontSize?: number;
    /** 文字加粗（csv格式无效） */
    bold?: true;
    /** 斜体文字（csv格式无效） */
    italic?: true;
    /** 单元格背景颜色（csv格式无效） */
    background?: string;
    /** 单元格宽度（csv格式无效） */
    width?: number;
    /** 单元格边框宽度（csv格式无效） */
    borderSize?: string;
    /** 单元格边框颜色（csv格式无效） */
    borderColor?: string;
    /** 子组件 */
    children?: string;
}
interface ExportTableCxt<T> {
    /** 导出数据 */
    data?: T[];
    /** 导出表格标题 */
    header?: HeaderItem;
    /** 导出表格列配置 */
    columns: ColumnItem<T>[];
    setHeader?: (header?: HeaderItem) => void;
    addColumn?: (column: ColumnItem<T>) => void;
}
export declare const ExportTableContext: import("react").Context<ExportTableCxt<unknown>>;
declare const Table: TableType<unknown>;
export default Table;
