import { ReactNode } from 'react'; declare type AlignType = 'left' | 'right' | 'center'; export interface RowSelectType { /** 选择模式, 是单选还是多选模式 */ model: 'single' | 'multiple'; /** 点击模式, row 表示点击表格行则进行选中 */ clickModel?: 'row'; /** 是否允许单选不为空 */ allowSingleSelectNonEmpty?: boolean; /** 允许禁用选择这一行 */ allowDisabledSelect?: (row: T) => boolean; } export declare type AllowCellSelectBorderParam = { row: T; selectd?: boolean; }; interface RenderType { column: Column; row: T; value: string; } interface EditRenderType extends RenderType { /** 编辑完成后调用的方法 */ onFinish: () => void; /** 表格改变后触发的事件 */ onChange: (value: string) => void; } export interface Column { /** 对应的字段名称 */ name: string; /** 标题显示的名称 */ title: ReactNode; /** 列的宽度信息 */ width?: number | string; /** 是否可改变列的大小 */ resizable?: boolean; /** 是否可以排序 */ sort?: boolean; /** 固定列的方向 */ fixed?: 'left' | 'right'; /** 是否只读 */ readOnly?: boolean; /** 是否隐藏此列 */ hidden?: boolean; /** 设置列的对齐方式 */ align?: { /** 默认为 left */ header?: AlignType; /** 默认为 center */ body?: AlignType | ((row: T) => AlignType); }; /** 汇总栏 */ summary?: (rows: T[]) => ReactNode; /** 编辑器 */ editor?: (renderType: EditRenderType) => ReactNode; /** 渲染单元格触发的事件 */ render?: (renderType: RenderType) => ReactNode; /** 是否允许显示选择的边框 */ allowCellSelectBorder?: ((param: AllowCellSelectBorderParam) => boolean) | boolean; } export interface SortDirection { name: string; direction?: 'ASC' | 'DESC'; } export declare type RowClassNameParam = { className: string; row: T; }; export {};