import type { EventSourceType, EventType } from '../../../event/interface'; import type { IGroupTooltipPattern, ITooltipActual, ITooltipPattern, Maybe, MaybeArray, TooltipActiveType, TooltipData } from '../../../typings'; import type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common'; import type { ITooltipTheme } from './theme'; export interface ITooltipSpec extends Partial> { visible?: boolean; activeType?: TooltipActiveType | TooltipActiveType[]; trigger?: MaybeArray<'hover' | 'click' | { eventType: EventType; source?: EventSourceType; consume?: boolean; }> | 'none'; triggerOff?: MaybeArray<'hover' | 'click' | { eventType: EventType; source?: EventSourceType; consume?: boolean; checkOutside?: boolean; }> | 'none'; showDelay?: number; hideTimer?: number; lockAfterClick?: boolean; style?: Omit, 'offset' | 'transitionDuration'>; handler?: Partial; renderMode?: 'html' | 'canvas'; confine?: boolean; className?: string; parentElement?: Maybe; enterable?: boolean; transitionDuration?: number; throttleInterval?: number; updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void; offset?: { x?: number; y?: number; }; } type ISeriesToolipPattern = Pick; export interface ISeriesTooltipSpec extends Pick { dimension?: ISeriesToolipPattern; mark?: ISeriesToolipPattern; group?: Pick & ISeriesToolipPattern; } export interface ITooltipHandlerSpec { showTooltip: (activeType: TooltipActiveType, tooltipData: TooltipData, params: TooltipHandlerParams) => Maybe; hideTooltip: (params: TooltipHandlerParams) => Maybe; release: () => void; isTooltipShown?: () => boolean; } export {};