import type { ReactNode } from "react"; import type { Root } from "../../root/root.js"; export type AnnotationIndexOrId = number | string; export type AnnotationAnchorRange = { readonly kind: "range"; readonly rowStart: AnnotationIndexOrId; readonly rowEnd: AnnotationIndexOrId; readonly colStart: AnnotationIndexOrId; readonly colEnd: AnnotationIndexOrId; }; export type AnnotationAnchorPoint = { readonly kind: "point"; readonly x: number; readonly y: number; }; export type AnnotationAnchorHeader = { readonly kind: "header"; readonly colStart: AnnotationIndexOrId; readonly colEnd: AnnotationIndexOrId; }; export type AnnotationAnchor = AnnotationAnchorRange | AnnotationAnchorPoint | AnnotationAnchorHeader; export type Annotation = { readonly id: string; readonly anchor: AnnotationAnchor; readonly render: (params: { readonly api: Root.API; }) => ReactNode; readonly zIndex?: number; };