import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { ConfigContextValue } from '../../../lib/config-provider/ConfigContext';
import { TooltipPlacement, TooltipTheme } from '../../../lib/tooltip';
import { RenderFunction, TriggerProps } from '../../../lib/trigger/Trigger';
import { Action } from '../../../lib/trigger/enum';
import { AdjustOverflow } from './placements';
export { TooltipPlacement, TooltipTheme };
export interface TooltipProps extends TriggerProps {
    placement?: TooltipPlacement;
    defaultHidden?: boolean;
    onHiddenBeforeChange?: (hidden: boolean) => boolean;
    onHiddenChange?: (hidden: boolean) => void;
    trigger?: Action[];
    openClassName?: string;
    arrowPointAtCenter?: boolean;
    autoAdjustOverflow?: boolean | AdjustOverflow;
    title?: React.ReactNode | RenderFunction;
    overlay?: React.ReactNode | RenderFunction;
    theme?: TooltipTheme;
}
export default class Tooltip extends Component<TooltipProps, any> {
    static get contextType(): React.Context<ConfigContextValue>;
    static displayName: string;
    static propTypes: {
        title: PropTypes.Requireable<any>;
        arrowPointAtCenter: PropTypes.Requireable<boolean>;
        autoAdjustOverflow: PropTypes.Requireable<boolean>;
        defaultHidden: PropTypes.Requireable<boolean>;
        mouseEnterDelay: PropTypes.Requireable<number>;
        mouseLeaveDelay: PropTypes.Requireable<number>;
        placement: PropTypes.Requireable<string>;
        trigger: PropTypes.Requireable<(Action | null | undefined)[]>;
        hidden: PropTypes.Requireable<boolean>;
        onHiddenChange: PropTypes.Requireable<(...args: any[]) => any>;
        suffixCls: PropTypes.Requireable<string>;
        transitionName: PropTypes.Requireable<string>;
        theme: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        suffixCls: string;
        placement: string;
        transitionName: string;
        mouseEnterDelay: number;
        mouseLeaveDelay: number;
        arrowPointAtCenter: boolean;
        autoAdjustOverflow: boolean;
        defaultHidden: boolean;
        trigger: Action[];
    };
    static show: any;
    static hide: any;
    context: ConfigContextValue;
    state: {
        translate: {
            x: number;
            y: number;
        };
    };
    get prefixCls(): string;
    get placements(): any;
    getContent(...props: any[]): any;
    handlePopupAlign(_source: any, _align: any, _target: any, translate: any): void;
    renderPopupContent(...props: any[]): JSX.Element | undefined;
    render(): JSX.Element | null;
}
