import React from 'react';
import { EventAnnotationTooltip } from './Tooltips';
import { PlotUtilities } from './renderers/types';
import { VizTheme } from './theme';
import { AlertAnnotationSeverity, AnnotationType } from './types';
export type EventAnnotation = {
    time: number;
    key?: string;
    type?: AnnotationType;
    severity?: AlertAnnotationSeverity;
    isCleared?: boolean;
};
export type EventAnnotationIconProps = {
    theme: VizTheme;
    dimensions: {
        width: number;
        height: number;
    };
    isCleared?: boolean;
};
export type EventAnnotationRendererProps = {
    event: EventAnnotation;
} & EventAnnotationIconProps;
export type EventAnnotationWResolution = EventAnnotation & {
    xResolution?: number;
};
export type EventAnnotationConfig = {
    renderer?: React.FC<EventAnnotationRendererProps>;
    tooltip?: EventAnnotationTooltip;
    onEventAnnotationHover?: (timestamp: number | undefined) => void;
    onEventAnnotationClick?: (event: EventAnnotationWResolution, mouseEvent?: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
};
export declare const EVENT_ANNOTATION_DIMENSIONS: {
    width: number;
    height: number;
};
type Props = {
    plotUtilities?: PlotUtilities;
    events?: EventAnnotation[];
    xResolution?: number;
    eventAnnotationConfig?: EventAnnotationConfig;
    onEventAnnotationHover: (event?: EventAnnotation) => void;
    onEventAnnotationClick?: (event: EventAnnotationWResolution, mouseEvent?: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
};
export declare const EventAnnotationContainer: React.FC<Props>;
export declare const getEventAnnotationRenderer: (eventAnnotationConfig?: EventAnnotationConfig) => React.FC<EventAnnotationRendererProps>;
export {};
