message: Use configured document and object classes in controls layer
diff: * 2) Ruler measurement
  * 3) Map pings
  */
  -declare class ControlsLayer extends CanvasLayer<ControlsLayer.LayerOptions> {
  +import { ConfiguredDocumentClass, ConfiguredObjectClassForName } from '../../../../../types/helperTypes';
  +
  +declare global {
  + class ControlsLayer extends CanvasLayer<ControlsLayer.LayerOptions> {
  constructor();
  /**
  @@ -92,7 +95,7 @@ declare class ControlsLayer extends CanvasLayer<ControlsLayer.LayerOptions> {
  * @param wall - The Wall for which to create a DoorControl
  * @returns The created DoorControl
  */
  - createDoorControl(wall: Wall): ReturnType<DoorControl['draw']> | null;
  + createDoorControl(wall: InstanceType<ConfiguredObjectClassForName<'Wall'>>): ReturnType<DoorControl['draw']> | null;
  /**
  * Draw Ruler tools
  @@ -117,24 +120,28 @@ declare class ControlsLayer extends CanvasLayer<ControlsLayer.LayerOptions> {
  * Create and draw the Cursor object for a given User
  * @param user - The User entity for whom to draw the cursor Container
  */
  - drawCursor(user: User): Cursor;
  + drawCursor(user: InstanceType<ConfiguredDocumentClass<typeof User>>): Cursor;
  /**
  * Update the cursor when the user moves to a new position
  * @param user - The User for whom to update the cursor
  * @param position - The new cursor position
  */
  - updateCursor(user: User, position: Point | null): void;
  + updateCursor(user: InstanceType<ConfiguredDocumentClass<typeof User>>, position: Point | null): void;
  /**
  * Update display of an active Ruler object for a user given provided data
  */
  - updateRuler(user: User, rulerData: Parameters<Ruler['update']>[0] | null): void;
  + updateRuler(
  + user: InstanceType<ConfiguredDocumentClass<typeof User>>,
  + rulerData: Parameters<Ruler['update']>[0] | null
  + ): void;
  }
  -declare namespace ControlsLayer {
  + namespace ControlsLayer {
  interface LayerOptions extends CanvasLayer.LayerOptions {
  name: '';
  zIndex: 1000;
  }
  }
  +}
  