import type { Range } from '@zakodium/nmr-types'; import type { CSSProperties, MouseEvent } from 'react'; import type { ExclusionZone } from '../../data/types/data1d/ExclusionZone.js'; export type HighlightEventSource = 'PEAK' | 'INTEGRAL' | 'SIGNAL' | 'RANGE' | 'RANGE_PEAK' | 'ZONE' | 'BASELINE_ZONE' | 'EXCLUSION_ZONE' | 'MATRIX_GENERATION_EXCLUSION_ZONE' | 'MULTIPLE_ANALYSIS_ZONE' | 'DATABASE' | 'ATOM' | 'PHASE_CORRECTION_TRACE' | 'UNKNOWN'; interface SourceData { type: HighlightEventSource; extra?: { zone?: ExclusionZone; spectrumID?: string; id?: string; jcampURL?: string; baseURL?: string; ranges?: Range[]; colKey?: string; } | null; } type HighlightActions = 'HIDE' | 'SHOW' | 'SET_PERMANENT' | 'UNSET_PERMANENT'; interface HighlightState { highlights: Record; highlighted: string[]; highlightedPermanently: string[]; sourceData: SourceData | null; } interface HighlightPayload { convertedHighlights: string[]; id?: number | string; sourceData?: SourceData | null; } interface HighlightContextProps { highlight: HighlightState; dispatch: (props: { type: HighlightActions; payload?: HighlightPayload; }) => void; remove: () => void; } export declare function HighlightProvider(props: any): import("react/jsx-runtime").JSX.Element; export declare function useHighlightData(): HighlightContextProps; /** * @param {Array} highlights * @param {SourceData = null} sourceData */ export declare function useHighlight(highlights: Array, sourceData?: SourceData | null): { isActive: boolean; defaultActiveStyle: CSSProperties; onHover: { onMouseEnter: () => void; onMouseLeave: () => void; }; onClick: (e: MouseEvent) => void; show: () => void; hide: () => void; isActivePermanently: boolean; click: (e: MouseEvent) => void; add: (id: number | string) => void; remove: (id: number | string) => void; }; export {}; //# sourceMappingURL=index.d.ts.map