import { HTMLAttributes, ReactNode, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
import { Placement, Align, AlignVariant } from '../common/types';
interface ISelfProps {
    id?: string;
    tabIndex?: number;
    placement: Placement;
    align?: Align;
    content: ReactNode;
    children: ReactNode;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLDivElement>>;
interface IState {
    active: boolean;
    tooltipWithOffset: boolean;
}
export default class Tooltip extends PureComponent<IProps, IState> {
    static propTypes: {
        id: PropTypes.Requireable<string>;
        tabIndex: PropTypes.Requireable<number>;
        placement: PropTypes.Validator<Placement>;
        align: PropTypes.Requireable<LineAlignSetting>;
        content: PropTypes.Validator<PropTypes.ReactNodeLike>;
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
    };
    static defaultProps: {
        tabIndex: number;
        align: AlignVariant;
    };
    state: {
        active: boolean;
        tooltipWithOffset: boolean;
    };
    private elementRef;
    private tooltipRef;
    render(): JSX.Element;
    componentDidUpdate(_: any, { active: prevActive }: IState): void;
    private onElementRef;
    private onTooltipRef;
    private onShow;
    private onHide;
    private setTooltipPosition;
}
export {};
//# sourceMappingURL=Tooltip.d.ts.map