import { TAny } from '@flatbiz/utils';
import { ButtonProps } from 'antd';
import { CSSProperties, ReactElement, ReactNode } from 'react';

export type ButtonWrapperProps = Omit<ButtonProps, "onClick" | "color"> & {
	/** 当返回 Promise 时，按钮自动loading */
	onClick?: (e: React.MouseEvent<HTMLElement>) => Promise<TAny> | void;
	/** 重复点击间隙，单位毫秒 默认值：500 */
	debounceDuration?: number;
	/** 基于GLOBAL中elemAclLimits按钮权限列表，控制按钮显示、隐藏 */
	permission?: string;
	/** 是否隐藏按钮 */
	hidden?: boolean;
	/** loading 显示位置，默认值：left */
	loadingPosition?: "left" | "center";
	/** 移除按钮内边距，一般用于 type=link 类型下 */
	removeGap?: boolean;
	color?: string;
};
export type DialogDrawerContentProps = {
	footer?: (data: {
		onClose: () => void;
	}) => ReactElement;
	footerStyle?: CSSProperties;
	children?: ReactNode;
	okHidden?: boolean;
	cancelHidden?: boolean;
	okButtonExtraProps?: Omit<ButtonWrapperProps, "onClick" | "children" | "loading">;
	cancelButtonExtraProps?: Omit<ButtonWrapperProps, "onClick" | "children" | "loading">;
	okText?: string | ReactElement;
	cancelText?: string | ReactElement;
	onOk?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
	onCancel?: (e: React.MouseEvent<HTMLElement>) => void | Promise<void>;
};
/**
 * 当dialogDrawer底部操作按钮在业务content内部时，使用
 * ```
 * 1. 只能与 dialogDrawer 配合使用；与 FbaApp.useDialogDrawer 配合使用无效
 * 2. 设置 footer 后，okHidden、cancelHidden、okButtonExtraProps、cancelButtonExtraProps、okText、cancelText、onOk、onCancel全部失效
 * ```
 */
export declare const DialogDrawerContent: (props: DialogDrawerContentProps) => import("react").JSX.Element;

export {};
