import { ReactNode } from 'react';
import { BaseProps } from '../../base/props';
import { Align, EdgePosition, VAlign } from '../../base/atoms';
import { BaseOverlay } from "../../../types";
export type PopupCloseIconPosition = Extract<EdgePosition, 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'>;
export type PopupPosition = Exclude<Align | VAlign, 'middle'> | 'none';
export interface BasePopup extends BaseProps, BaseOverlay {
    /**
    * 弹出位置
    */
    position: PopupPosition
    /**
    * 动画名
    */
    transition: string
    /**
    * 是否显示关闭按钮
    */
    closeable: boolean
    /**
    * 关闭按钮位置
    */
    closeIconPosition: PopupCloseIconPosition
    /**
    * 自定义 Icon
    */
    closeIcon: ReactNode
    /**
    * 标题左侧部分
    */
    left?: ReactNode
    /**
    * 标题中间部分
    */
    title?: ReactNode
    /**
    * 顶部占位
    */
    top?: ReactNode
    /**
    * 子标题/描述部分
    */
    description?: ReactNode
    /**
    * 组件不可见时，卸载内容
    */
    destroyOnClose: boolean
    /**
    * 是否显示遮罩
    */
    overlay: boolean
    /**
    * 是否显示圆角
    */
    round: boolean
    /**
    * 上下滑动调整高度，当前只支持从底部弹出
    */
    resizable: boolean
    /**
    * 设置最小高度
    */
    minHeight: string
    /**
    * 打开弹框时触发
    */
    onOpen: () => void
    /**
    * 关闭弹框时触发
    */
    onClose: () => void
    /**
    * 点击遮罩触发
    */
    onOverlayClick: (e: any) => boolean | void
    /**
    * 点击关闭图标时触发
    */
    onCloseIconClick: (e: any) => boolean | void
    /**
    * 滑动时触发
    */
    onTouchMove: (height: number, e: any, direction: 'up' | 'down') => void
    /**
    * 开始触碰时触发
    */
    onTouchStart: (height: number, e: any) => void
    /**
    * 结束触碰时触发
    */
    onTouchEnd: (height: number, e: any) => void
    /**
    * 关闭图标的 aria-label
    */
    closeAriaLabel?: string
}
