/**
 * Updates category value references for flow elements visually enclosed by groups.
 *
 * A flow element is grouped only when it shares the group's diagram root and
 * is geometrically enclosed by the group. Consequently, visible children of an
 * expanded subprocess are grouped, while children of a collapsed subprocess
 * are not.
 *
 * Groups without a category value are auto-healed: if such a group visually
 * encloses an affected flow element a category value is created for it on the
 * fly, so that legacy diagrams (groups modeled without a category value) start
 * to categorize their contents as soon as they are interacted with.
 *
 * @implements {CommandHandler}
 *
 */
export default class UpdateCategoryValueRefsHandler implements CommandHandler {
  static $inject: string[];

  /**
   * @param bpmnFactory
   * @param elementRegistry
   */
  constructor(bpmnFactory: BpmnFactory, elementRegistry: ElementRegistry);

  execute(context: any): any[];
  revert(context: any): any[];
}

type CommandHandler = import("diagram-js/lib/command/CommandHandler").default;
type ElementRegistry = import("diagram-js/lib/core/ElementRegistry").default;
type BpmnFactory = import("../BpmnFactory").default;
type Element = import("../../../model/Types").Element;
type ModdleElement = import("../../../model/Types").ModdleElement;

export type CategoryGroupEntry = {
    categoryValue: ModdleElement;
    root?: Element;
};
//# sourceMappingURL=UpdateCategoryValueRefsHandler.d.ts.map