/// <reference types="react" />
import { MessageProps } from '@alifd/next/types/message';
import { NodeProps, TreeProps } from '@alifd/next/types/tree';
import { CommonRequestConfig } from '@teamix/utils';
import { ProTagItem } from '../field';
import { ProActionConfig, ProCardProps, ProFieldProps, ProFieldRenderProps, ProFieldType } from '..';
/** ProSidebar 定义 */
export declare type ProSidebarProps = {
    /** 数据源 */
    dataSource?: ProSidebarDataSource;
    /** 点击的节点 */
    selectedKeys?: TreeProps['selectedKeys'];
    /** 选中的节点 */
    checkedKeys?: TreeProps['checkedKeys'];
    /** 节点点击回调 */
    onSelect?: TreeProps['onSelect'];
    /** 节点选中回调 */
    onCheck?: TreeProps['onCheck'];
    /** 树配置 */
    treeProps?: TreeProps;
    /** 卡片配置 */
    cardProps?: ProCardProps;
    /** 显示数量 */
    showExtraNumber?: boolean;
    /** actionRef */
    actionRef?: React.MutableRefObject<ProSidebarActionType | undefined>;
    /** 渲染树节点之前的回调 dataSource 变动时调用 */
    beforeRenderNode?: (item: ProSidebarDataSourceItem, level: number, dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
    /** 监听渲染树节点之前的事件 当节点状态改变、dataSource 变动时调用 */
    onBeforeRenderNodeEvent?: (item: ProSidebarDataSourceItem, checkedKeys: TreeProps['checkedKeys'], selectedKeys: TreeProps['selectedKeys'], dataSource: ProSidebarDataSource) => ProSidebarDataSourceItem;
} & Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> & Omit<ProSidebarContainerProps, 'onSelect'> & ProSidebarRequestProps;
/** 数据源定义 */
export declare type ProSidebarDataSource = ProSidebarDataSourceItem[];
export declare type ProSidebarDataSourceItem = {
    /** 展示值 */
    label?: string;
    /** 绑定值 */
    value?: any;
    /** 标签 */
    tag?: ProTagItem;
    /** 右侧操作、状态区 */
    extra?: ProSidebarExtraProps;
    /** 子项 */
    children?: ProSidebarDataSourceItem[];
    /** label 类型 对应 ProFieldType */
    valueType?: ProFieldType;
    /** 渲染 label 的 render 对应 ProFieldRenderProps */
    render?: ProFieldRenderProps;
    /** ProField 的其他配置项 */
    fieldProps?: ProFieldProps;
    /** TreeNode 的其他配置项 */
    treeNodeProps?: ProFieldProps;
} & NodeProps;
/** 单项 extra 配置项 */
export declare type ProSidebarExtraProps = React.ReactNode | (ProSidebarExtraPropsItem | React.ReactNode)[];
export declare type ProSidebarExtraPropsItem = {
    /** 相应功能项 */
    type: 'action' | 'iconSwitch' | 'iconAction' | 'custom';
    /** action 相应配置 */
    action: ProActionConfig;
    /** 相应配置 */
    props: any;
    /** 是否 hover 显示 */
    hover?: boolean;
    /** 自定义渲染 仅在 custom 有效 */
    trigger?: any;
};
/** sidebar 容器定义 */
export declare type ProSidebarContainerProps = {
    children?: React.ReactNode;
    /** 搜索输入提示 */
    searchPlaceholder?: string;
    /** 搜索输入其他参数 ProField 参数 */
    searchProps?: ProFieldProps;
    /** 是否展示搜索框 */
    showSearch?: boolean;
    /** 自定义搜索 */
    customSearch?: React.ReactNode;
    /** 搜索框变化的回调函数 */
    searchOnChange?: (value: any) => void;
    /** 通知提示消息区域 */
    message?: React.ReactNode;
    /** 自定义消息通知区域 */
    customMessage?: React.ReactNode;
    /** 消息通知区域的其他参数 */
    messageProps?: MessageProps;
    /** 滚动区域 仅在使用 ProPageContainer 时有效 */
    scrollArea?: 'all' | 'tree';
    /** 是否显示展开全部 */
    showExpandAll?: boolean;
    /** 展开全部 状态 */
    expandAllState?: boolean;
    /** 是否显示展开层级 */
    showExpandLevel?: boolean;
    /** 展开全部变化回调 */
    onExpandAllChange?: (state: boolean) => void;
    /** 展开层级变化回调 */
    onExpandLevelChange?: (state: number) => void;
    /** 展开层级 层级 */
    expandLevel?: number;
    /** 展开层级 当前所展示层级 */
    expandLevelState?: number;
    /** 列表 or tree */
    isTree?: boolean;
} & ProCardProps;
/** ProSidebarTree 内容定义 */
export declare type ProSidebarTreeProps = {
    dataSource?: ProSidebarDataSource;
    /** 搜索过滤关键词 */
    searchKey?: string;
    /** 显示数量 */
    showExtraNumber?: ProSidebarProps['showExtraNumber'];
    /** actionRef */
    actionRef: React.MutableRefObject<ProSidebarActionType | undefined>;
    /** 渲染树节点之前的回调 */
    onBeforeRenderNodeEvent?: ProSidebarProps['onBeforeRenderNodeEvent'];
    /** 渲染树节点之前的回调 dataSource 变动时调用 */
    beforeRenderNode?: ProSidebarProps['beforeRenderNode'];
    /** 展开全部 */
    expandAll?: boolean;
    /** 展开节点层级 */
    expandLevel?: number;
    /** dataSource 变化的回调 */
    onDataSourceChange?: (dataSource: ProSidebarDataSource) => void;
} & TreeProps;
/** ProSidebarTreeNode 内容定义 */
export declare type ProSidebarTreeNodeProps = {
    dataSource?: ProSidebarDataSource;
};
/** ProSidebar ActionRef 定义 */
export declare type ProSidebarActionType = {
    /** 设置树节点 */
    setTreeNode?: (treeNode: ProSidebarDataSourceItem) => void;
    /** 刷新 */
    refresh?: () => void;
};
/** ProSidebar 请求相关定义 */
export declare type ProSidebarRequestProps = {
    /** 请求地址 */
    url?: string;
} & Omit<CommonRequestConfig, 'url'>;
