import { Theme } from '@nivo/theming'; import { ReactElement } from 'react'; type PartialShallow = { [P in keyof T]?: T[P] extends object ? object : T[P]; }; type PropertyName = string | number | symbol; type IterateeShorthand = PropertyName | [PropertyName, any] | PartialShallow; type ListIterator = (value: T, index: number, collection: ArrayLike) => TResult; type ListIterateeCustom = ListIterator | IterateeShorthand; export type RelativeOrAbsolutePosition = number | { abs: number; }; export type AnnotationPositionGetter = (datum: Datum) => { x: number; y: number; }; export type AnnotationDimensionsGetter = (datum: Datum) => { size: number; width: number; height: number; }; export type NoteComponent = (props: { datum: Datum; x: number; y: number; }) => JSX.Element; export type NoteSvg = string | ReactElement | NoteComponent; export type NoteCanvasRenderer = (ctx: CanvasRenderingContext2D, props: { datum: Datum; x: number; y: number; theme: Theme; }) => void; export type NoteCanvas = string | NoteCanvasRenderer; export type Note = NoteSvg | NoteCanvas; export interface BaseAnnotationSpec { x?: number; y?: number; note: Note; noteX: RelativeOrAbsolutePosition; noteY: RelativeOrAbsolutePosition; noteWidth?: number; noteTextOffset?: number; } export type CircleAnnotationSpec = BaseAnnotationSpec & { type: 'circle'; size?: number; offset?: number; height?: never; width?: never; }; export type DotAnnotationSpec = BaseAnnotationSpec & { type: 'dot'; size: number; offset?: number; height?: never; width?: never; }; export type RectAnnotationSpec = BaseAnnotationSpec & { type: 'rect'; width?: number; height?: number; offset?: number; size?: never; borderRadius?: number; }; export type AnnotationSpec = CircleAnnotationSpec | DotAnnotationSpec | RectAnnotationSpec; export type AnnotationType = AnnotationSpec['type']; export type AnnotationMatcher = AnnotationSpec & { match: ListIterateeCustom; offset?: number; }; export type BoundAnnotation = Required> & { x: number; y: number; datum: Datum; }; export interface AnnotationInstructions { points: [number, number][]; text: [number, number]; angle: number; } export type ComputedAnnotation = BoundAnnotation & { computed: AnnotationInstructions; }; export {}; //# sourceMappingURL=types.d.ts.map