/**
 * Flowtype definitions for useAnnotatorEvents.ts
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.10.0
 */

import * as React from "react";
import { EventEmitter } from "events";
import noop from "lodash/noop";
import { AnnotationActionEvent, Status } from "./types";
export interface UseAnnotatorEventsProps {
    eventEmitter: EventEmitter;
    onAnnotationDeleteEnd?: (annotationId: string) => void;
    onAnnotationDeleteStart?: (annotationId: string) => void;
    onAnnotationReplyAddEnd?: (eventData: {
        annotationId: string,
        reply: Object,
        requestId: string,
        ...
    }) => void;
    onAnnotationReplyAddStart?: (eventData: {
        annotationId: string,
        reply: Object,
        requestId: string,
        ...
    }) => void;
    onAnnotationReplyDeleteEnd?: (eventData: {
        annotationId: string,
        id: string,
        ...
    }) => void;
    onAnnotationReplyDeleteStart?: (eventData: {
        annotationId: string,
        id: string,
        ...
    }) => void;
    onAnnotationReplyUpdateEnd?: (eventData: {
        annotationId: string,
        reply: Object,
        ...
    }) => void;
    onAnnotationReplyUpdateStart?: (eventData: {
        annotationId: string,
        reply: Object,
        ...
    }) => void;
    onAnnotationUpdateEnd?: (annotation: Object) => void;
    onAnnotationUpdateStart?: (annotation: Object) => void;
    onSidebarAnnotationSelected?: (annotationId: string) => void;
}
declare function useAnnotatorEvents(x: UseAnnotatorEventsProps): void;
declare export default typeof useAnnotatorEvents;
