import type { PropsWithChildren } from 'react';
import type { BaseSchemaAny, ReactElementType, SchemaClassName } from 'jamis-core';
export type Trigger = 'hover' | 'click' | 'focus';
export interface TooltipObject {
    /**
     * 文字提示标题
     */
    title?: string;
    /**
     * 文字提示内容
     */
    content?: string | JSX.Element | BaseSchemaAny;
    /**
     * @deprecated 请使用content替代
     */
    body?: string | BaseSchemaAny;
    /**
     * 浮层出现位置
     */
    placement?: 'top' | 'right' | 'bottom' | 'left';
    /**
     * 主题样式
     */
    tooltipTheme?: 'light' | 'dark';
    /**
     * 浮层位置相对偏移量
     */
    offset?: [number, number];
    /**
     * 内容区自定义样式
     */
    style?: React.CSSProperties;
    /**
     * 是否可以移入浮层中, 默认true
     */
    enterable?: boolean;
    /**
     * 是否展示浮层指向箭头
     */
    showArrow?: boolean;
    /**
     * 是否禁用提示
     */
    disabled?: boolean;
    /**
     * 浮层延迟显示时间, 单位 ms
     */
    mouseEnterDelay?: number;
    /**
     * 浮层延迟隐藏时间, 单位 ms
     */
    mouseLeaveDelay?: number;
    /**
     * 浮层内容可通过JSX渲染
     */
    children?: () => JSX.Element;
    /**
     * 挂载容器元素
     */
    container?: ReactElementType;
    /**
     * 浮层触发方式
     */
    trigger?: Trigger | Array<Trigger>;
    /**
     * 是否点击非内容区域关闭提示，默认为true
     */
    rootClose?: boolean;
    /**
     * 文字提示浮层CSS类名
     */
    tooltipClassName?: SchemaClassName;
}
export interface TooltipWrapperProps extends PropsWithChildren {
    tooltip?: string | TooltipObject;
    placement: 'top' | 'right' | 'bottom' | 'left';
    container?: ReactElementType;
    trigger: Trigger | Array<Trigger>;
    rootClose: boolean;
    overlay?: any;
    delay: number;
    tooltipTheme?: string;
    tooltipClassName?: SchemaClassName;
    style?: React.CSSProperties;
    disabled?: boolean;
    /**
     * 显示&隐藏时触发
     */
    onVisibleChange?: (visible: boolean) => void;
}
export interface TooltipWrapperState {
    show?: boolean;
}
