import { EventEmitter } from 'events';
import { SharedAnnotationManager } from './manager';
export class AnnotationUpdateEmitter extends EventEmitter {
  on(event, listener) {
    return super.on(event, listener);
  }
  off(event, listener) {
    return super.removeListener(event, listener);
  }
}

// type ActionResult = { step: Step; doc: JSONDocNode } | false;

// | false;

// ### Events

// ### Hook Results

/**
 * This is the list of methods which exist on the Manager interface. These are the methods that can be hooked into.
 */

/*
 * This is the public interface for the AnnotationManager. It provides methods for interacting with the manager.
 */

/**
 * This is a factory method which creates a new instance of the AnnotationManager.
 *
 * @example
 * const annotationManager: AnnotationManager = createAnnotationManager();
 */
export function createAnnotationManager() {
  return new SharedAnnotationManager();
}