import PopperJS from "popper.js"; import React from "react"; export interface IRenderProps { getReferenceProps: () => { ref: React.Ref; onClick: React.MouseEventHandler; onMouseOver: React.MouseEventHandler; onMouseOut: React.MouseEventHandler; onFocus: React.FocusEventHandler; onBlur: React.FocusEventHandler; }; placement: PopperJS.Placement; outOfBoundaries: boolean; } export interface IProps { /** The desired placement of the tooltip. If offscreen, it will be adjusted. */ placement: PopperJS.Placement; /** RenderProp to create the reference element */ children: ((args: IRenderProps) => React.ReactNode) | React.ReactNode; /** Content of the tooltip */ content: React.ReactNode; /** Enable this if you want the tooltip to appear on click rather than hober. */ clickToOpen?: boolean; /** Optional id, used to link reference element to tooltip. If not provided, one will be generated. */ id?: string; /** Whether this popover starts open or not */ initialOpen?: boolean; /** Hover delay in ms. Defaults to 200 */ delayInMs?: number; /** Element to render if children is not a function. Defaults to "div" */ as?: keyof React.ReactHTML; } declare type State = "hover" | "out" | "over" | "click"; export default class Tooltip extends React.PureComponent, { isOpen: boolean; }> { static defaultProps: { delayInMs: number; }; referenceRef: any; popperRef: any; triggerId: string; tooltipId: string; state: { isOpen: boolean; }; handleHover: (state: State, relatedTarget: HTMLElement) => void; debouncedHandleHover: any; handleMouse: (e: React.MouseEvent | React.FocusEvent) => void; onClickOutside: () => void; render(): JSX.Element; } export {};