import React, { CSSProperties, HTMLAttributes, ReactNode } from 'react';
import { ButtonProps, ButtonType } from '../Button';
import { WithRef } from '../utils/type';
export interface Props {
/** 是否打开 */
visible?: boolean;
title: ReactNode;
/**
* 宽度 单位 px
*
* @default 480
*/
width?: number;
/**
* 自定义底部按钮区域
*/
footer?: ReactNode;
/** 点击确定回调 */
onOk?: () => void | Promise;
/** 点击右上角叉、取消按钮、遮罩层或键盘按下 Esc 时的回调 */
onCancel?: () => void;
/**
* 不可见时是否自动销毁
*
* @default false
*/
autoDestroy?: boolean;
/** 自定义样式名 */
className?: string;
/** 自定义样式 */
style?: CSSProperties;
/** 抽屉内容 */
children?: ReactNode;
/**
* 根元素的 html 属性
*/
rootHtmlProps?: WithRef, 'onChange'>, HTMLDivElement>;
/**
* 遮罩的 html 属性
*/
maskHtmlProps?: WithRef, HTMLDivElement>;
/**
* 点击 mask 是否允许关闭对话框;默认使用全局配置 mask.drawer.clickable (true)
*/
maskClickable?: boolean;
}
export interface InternalDrawerProps extends Props {
/** 自定义 drawer render 逻辑 */
renderDrawer?: (node: ReactNode) => ReactNode;
}
export interface DrawerFooterCtxValue {
/** 点击确定回调 */
onOk?: () => Promise | void;
/** 点击取消回调 */
onCancel?: () => void;
}
/** 获取用于自定义 Footer 实现的上下文信息 */
export declare function useDrawerFooterCtx(): DrawerFooterCtxValue;
/** 对(icecream)内的 Drawer 实现,相比对外的 Drawer 提供更高的可定制化程度 */
export declare function InternalDrawer(props: InternalDrawerProps): React.JSX.Element;
export default function Drawer(props: Props): React.JSX.Element;
export interface DrawerFooterProps {
/** 确定按钮文本 */
okText?: string;
/** 取消按钮文本 */
cancelText?: string;
/** 确定按钮类型 */
okType?: ButtonType;
/** 取消按钮类型 */
cancelType?: ButtonType;
/** 确定按钮的 loading 状态 */
okLoading?: boolean;
/** 确定按钮的 props */
okButtonProps?: ButtonProps;
/** 取消按钮的 props */
cancelButtonProps?: ButtonProps;
}
export declare function DrawerFooter({ okText, cancelText, okType, cancelType, okLoading, okButtonProps, cancelButtonProps }: DrawerFooterProps): React.JSX.Element;