import type { ISizeType } from '@cainiaofe/cn-ui-common';
import * as React from 'react';
import { CnButtonProps, ICnTableColumn } from '@cainiaofe/cn-ui';
export interface Obj {
    [key: string]: unknown;
}
export interface formatMap {
    [key: string]: ICnTableColumn;
}
export type Fn = (...args: unknown[]) => unknown;
export interface ICnTableToolbarItemObj {
    children: React.ReactNode;
    type?: 'primary' | 'secondary' | 'normal' | undefined;
    onClick?: (event: MouseEvent, selectKeys: string[], selectRecord: any[], selectInfo: any[]) => void;
    visible?: (selectKeys: string[], selectRecord: any[], selectInfo: any[]) => boolean;
    isDisabled?: (selectKeys: string[], selectRecord: any[], selectInfo: any[]) => boolean;
    buttonProps?: Partial<CnButtonProps>;
}
export type ICnTableToolbarItemFunc = (selectKeys: string[], selectInfo: any[]) => React.ReactNode;
export type SettingType = 'size' | 'columnSet' | 'fullscreen' | 'zebra' | ISetting;
export interface ISetting {
    type: SettingType;
    onChange?: (any: any) => void;
    zIndex?: number;
}
export interface IToolbar {
    buttonSize?: ISizeType;
    batchArea?: Array<ICnTableToolbarItemObj | ICnTableToolbarItemFunc | JSX.Element>;
    toolArea?: Array<ICnTableToolbarItemObj | ICnTableToolbarItemFunc>;
    settings?: SettingType[];
    allColumns?: ICnTableColumn[];
}
