import { TemplateResult } from "lit"; import Mark from "../marks/mark.js"; export type TooltipGenomicDisplayMode = "auto" | "locus" | "interval" | "endpoints" | "disabled"; export interface TooltipGenomicAxisConfig { mode?: TooltipGenomicDisplayMode; } export interface TooltipHandlerParams { genomicCoordinates?: Partial>; [key: string]: any; } export interface TooltipRow { key: string; value: any; } export interface TooltipContext { /** * A list of row keys that should be hidden from the default tooltip table. */ hiddenRowKeys?: string[]; /** * Derived genomic rows to render before raw data rows. */ genomicRows?: TooltipRow[]; /** * Utility for flattening datum fields into tooltip rows. */ flattenDatumRows?: () => TooltipRow[]; /** * Utility for formatting a continuous genomic position. */ formatGenomicLocus?: (axis: "x" | "y", continuousPos: number) => string | undefined; /** * Utility for formatting a continuous genomic interval. */ formatGenomicInterval?: (axis: "x" | "y", interval: [number, number]) => string | undefined; } /** * Converts a datum to tooltip (HTMLElement or lit's TemplateResult). * * TODO: `mark` leaks internals. Keep it for compatibility in this major * version and replace with a stable tooltip context in the next major. */ export type TooltipHandler = (datum: Record, mark: Mark, /** Optional parameters from the view specification */ params?: TooltipHandlerParams, /** Optional precomputed context from GenomeSpy internals */ context?: TooltipContext) => Promise; //# sourceMappingURL=tooltipHandler.d.ts.map