import React from 'react'; import { ActionPositions } from './typings'; import { ActionItem } from './typings/ActionItem'; import { ColumnFieldBase } from './typings/ColumnFieldBase'; import { FormFieldBase } from './typings/FormFieldBase'; import { PipeItem } from './typings/Pipe'; declare type BlockValue = React.ReactNode | ((...args: any[]) => React.ReactNode) | null | undefined; interface CustomTableBase { template?: string; renderTemplate?: (props: any) => React.ReactNode; customBlocks?: { [key: string]: BlockValue; }; dataSource?: T[]; rowKey?: string; loading?: boolean; actions?: ActionItem[]; features?: { [key: string]: { [key: string]: any; }; }; componentsMap: { [key: string]: (props: any) => React.ReactElement; }; } export declare type FieldConfig = { componentName: 'EnumColumnField' | 'OperationColumnField' | 'TextColumnField' | 'LinkColumnField' | 'SelectFormField' | 'SearchSelectFormField' | 'RangeDatePickerFormField' | 'InputFormField' | 'DatePickerFormField' | string; label: string; name: string; value?: string; pipes?: PipeItem[]; fixed?: 'left' | 'right'; width?: string | number; validators?: any[]; position?: string; actions?: ActionItem[]; dataSource?: any[] | ((...args: any[]) => Promise); deps?: []; [key: string]: any; }; export declare type onChangeFunc = (event: { originalEvent?: any; action: string; }, args: { pagination?: { pageSize?: number; current?: number; total?: number; }; filterValues?: { [key: string]: any; }; filters?: { [key: string]: any[]; }; sorter?: { sortField: string; sortOrder: 'asc' | 'desc'; }[]; }, extra?: { [key: string]: any; }) => void; export declare type CustomTableProps = CustomTableBase & { template?: 'Table' | 'Card' | 'List'; fields?: (FieldConfig & ColumnFieldBase)[]; requestApi?: any; beforeSearch?: any; initialValues: { [key: string]: any; }; pagination?: { current?: number; total?: number; pageSize?: number; }; selectedRowKeys?: string[] | number[]; selectedRows?: { [key: string]: any; }[]; features?: { pagination?: { pageSizeList?: number[]; showQuickJumper?: boolean; showTotal?: boolean; }; rowSelection?: { type?: 'checkbox' | 'radio'; fixed?: boolean; infoRender?: (selectedRowKeys?: string[] | number[], selectedRows?: { [key: string]: any; }[]) => React.ReactNode; onChange: (selectedRowKeys?: string[] | number[], selectedRows?: object[]) => void; }; filterProps?: { lazy?: boolean; light?: boolean; searchText?: string; resetText?: string; isShowResetButton?: boolean; }; bordered?: boolean; size?: 'default' | 'middle' | 'small'; }; title?: string; actions?: ActionItem[]; filterFields?: (FieldConfig & FormFieldBase)[]; filterValues?: object; onChange?: onChangeFunc; }; export {};