///
import type { PromiseType } from '../../../util';
interface IBase {
/**
* @description 按钮唯一id
*/
id: string;
/**
* @description 按钮文本
*/
text: string;
}
interface IButton extends IBase {
/**
* @description 按钮图标
*/
icon?: string | React.ReactNode;
/**
* @description id 按钮id,text 按钮显示文本 toolbar 工具条实例 data 注入的业务数据,由getData返回
*/
onClick: (params: {
id: string;
text: string;
toolbar: any;
data: any;
}) => PromiseType;
/**
* @description 点击事件的前置事件,返回false取消向下执行
*/
before?: (params: {
id: string;
text: string;
toolbar: any;
data: any;
}) => PromiseType;
/**
* @description 点击事件的后置事件,value属性为click事件的返回值,其他属性同click
*/
after?: (params: {
id: string;
text: string;
toolbar: any;
data: any;
value: any;
}) => PromiseType;
}
interface IGroup extends IBase {
/**
* @description 子菜单
*/
children: Array;
}
type RegButtonType = IButton | IGroup;
/**
* 注册业务按钮(重写内置按钮)
* @param buttons 需要注入的按钮对象
*/
declare function registerToolBarButton(buttons: RegButtonType[]): void;
/**
*
* @param buttonId 返回注入的业务button
* @returns
*/
declare function getToolBarButton(buttonId: string): RegButtonType | undefined;
export { registerToolBarButton, getToolBarButton };