/**
 * ProTable 类型定义
 */
import { ColumnProps, TableProps } from '@alicloudfe/components/types/table';
import { IProFieldType, IProFieldFormatterProps, IProFieldOptionItem, IProFieldValueEnum } from '@teamix/pro-field';
import { PaginationProps } from '@alicloudfe/components/types/pagination';
import { Method } from 'axios';
import React from 'react';
declare type IFieldRenderProps = keyof IProFieldFormatterProps;
declare type ITableCellRender = {
    [key in IFieldRenderProps]?: IProFieldFormatterProps[key] | ((...props: any) => void);
} | ((...other: any) => React.ReactNode);
declare type TDataService = {
    /** 翻页器总数 */
    total?: string;
    /** 表格数据 */
    data?: any;
};
export declare type ProColumnProps = {
    /**
     * 会在 title 之后展示一个 icon，hover 之后提示一些信息
     */
    tooltip?: string;
    /**
     * title 之后展示一个 icon 设置，可传 TeamixIcon 对应的 type，也可以是自定义 Icon
     */
    tooltipIcon?: React.ReactNode;
    valueType?: IProFieldType;
    /**
     * 是否显示搜索项
     */
    columnFilters?: boolean;
    render?: ITableCellRender;
    /** 格式化数据源 可以传入 options 格式化数据  */
    options?: IProFieldOptionItem[];
    /** 枚举值 它和 options 一般不会同时存在。如果同时存在，优先使用 valueEnum */
    valueEnum?: IProFieldValueEnum;
} & ColumnProps;
export declare type ProTableProps = {
    /** ProColums 定义，取代 Table 的 columns */
    columns: ProColumnProps[];
    /** 请求地址 */
    url?: string;
    /** 请求方法 */
    method?: Method;
    /** 请求参数 */
    params?: object;
    /** sort 排序请求参数处理函数 */
    formatSort?: (sort: object) => object;
    /** 如需自定义调用参数格式，则可以设定此值在请求前对 params 进行自定义，如果返回false则可以阻止请求 */
    formatParams?: (params: any) => typeof params;
    /** 对返回值的 data，total 进行映射处理  */
    formatResult?: TDataService | ((res: any) => TDataService);
    /** 请求成功后经过 formatResult 转换后的回调 */
    onFormatResult?: (data: any[]) => void;
    /** 是否第一次加载时就发起请求 */
    requestWhenMount?: boolean;
    /** 内部请求每次成功后的回调 */
    onSuccess?: (res: any) => void;
    /** 内部请求失败时的回调 */
    onError?: (error: Error) => void;
    /** 翻页页数的请求参数名  */
    pageKey?: string;
    /** 翻页器页数对应字段 */
    pageSizeKey?: string;
    /** 翻页器每页显示的条数 */
    pageSize?: number;
    /** 每页显示选择器可选值 */
    pageSizeList?: PaginationProps['pageSizeList'];
    /** 透传给翻页器的属性  */
    paginationProps?: PaginationProps;
    /** 是否显示翻页器  */
    showPagination?: boolean;
    /** ProTable action 的引用，便于手动触发一些方法  */
    actionRef?: React.MutableRefObject<ProTableActionType | undefined>;
    /** 是否首次加载渲染骨架屏  */
    showSkeleton?: boolean;
    /** 渲染骨架屏条数  */
    skeletonSize?: number;
} & Omit<TableProps, 'columns'> & ProTableHeaderProps;
export declare type ProTableActionType = {
    fullScreen?: () => void;
    setColumn?: (newColumns: ProColumnProps[]) => void;
    setSize?: (mode: 'small' | 'medium') => void;
    refresh?: (params?: any) => void;
};
export declare type ProTableToolBarProps = {} & ProTableLayoutProps;
export declare type ProTableHeaderProps = {
    /** 表格标题 */
    headerTitle?: React.ReactNode;
    /** 表格的 Tooltip */
    headerTooltip?: React.ReactNode;
    /** 表格的 Tooltip Icon */
    headerTooltipIcon?: React.ReactNode | string;
};
export declare type ProTableLayoutProps = {
    actionRef: React.MutableRefObject<ProTableActionType | undefined>;
    columns?: ProColumnProps[];
} & ProTableHeaderProps;
export {};
