import EventEmitter from './EventEmitter'; import { IInsert } from './interfaces'; import Flow from './flow'; import AVLTree from './leafy/avl-tree'; import { ITerminalNode } from './nodes'; import Context from './context'; export default class AgendaTree extends EventEmitter { private flow; private comparator; private agendaGroupStack; private agendaGroups; private rules; constructor(flow: Flow, conflictResolution: (a: IInsert, b: IInsert) => number); addAgendaGroup(groupName: string): void; getAgendaGroup(groupName: string): AVLTree; setFocus(agendaGroup: string): this; getFocused(): string; getFocusedAgenda(): AVLTree; register(node: ITerminalNode): ITerminalNode; isEmpty(): boolean; fireNext(): Promise; pop(): IInsert; peek(): IInsert; modify(node: ITerminalNode, context: IInsert): void; retract(node: ITerminalNode, retract: Context | IInsert): void; insert(node: ITerminalNode, insert: IInsert): void; dispose(): void; }