import { createDecorator } from "../../instantiation/common/instantiation.mjs";
const IUndoRedoService = createDecorator("undoRedoService");
class ResourceEditStackSnapshot {
  constructor(resource, elements) {
    this.resource = resource;
    this.elements = elements;
  }
}
class UndoRedoGroup {
  constructor() {
    this.id = UndoRedoGroup._ID++;
    this.order = 1;
  }
  nextOrder() {
    if (this.id === 0) {
      return 0;
    }
    return this.order++;
  }
}
UndoRedoGroup._ID = 0;
UndoRedoGroup.None = new UndoRedoGroup();
class UndoRedoSource {
  constructor() {
    this.id = UndoRedoSource._ID++;
    this.order = 1;
  }
  nextOrder() {
    if (this.id === 0) {
      return 0;
    }
    return this.order++;
  }
}
UndoRedoSource._ID = 0;
UndoRedoSource.None = new UndoRedoSource();
export {
  IUndoRedoService,
  ResourceEditStackSnapshot,
  UndoRedoGroup,
  UndoRedoSource
};
