MLightCAD
    Preparing search index...
    • Composable: useHover

      Tracks which CAD entity is currently hovered in the active view.

      This composable automatically listens to hover and unhover events from the AcApDocManager.instance.curView.events system in the CAD viewer. It exposes reactive state containing:

      • The currently hovered entity (entity)
      • The hovered entity’s object ID (id)
      • The mouse position when hovering (mouse)
      • A boolean indicating if an entity is hovered (hovered)

      When the component using this composable unmounts, all event listeners are automatically cleaned up.


      Returns {
          entity: Ref<
              | {
                  attrs: {
                      attributes: {
                          extensionDictionary?: string;
                          objectId?: string;
                          ownerId?: string;
                          [key: string]: any;
                      };
                      changed: {
                          extensionDictionary?: string;
                          objectId?: string;
                          ownerId?: string;
                          [key: string]: any;
                      };
                      events: {
                          attrChanged: {
                              addEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                          };
                          modelChanged: {
                              addEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                          };
                      };
                      changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                      clone(): AcCmObject<AcDbObjectAttrs>;
                      get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                      has(key: string): boolean;
                      hasChanged(key?: string): boolean;
                      previous<A extends string>(
                          key: A,
                      ): AcDbObjectAttrs[A] | null | undefined;
                      previousAttributes(): Partial<T>;
                      set<A extends string>(
                          key: A,
                          val?: AcDbObjectAttrs[A],
                          options?: AcCmObjectOptions,
                      ): this;
                      set(key: Partial<T>, options?: AcCmObjectOptions): this;
                  };
                  color: {
                      blue: number
                      | undefined;
                      colorIndex: number | undefined;
                      colorMethod: AcCmColorMethod;
                      colorName: string | undefined;
                      cssColor: string | undefined;
                      green: number | undefined;
                      hexColor: string | undefined;
                      isByACI: boolean;
                      isByBlock: boolean;
                      isByColor: boolean;
                      isByLayer: boolean;
                      isForeground: boolean;
                      red: number | undefined;
                      RGB: number | undefined;
                      clone(): AcCmColor;
                      copy(other: AcCmColor): this;
                      cssColorAlpha(alpha: number): string | undefined;
                      equals(other: AcCmColor): boolean;
                      setByBlock(value?: number): this;
                      setByLayer(value?: number): this;
                      setForeground(): this;
                      setRGB(r: number, g: number, b: number): this;
                      setRGBFromCss(cssString: string): this;
                      setRGBValue(value: number | null | undefined): this;
                      setScalar(scalar: number): this;
                      toString(): string;
                  };
                  database: {
                      angBase: number;
                      angDir: number;
                      attrs: {
                          attributes: {
                              extensionDictionary?: string;
                              objectId?: string;
                              ownerId?: string;
                              [key: string]: any;
                          };
                          changed: {
                              extensionDictionary?: string;
                              objectId?: string;
                              ownerId?: string;
                              [key: string]: any;
                          };
                          events: {
                              attrChanged: {
                                  addEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                                  dispatch(
                                      payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                      ...args: unknown[],
                                  ): void;
                                  removeEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                                  replaceEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                              };
                              modelChanged: {
                                  addEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                                  dispatch(
                                      payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                      ...args: unknown[],
                                  ): void;
                                  removeEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                                  replaceEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                              };
                          };
                          changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                          clone(): AcCmObject<AcDbObjectAttrs>;
                          get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                          has(key: string): boolean;
                          hasChanged(key?: string): boolean;
                          previous<A extends string>(
                              key: A,
                          ): AcDbObjectAttrs[A] | null | undefined;
                          previousAttributes(): Partial<T>;
                          set<A extends string>(
                              key: A,
                              val?: AcDbObjectAttrs[A],
                              options?: AcCmObjectOptions,
                          ): this;
                          set(key: Partial<T>, options?: AcCmObjectOptions): this;
                      };
                      aunits: number;
                      cecolor: {
                          blue: number
                          | undefined;
                          colorIndex: number | undefined;
                          colorMethod: AcCmColorMethod;
                          colorName: string | undefined;
                          cssColor: string | undefined;
                          green: number | undefined;
                          hexColor: string | undefined;
                          isByACI: boolean;
                          isByBlock: boolean;
                          isByColor: boolean;
                          isByLayer: boolean;
                          isForeground: boolean;
                          red: number | undefined;
                          RGB: number | undefined;
                          clone(): AcCmColor;
                          copy(other: AcCmColor): this;
                          cssColorAlpha(alpha: number): string | undefined;
                          equals(other: AcCmColor): boolean;
                          setByBlock(value?: number): this;
                          setByLayer(value?: number): this;
                          setForeground(): this;
                          setRGB(r: number, g: number, b: number): this;
                          setRGBFromCss(cssString: string): this;
                          setRGBValue(value: number | null | undefined): this;
                          setScalar(scalar: number): this;
                          toString(): string;
                      };
                      celtscale: number;
                      celtype: string;
                      celweight: AcGiLineWeight;
                      clayer: string;
                      currentSpaceId: string;
                      database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                      events: {
                          dictObjectErased: {
                              addEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                          };
                          dictObjetSet: {
                              addEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                          };
                          entityAppended: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          entityErased: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          entityModified: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          layerAppended: {
                              addEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                          };
                          layerErased: {
                              addEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                          };
                          layerModified: {
                              addEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcDbLayerModifiedEventArgs,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                          };
                          openProgress: {
                              addEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbProgressdEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                          };
                      };
                      extensionDictionary: string
                      | undefined;
                      extents: {
                          center: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          max: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          min: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          size: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          applyMatrix4(matrix: AcGeMatrix3d): this;
                          clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                          clone(): AcGeBox3d;
                          containsBox(box: AcGeBox3d): boolean;
                          containsPoint(point: AcGeVector3dLike): boolean;
                          copy(box: AcGeBox3d): this;
                          distanceToPoint(point: AcGeVector3dLike): number;
                          equals(box: AcGeBox3d): boolean;
                          expandByPoint(point: AcGeVector3dLike): this;
                          expandByScalar(scalar: number): this;
                          expandByVector(vector: AcGeVector3dLike): this;
                          getCenter(target: AcGeVector3d): AcGeVector3d;
                          getParameter(
                              point: AcGeVector3dLike,
                              target: AcGeVector3d,
                          ): AcGeVector3d;
                          getSize(target: AcGeVector3d): AcGeVector3d;
                          intersect(box: AcGeBox3d): this;
                          intersectsBox(box: AcGeBox3d): boolean;
                          intersectsPlane(plane: AcGePlane): boolean;
                          isEmpty(): boolean;
                          makeEmpty(): this;
                          set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          setFromArray(array: number[]): this;
                          setFromCenterAndSize(
                              center: AcGeVector3dLike,
                              size: AcGeVector3dLike,
                          ): this;
                          setFromPoints(points: AcGeVector3dLike[]): this;
                          translate(offset: AcGeVector3dLike): this;
                          union(box: AcGeBox3d): this;
                      };
                      extmax: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGePoint3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      extmin: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGePoint3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      insunits: number;
                      isTemp: any;
                      ltscale: number;
                      lwdisplay: boolean;
                      objectId: string;
                      objects: {
                          dictionary: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<
                                  [string, AcDbDictionary<AcDbObject<(...)>>],
                              >;
                              getAt(
                                  name: string,
                              ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(
                                  id: string,
                              ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<
                                  AcDbDictionary<AcDbObject<AcDbObjectAttrs>>,
                              >;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbDictionary): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          imageDefinition: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbRasterImageDef]>;
                              getAt(name: string): AcDbRasterImageDef | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbRasterImageDef | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbRasterImageDef): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          layout: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              maxTabOrder: number;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbLayout]>;
                              getAt(name: string): AcDbLayout | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getBtrIdAt(id: string): AcDbLayout | undefined;
                              getIdAt(id: string): AcDbLayout | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLayout>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbLayout): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          xrecord: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbXrecord]>;
                              getAt(name: string): AcDbXrecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbXrecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbXrecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbXrecord): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                      };
                      osmode: number;
                      ownerId: string;
                      pdmode: number;
                      pdsize: number;
                      tables: {
                          appIdTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbRegAppTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbRegAppTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbRegAppTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbRegAppTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbRegAppTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          blockTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              modelSpace: {
                                  attrs: {
                                      attributes: {
                                          extensionDictionary?: (...) | (...);
                                          name?: (...) | (...);
                                          objectId?: (...) | (...);
                                          ownerId?: (...) | (...);
                                          [key: string]: any;
                                      };
                                      changed: {
                                          extensionDictionary?: (...)
                                          | (...);
                                          name?: (...) | (...);
                                          objectId?: (...) | (...);
                                          ownerId?: (...) | (...);
                                          [key: string]: any;
                                      };
                                      events: {
                                          attrChanged: {
                                              addEventListener(listener: ...): ...;
                                              dispatch(payload?: ..., ...args: ...): ...;
                                              removeEventListener(listener: ...): ...;
                                              replaceEventListener(listener: ...): ...;
                                          };
                                          modelChanged: {
                                              addEventListener(listener: ...): ...;
                                              dispatch(payload?: ..., ...args: ...): ...;
                                              removeEventListener(listener: ...): ...;
                                              replaceEventListener(listener: ...): ...;
                                          };
                                      };
                                      changedAttributes(diff?: Partial<(...)>): Partial<T>;
                                      clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                      get<A extends string>(key: A): (...)[(...)] | undefined;
                                      has(key: string): boolean;
                                      hasChanged(key?: string): boolean;
                                      previous<A extends string>(key: A): (...)[(...)] | null | undefined;
                                      previousAttributes(): Partial<T>;
                                      set<A extends string>(
                                          key: A,
                                          val?: (...)[(...)],
                                          options?: AcCmObjectOptions,
                                      ): this;
                                      set(key: Partial<T>, options?: AcCmObjectOptions): this;
                                  };
                                  blockInsertUnits: AcDbUnitsValue;
                                  blockScaling: AcDbBlockScaling;
                                  bmpPreview: string
                                  | undefined;
                                  database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                                  explodability: number;
                                  extensionDictionary: string | undefined;
                                  isModelSapce: boolean;
                                  isPaperSapce: boolean;
                                  isTemp: any;
                                  layoutId: string;
                                  name: string;
                                  objectId: string;
                                  origin: {
                                      x: number;
                                      y: number;
                                      z: number;
                                      "[iterator]"(): Generator<number, void, unknown>;
                                      add(v: AcGeVectorLike): this;
                                      addScalar(s: number): this;
                                      addScaledVector(v: AcGeVector3dLike, s: number): this;
                                      addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      angleTo(v: AcGeVector3d): number;
                                      applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                                      applyEuler(euler: AcGeEuler): this;
                                      applyMatrix3(m: AcGeMatrix2d): this;
                                      applyMatrix4(m: AcGeMatrix3d): this;
                                      applyNormalMatrix(m: AcGeMatrix2d): this;
                                      applyQuaternion(q: AcGeQuaternion): this;
                                      ceil(): this;
                                      clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                                      clampLength(min: number, max: number): this;
                                      clampScalar(minVal: number, maxVal: number): this;
                                      clone(): AcGePoint3d;
                                      copy(v: AcGeVectorLike): this;
                                      cross(v: AcGeVector3dLike): this;
                                      crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      distanceTo(v: AcGeVector3dLike): number;
                                      distanceToSquared(v: AcGeVector3dLike): number;
                                      divide(v: AcGeVector3dLike): this;
                                      divideScalar(scalar: number): this;
                                      dot(v: AcGeVector3dLike): number;
                                      equals(v: AcGeVector3dLike): boolean;
                                      floor(): this;
                                      fromArray(array: number[], offset?: number): this;
                                      getComponent(index: number): number;
                                      isParallelTo(vec: AcGeVector3d): boolean;
                                      length(): number;
                                      lengthSq(): number;
                                      lerp(v: AcGeVector3dLike, alpha: number): this;
                                      lerpVectors(
                                          v1: AcGeVector3dLike,
                                          v2: AcGeVector3dLike,
                                          alpha: number,
                                      ): this;
                                      manhattanDistanceTo(v: AcGeVector3dLike): number;
                                      manhattanLength(): number;
                                      max(v: AcGeVector3dLike): this;
                                      min(v: AcGeVector3dLike): this;
                                      multiply(v: AcGeVector3dLike): this;
                                      multiplyScalar(scalar: number): this;
                                      multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      negate(): this;
                                      normalize(): this;
                                      projectOnPlane(planeNormal: AcGeVector3d): this;
                                      projectOnVector(v: AcGeVector3d): this;
                                      random(): this;
                                      randomDirection(): this;
                                      reflect(normal: AcGeVector3dLike): this;
                                      round(): this;
                                      roundToZero(): this;
                                      set(x: number, y: number, z: number): this;
                                      setComponent(index: number, value: number): this;
                                      setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                                      setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                                      setFromMatrixPosition(m: AcGeMatrix3d): this;
                                      setFromMatrixScale(m: AcGeMatrix3d): this;
                                      setLength(l: number): this;
                                      setScalar(scalar: number): this;
                                      setX(x: number): this;
                                      setY(y: number): this;
                                      setZ(z: number): this;
                                      sub(v: AcGeVector3dLike): this;
                                      subScalar(s: number): this;
                                      subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      toArray(
                                          array?: (...)[] | Float32Array<(...)>,
                                          offset?: number,
                                      ): (...)[] | Float32Array<(...)>;
                                      transformDirection(m: AcGeMatrix3d): this;
                                  };
                                  ownerId: string;
                                  appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                  clone(): this;
                                  close(): void;
                                  createExtensionDictionary(): string | undefined;
                                  dxfOut(...args: unknown[]): unknown;
                                  dxfOutBlockBegin(filer: AcDbDxfFiler): this;
                                  dxfOutBlockEnd(filer: AcDbDxfFiler): this;
                                  dxfOutBlockRecord(filer: AcDbDxfFiler): this;
                                  dxfOutFields(filer: AcDbDxfFiler): this;
                                  getAttr(attrName: string): any;
                                  getAttrWithoutException(attrName: string): any;
                                  getIdAt(id: string): AcDbEntity | undefined;
                                  getXData(appId: string): AcDbResultBuffer | undefined;
                                  newIterator(): AcDbObjectIterator<AcDbEntity>;
                                  removeEntity(objectId: string | string[]): boolean;
                                  removeXData(appId: string): void;
                                  setAttr<A extends string>(
                                      attrName: A,
                                      val?: AcDbSymbolTableRecordAttrs[A],
                                  ): void;
                                  setXData(resbuf: AcDbResultBuffer): void;
                              };
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbBlockTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbBlockTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getEntityById(id: string): AcDbEntity | undefined;
                              getIdAt(id: string): AcDbBlockTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbBlockTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeEntity(objectId: string | string[]): boolean;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          dimStyleTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbDimStyleTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbDimStyleTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          layerTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbLayerTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbLayerTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbLayerTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbLayerTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          linetypeTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbLinetypeTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbLinetypeTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          textStyleTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              fonts: string[];
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbTextStyleTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbTextStyleTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          viewportTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbViewportTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbViewportTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbViewportTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbViewportTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          viewTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbViewTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbViewTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbViewTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbViewTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbViewTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                      };
                      textstyle: string;
                      version: { name: string; value: number };
                      clone(): this;
                      close(): void;
                      commitObjectHandle(
                          object: AcDbObject,
                          hasId?: (id: string) => boolean,
                      ): void;
                      createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                      createExtensionDictionary(): string | undefined;
                      dxfOut(
                          _fileName?: string,
                          precision?: number,
                          version?: string | number | AcDbDwgVersion,
                          _saveThumbnailImage?: boolean,
                      ): string;
                      dxfOutFields(_filer: AcDbDxfFiler): this;
                      generateHandle(): string;
                      getAttr(attrName: string): any;
                      getAttrWithoutException(attrName: string): any;
                      getXData(appId: string): AcDbResultBuffer | undefined;
                      openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                      read(
                          data: ArrayBuffer,
                          options: AcDbOpenDatabaseOptions,
                          fileType?: string,
                      ): Promise<void>;
                      regen(): Promise<void>;
                      removeXData(appId: string): void;
                      setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                      setXData(resbuf: AcDbResultBuffer): void;
                      updateMaxHandle(handle: string): void;
                  };
                  dxfTypeName: string;
                  extensionDictionary: string
                  | undefined;
                  geometricExtents: {
                      center: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      max: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      min: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      size: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      applyMatrix4(matrix: AcGeMatrix3d): this;
                      clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                      clone(): AcGeBox3d;
                      containsBox(box: AcGeBox3d): boolean;
                      containsPoint(point: AcGeVector3dLike): boolean;
                      copy(box: AcGeBox3d): this;
                      distanceToPoint(point: AcGeVector3dLike): number;
                      equals(box: AcGeBox3d): boolean;
                      expandByPoint(point: AcGeVector3dLike): this;
                      expandByScalar(scalar: number): this;
                      expandByVector(vector: AcGeVector3dLike): this;
                      getCenter(target: AcGeVector3d): AcGeVector3d;
                      getParameter(
                          point: AcGeVector3dLike,
                          target: AcGeVector3d,
                      ): AcGeVector3d;
                      getSize(target: AcGeVector3d): AcGeVector3d;
                      intersect(box: AcGeBox3d): this;
                      intersectsBox(box: AcGeBox3d): boolean;
                      intersectsPlane(plane: AcGePlane): boolean;
                      isEmpty(): boolean;
                      makeEmpty(): this;
                      set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                      setFromArray(array: number[]): this;
                      setFromCenterAndSize(
                          center: AcGeVector3dLike,
                          size: AcGeVector3dLike,
                      ): this;
                      setFromPoints(points: AcGeVector3dLike[]): this;
                      translate(offset: AcGeVector3dLike): this;
                      union(box: AcGeBox3d): this;
                  };
                  isTemp: any;
                  layer: string;
                  lineStyle: {
                      arrows?: {
                          firstArrow?: {
                              appended?: boolean;
                              inversed?: boolean;
                              scale?: number;
                              type: AcGiArrowType;
                              visible: boolean;
                          };
                          secondArrow?: {
                              appended?: boolean;
                              inversed?: boolean;
                              scale?: number;
                              type: AcGiArrowType;
                              visible: boolean;
                          };
                      };
                      description: string;
                      name: string;
                      pattern?: {
                          elementLength: number;
                          elementTypeFlag: number;
                          offsetX?: number;
                          offsetY?: number;
                          rotation?: number;
                          scale?: number;
                          shapeNumber?: number;
                          styleObjectId?: string;
                          text?: string;
                      }[];
                      standardFlag: number;
                      totalPatternLength: number;
                      type: AcGiStyleType;
                  };
                  lineType: string;
                  linetypeScale: number;
                  lineWeight: AcGiLineWeight;
                  objectId: string;
                  ownerId: string;
                  properties: {
                      groups: {
                          groupName: string;
                          properties: {
                              accessor: { set?: (...)
                              | (...); get(): unknown };
                              editable?: boolean;
                              itemSchema?: { properties: ... };
                              name: string;
                              options?: (...)[];
                              skipTranslation?: boolean;
                              type: AcDbEntityPropertyType;
                          }[];
                      }[];
                      type: string;
                  };
                  resolvedColor: {
                      blue: number
                      | undefined;
                      colorIndex: number | undefined;
                      colorMethod: AcCmColorMethod;
                      colorName: string | undefined;
                      cssColor: string | undefined;
                      green: number | undefined;
                      hexColor: string | undefined;
                      isByACI: boolean;
                      isByBlock: boolean;
                      isByColor: boolean;
                      isByLayer: boolean;
                      isForeground: boolean;
                      red: number | undefined;
                      RGB: number | undefined;
                      clone(): AcCmColor;
                      copy(other: AcCmColor): this;
                      cssColorAlpha(alpha: number): string | undefined;
                      equals(other: AcCmColor): boolean;
                      setByBlock(value?: number): this;
                      setByLayer(value?: number): this;
                      setForeground(): this;
                      setRGB(r: number, g: number, b: number): this;
                      setRGBFromCss(cssString: string): this;
                      setRGBValue(value: number | null | undefined): this;
                      setScalar(scalar: number): this;
                      toString(): string;
                  };
                  rgbColor: number;
                  transparency: {
                      alpha: number;
                      isByAlpha: boolean;
                      isByBlock: boolean;
                      isByLayer: boolean;
                      isClear: boolean;
                      isInvalid: boolean;
                      isSolid: boolean;
                      method: AcCmTransparencyMethod;
                      percentage: number
                      | undefined;
                      clone(): AcCmTransparency;
                      equals(other: AcCmTransparency): boolean;
                      serialize(): number;
                      toString(): string;
                  };
                  type: string;
                  visibility: boolean;
                  clone(): this;
                  close(): void;
                  createExtensionDictionary(): string | undefined;
                  dxfOut(...args: unknown[]): unknown;
                  dxfOutFields(filer: AcDbDxfFiler): this;
                  erase(): boolean;
                  getAttr(attrName: string): any;
                  getAttrWithoutException(attrName: string): any;
                  getXData(appId: string): AcDbResultBuffer | undefined;
                  removeXData(appId: string): void;
                  resolveEffectiveProperties(): void;
                  setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                  setXData(resbuf: AcDbResultBuffer): void;
                  subGetGripPoints(): AcGePoint3d[];
                  subGetOsnapPoints(
                      osnapMode: AcDbOsnapMode,
                      pickPoint: AcGePoint3dLike,
                      lastPoint: AcGePoint3dLike,
                      snapPoints: AcGePoint3dLike[],
                      gsMark?: any,
                      insertionMat?: AcGeMatrix3d,
                  ): void;
                  subWorldDraw(
                      renderer: AcGiRenderer,
                      delay?: boolean,
                  ): AcGiEntity | undefined;
                  transformBy(matrix: AcGeMatrix3d): this;
                  triggerModifiedEvent(): void;
                  worldDraw(
                      renderer: AcGiRenderer,
                      delay?: boolean,
                  ): AcGiEntity | undefined;
              }
              | null,
              | AcDbEntity
              | {
                  attrs: {
                      attributes: {
                          extensionDictionary?: string;
                          objectId?: string;
                          ownerId?: string;
                          [key: string]: any;
                      };
                      changed: {
                          extensionDictionary?: string;
                          objectId?: string;
                          ownerId?: string;
                          [key: string]: any;
                      };
                      events: {
                          attrChanged: {
                              addEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                              ): void;
                          };
                          modelChanged: {
                              addEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcCmObjectChangedEventArgs) => void,
                              ): void;
                          };
                      };
                      changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                      clone(): AcCmObject<AcDbObjectAttrs>;
                      get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                      has(key: string): boolean;
                      hasChanged(key?: string): boolean;
                      previous<A extends string>(
                          key: A,
                      ): AcDbObjectAttrs[A] | null | undefined;
                      previousAttributes(): Partial<T>;
                      set<A extends string>(
                          key: A,
                          val?: AcDbObjectAttrs[A],
                          options?: AcCmObjectOptions,
                      ): this;
                      set(key: Partial<T>, options?: AcCmObjectOptions): this;
                  };
                  color: {
                      blue: number
                      | undefined;
                      colorIndex: number | undefined;
                      colorMethod: AcCmColorMethod;
                      colorName: string | undefined;
                      cssColor: string | undefined;
                      green: number | undefined;
                      hexColor: string | undefined;
                      isByACI: boolean;
                      isByBlock: boolean;
                      isByColor: boolean;
                      isByLayer: boolean;
                      isForeground: boolean;
                      red: number | undefined;
                      RGB: number | undefined;
                      clone(): AcCmColor;
                      copy(other: AcCmColor): this;
                      cssColorAlpha(alpha: number): string | undefined;
                      equals(other: AcCmColor): boolean;
                      setByBlock(value?: number): this;
                      setByLayer(value?: number): this;
                      setForeground(): this;
                      setRGB(r: number, g: number, b: number): this;
                      setRGBFromCss(cssString: string): this;
                      setRGBValue(value: number | null | undefined): this;
                      setScalar(scalar: number): this;
                      toString(): string;
                  };
                  database: {
                      angBase: number;
                      angDir: number;
                      attrs: {
                          attributes: {
                              extensionDictionary?: string;
                              objectId?: string;
                              ownerId?: string;
                              [key: string]: any;
                          };
                          changed: {
                              extensionDictionary?: string;
                              objectId?: string;
                              ownerId?: string;
                              [key: string]: any;
                          };
                          events: {
                              attrChanged: {
                                  addEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                                  dispatch(
                                      payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                      ...args: unknown[],
                                  ): void;
                                  removeEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                                  replaceEventListener(
                                      listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                  ): void;
                              };
                              modelChanged: {
                                  addEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                                  dispatch(
                                      payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                      ...args: unknown[],
                                  ): void;
                                  removeEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                                  replaceEventListener(
                                      listener: (payload: AcCmObjectChangedEventArgs) => void,
                                  ): void;
                              };
                          };
                          changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                          clone(): AcCmObject<AcDbObjectAttrs>;
                          get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                          has(key: string): boolean;
                          hasChanged(key?: string): boolean;
                          previous<A extends string>(
                              key: A,
                          ): AcDbObjectAttrs[A] | null | undefined;
                          previousAttributes(): Partial<T>;
                          set<A extends string>(
                              key: A,
                              val?: AcDbObjectAttrs[A],
                              options?: AcCmObjectOptions,
                          ): this;
                          set(key: Partial<T>, options?: AcCmObjectOptions): this;
                      };
                      aunits: number;
                      cecolor: {
                          blue: number
                          | undefined;
                          colorIndex: number | undefined;
                          colorMethod: AcCmColorMethod;
                          colorName: string | undefined;
                          cssColor: string | undefined;
                          green: number | undefined;
                          hexColor: string | undefined;
                          isByACI: boolean;
                          isByBlock: boolean;
                          isByColor: boolean;
                          isByLayer: boolean;
                          isForeground: boolean;
                          red: number | undefined;
                          RGB: number | undefined;
                          clone(): AcCmColor;
                          copy(other: AcCmColor): this;
                          cssColorAlpha(alpha: number): string | undefined;
                          equals(other: AcCmColor): boolean;
                          setByBlock(value?: number): this;
                          setByLayer(value?: number): this;
                          setForeground(): this;
                          setRGB(r: number, g: number, b: number): this;
                          setRGBFromCss(cssString: string): this;
                          setRGBValue(value: number | null | undefined): this;
                          setScalar(scalar: number): this;
                          toString(): string;
                      };
                      celtscale: number;
                      celtype: string;
                      celweight: AcGiLineWeight;
                      clayer: string;
                      currentSpaceId: string;
                      database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                      events: {
                          dictObjectErased: {
                              addEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                          };
                          dictObjetSet: {
                              addEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbDictObjectEventArgs) => void,
                              ): void;
                          };
                          entityAppended: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          entityErased: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          entityModified: {
                              addEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbEntityEventArgs) => void,
                              ): void;
                          };
                          layerAppended: {
                              addEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                          };
                          layerErased: {
                              addEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerEventArgs) => void,
                              ): void;
                          };
                          layerModified: {
                              addEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                              dispatch(
                                  payload?: AcDbLayerModifiedEventArgs,
                                  ...args: unknown[],
                              ): void;
                              removeEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbLayerModifiedEventArgs) => void,
                              ): void;
                          };
                          openProgress: {
                              addEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                              dispatch(payload?: AcDbProgressdEventArgs, ...args: unknown[]): void;
                              removeEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                              replaceEventListener(
                                  listener: (payload: AcDbProgressdEventArgs) => void,
                              ): void;
                          };
                      };
                      extensionDictionary: string
                      | undefined;
                      extents: {
                          center: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          max: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          min: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          size: {
                              x: number;
                              y: number;
                              z: number;
                              "[iterator]"(): Generator<number, void, unknown>;
                              add(v: AcGeVectorLike): this;
                              addScalar(s: number): this;
                              addScaledVector(v: AcGeVector3dLike, s: number): this;
                              addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              angleTo(v: AcGeVector3d): number;
                              applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                              applyEuler(euler: AcGeEuler): this;
                              applyMatrix3(m: AcGeMatrix2d): this;
                              applyMatrix4(m: AcGeMatrix3d): this;
                              applyNormalMatrix(m: AcGeMatrix2d): this;
                              applyQuaternion(q: AcGeQuaternion): this;
                              ceil(): this;
                              clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                              clampLength(min: number, max: number): this;
                              clampScalar(minVal: number, maxVal: number): this;
                              clone(): AcGeVector3d;
                              copy(v: AcGeVectorLike): this;
                              cross(v: AcGeVector3dLike): this;
                              crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              distanceTo(v: AcGeVector3dLike): number;
                              distanceToSquared(v: AcGeVector3dLike): number;
                              divide(v: AcGeVector3dLike): this;
                              divideScalar(scalar: number): this;
                              dot(v: AcGeVector3dLike): number;
                              equals(v: AcGeVector3dLike): boolean;
                              floor(): this;
                              fromArray(array: number[], offset?: number): this;
                              getComponent(index: number): number;
                              isParallelTo(vec: AcGeVector3d): boolean;
                              length(): number;
                              lengthSq(): number;
                              lerp(v: AcGeVector3dLike, alpha: number): this;
                              lerpVectors(
                                  v1: AcGeVector3dLike,
                                  v2: AcGeVector3dLike,
                                  alpha: number,
                              ): this;
                              manhattanDistanceTo(v: AcGeVector3dLike): number;
                              manhattanLength(): number;
                              max(v: AcGeVector3dLike): this;
                              min(v: AcGeVector3dLike): this;
                              multiply(v: AcGeVector3dLike): this;
                              multiplyScalar(scalar: number): this;
                              multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              negate(): this;
                              normalize(): this;
                              projectOnPlane(planeNormal: AcGeVector3d): this;
                              projectOnVector(v: AcGeVector3d): this;
                              random(): this;
                              randomDirection(): this;
                              reflect(normal: AcGeVector3dLike): this;
                              round(): this;
                              roundToZero(): this;
                              set(x: number, y: number, z: number): this;
                              setComponent(index: number, value: number): this;
                              setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                              setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                              setFromMatrixPosition(m: AcGeMatrix3d): this;
                              setFromMatrixScale(m: AcGeMatrix3d): this;
                              setLength(l: number): this;
                              setScalar(scalar: number): this;
                              setX(x: number): this;
                              setY(y: number): this;
                              setZ(z: number): this;
                              sub(v: AcGeVector3dLike): this;
                              subScalar(s: number): this;
                              subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                              toArray(
                                  array?: number[] | Float32Array<ArrayBufferLike>,
                                  offset?: number,
                              ): number[] | Float32Array<ArrayBufferLike>;
                              transformDirection(m: AcGeMatrix3d): this;
                          };
                          applyMatrix4(matrix: AcGeMatrix3d): this;
                          clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                          clone(): AcGeBox3d;
                          containsBox(box: AcGeBox3d): boolean;
                          containsPoint(point: AcGeVector3dLike): boolean;
                          copy(box: AcGeBox3d): this;
                          distanceToPoint(point: AcGeVector3dLike): number;
                          equals(box: AcGeBox3d): boolean;
                          expandByPoint(point: AcGeVector3dLike): this;
                          expandByScalar(scalar: number): this;
                          expandByVector(vector: AcGeVector3dLike): this;
                          getCenter(target: AcGeVector3d): AcGeVector3d;
                          getParameter(
                              point: AcGeVector3dLike,
                              target: AcGeVector3d,
                          ): AcGeVector3d;
                          getSize(target: AcGeVector3d): AcGeVector3d;
                          intersect(box: AcGeBox3d): this;
                          intersectsBox(box: AcGeBox3d): boolean;
                          intersectsPlane(plane: AcGePlane): boolean;
                          isEmpty(): boolean;
                          makeEmpty(): this;
                          set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          setFromArray(array: number[]): this;
                          setFromCenterAndSize(
                              center: AcGeVector3dLike,
                              size: AcGeVector3dLike,
                          ): this;
                          setFromPoints(points: AcGeVector3dLike[]): this;
                          translate(offset: AcGeVector3dLike): this;
                          union(box: AcGeBox3d): this;
                      };
                      extmax: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGePoint3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      extmin: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGePoint3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      insunits: number;
                      isTemp: any;
                      ltscale: number;
                      lwdisplay: boolean;
                      objectId: string;
                      objects: {
                          dictionary: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<
                                  [string, AcDbDictionary<AcDbObject<(...)>>],
                              >;
                              getAt(
                                  name: string,
                              ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(
                                  id: string,
                              ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<
                                  AcDbDictionary<AcDbObject<AcDbObjectAttrs>>,
                              >;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbDictionary): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          imageDefinition: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbRasterImageDef]>;
                              getAt(name: string): AcDbRasterImageDef | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbRasterImageDef | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbRasterImageDef): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          layout: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              maxTabOrder: number;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbLayout]>;
                              getAt(name: string): AcDbLayout | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getBtrIdAt(id: string): AcDbLayout | undefined;
                              getIdAt(id: string): AcDbLayout | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLayout>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbLayout): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          xrecord: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              entries(): IterableIterator<[string, AcDbXrecord]>;
                              getAt(name: string): AcDbXrecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbXrecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbXrecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAt(key: string, value: AcDbXrecord): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                      };
                      osmode: number;
                      ownerId: string;
                      pdmode: number;
                      pdsize: number;
                      tables: {
                          appIdTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbRegAppTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbRegAppTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbRegAppTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbRegAppTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbRegAppTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          blockTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              modelSpace: {
                                  attrs: {
                                      attributes: {
                                          extensionDictionary?: (...) | (...);
                                          name?: (...) | (...);
                                          objectId?: (...) | (...);
                                          ownerId?: (...) | (...);
                                          [key: string]: any;
                                      };
                                      changed: {
                                          extensionDictionary?: (...)
                                          | (...);
                                          name?: (...) | (...);
                                          objectId?: (...) | (...);
                                          ownerId?: (...) | (...);
                                          [key: string]: any;
                                      };
                                      events: {
                                          attrChanged: {
                                              addEventListener(listener: ...): ...;
                                              dispatch(payload?: ..., ...args: ...): ...;
                                              removeEventListener(listener: ...): ...;
                                              replaceEventListener(listener: ...): ...;
                                          };
                                          modelChanged: {
                                              addEventListener(listener: ...): ...;
                                              dispatch(payload?: ..., ...args: ...): ...;
                                              removeEventListener(listener: ...): ...;
                                              replaceEventListener(listener: ...): ...;
                                          };
                                      };
                                      changedAttributes(diff?: Partial<(...)>): Partial<T>;
                                      clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                      get<A extends string>(key: A): (...)[(...)] | undefined;
                                      has(key: string): boolean;
                                      hasChanged(key?: string): boolean;
                                      previous<A extends string>(key: A): (...)[(...)] | null | undefined;
                                      previousAttributes(): Partial<T>;
                                      set<A extends string>(
                                          key: A,
                                          val?: (...)[(...)],
                                          options?: AcCmObjectOptions,
                                      ): this;
                                      set(key: Partial<T>, options?: AcCmObjectOptions): this;
                                  };
                                  blockInsertUnits: AcDbUnitsValue;
                                  blockScaling: AcDbBlockScaling;
                                  bmpPreview: string
                                  | undefined;
                                  database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                                  explodability: number;
                                  extensionDictionary: string | undefined;
                                  isModelSapce: boolean;
                                  isPaperSapce: boolean;
                                  isTemp: any;
                                  layoutId: string;
                                  name: string;
                                  objectId: string;
                                  origin: {
                                      x: number;
                                      y: number;
                                      z: number;
                                      "[iterator]"(): Generator<number, void, unknown>;
                                      add(v: AcGeVectorLike): this;
                                      addScalar(s: number): this;
                                      addScaledVector(v: AcGeVector3dLike, s: number): this;
                                      addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      angleTo(v: AcGeVector3d): number;
                                      applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                                      applyEuler(euler: AcGeEuler): this;
                                      applyMatrix3(m: AcGeMatrix2d): this;
                                      applyMatrix4(m: AcGeMatrix3d): this;
                                      applyNormalMatrix(m: AcGeMatrix2d): this;
                                      applyQuaternion(q: AcGeQuaternion): this;
                                      ceil(): this;
                                      clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                                      clampLength(min: number, max: number): this;
                                      clampScalar(minVal: number, maxVal: number): this;
                                      clone(): AcGePoint3d;
                                      copy(v: AcGeVectorLike): this;
                                      cross(v: AcGeVector3dLike): this;
                                      crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      distanceTo(v: AcGeVector3dLike): number;
                                      distanceToSquared(v: AcGeVector3dLike): number;
                                      divide(v: AcGeVector3dLike): this;
                                      divideScalar(scalar: number): this;
                                      dot(v: AcGeVector3dLike): number;
                                      equals(v: AcGeVector3dLike): boolean;
                                      floor(): this;
                                      fromArray(array: number[], offset?: number): this;
                                      getComponent(index: number): number;
                                      isParallelTo(vec: AcGeVector3d): boolean;
                                      length(): number;
                                      lengthSq(): number;
                                      lerp(v: AcGeVector3dLike, alpha: number): this;
                                      lerpVectors(
                                          v1: AcGeVector3dLike,
                                          v2: AcGeVector3dLike,
                                          alpha: number,
                                      ): this;
                                      manhattanDistanceTo(v: AcGeVector3dLike): number;
                                      manhattanLength(): number;
                                      max(v: AcGeVector3dLike): this;
                                      min(v: AcGeVector3dLike): this;
                                      multiply(v: AcGeVector3dLike): this;
                                      multiplyScalar(scalar: number): this;
                                      multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      negate(): this;
                                      normalize(): this;
                                      projectOnPlane(planeNormal: AcGeVector3d): this;
                                      projectOnVector(v: AcGeVector3d): this;
                                      random(): this;
                                      randomDirection(): this;
                                      reflect(normal: AcGeVector3dLike): this;
                                      round(): this;
                                      roundToZero(): this;
                                      set(x: number, y: number, z: number): this;
                                      setComponent(index: number, value: number): this;
                                      setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                                      setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                                      setFromMatrixPosition(m: AcGeMatrix3d): this;
                                      setFromMatrixScale(m: AcGeMatrix3d): this;
                                      setLength(l: number): this;
                                      setScalar(scalar: number): this;
                                      setX(x: number): this;
                                      setY(y: number): this;
                                      setZ(z: number): this;
                                      sub(v: AcGeVector3dLike): this;
                                      subScalar(s: number): this;
                                      subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                      toArray(
                                          array?: (...)[] | Float32Array<(...)>,
                                          offset?: number,
                                      ): (...)[] | Float32Array<(...)>;
                                      transformDirection(m: AcGeMatrix3d): this;
                                  };
                                  ownerId: string;
                                  appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                  clone(): this;
                                  close(): void;
                                  createExtensionDictionary(): string | undefined;
                                  dxfOut(...args: unknown[]): unknown;
                                  dxfOutBlockBegin(filer: AcDbDxfFiler): this;
                                  dxfOutBlockEnd(filer: AcDbDxfFiler): this;
                                  dxfOutBlockRecord(filer: AcDbDxfFiler): this;
                                  dxfOutFields(filer: AcDbDxfFiler): this;
                                  getAttr(attrName: string): any;
                                  getAttrWithoutException(attrName: string): any;
                                  getIdAt(id: string): AcDbEntity | undefined;
                                  getXData(appId: string): AcDbResultBuffer | undefined;
                                  newIterator(): AcDbObjectIterator<AcDbEntity>;
                                  removeEntity(objectId: string | string[]): boolean;
                                  removeXData(appId: string): void;
                                  setAttr<A extends string>(
                                      attrName: A,
                                      val?: AcDbSymbolTableRecordAttrs[A],
                                  ): void;
                                  setXData(resbuf: AcDbResultBuffer): void;
                              };
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbBlockTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbBlockTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getEntityById(id: string): AcDbEntity | undefined;
                              getIdAt(id: string): AcDbBlockTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbBlockTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeEntity(objectId: string | string[]): boolean;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          dimStyleTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbDimStyleTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbDimStyleTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          layerTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbLayerTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbLayerTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbLayerTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbLayerTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          linetypeTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbLinetypeTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbLinetypeTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          textStyleTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              fonts: string[];
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbTextStyleTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbTextStyleTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          viewportTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbViewportTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbViewportTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbViewportTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbViewportTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                          viewTable: {
                              attrs: {
                                  attributes: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  changed: {
                                      extensionDictionary?: string;
                                      objectId?: string;
                                      ownerId?: string;
                                      [key: string]: any;
                                  };
                                  events: {
                                      attrChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                      modelChanged: {
                                          addEventListener(listener: (payload: ...) => ...): void;
                                          dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                          removeEventListener(listener: (payload: ...) => ...): void;
                                          replaceEventListener(listener: (payload: ...) => ...): void;
                                      };
                                  };
                                  changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                  clone(): AcCmObject<AcDbObjectAttrs>;
                                  get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                  has(key: string): boolean;
                                  hasChanged(key?: string): boolean;
                                  previous<A extends string>(
                                      key: A,
                                  ): AcDbObjectAttrs[A] | null | undefined;
                                  previousAttributes(): Partial<T>;
                                  set<A extends string>(
                                      key: A,
                                      val?: AcDbObjectAttrs[A],
                                      options?: AcCmObjectOptions,
                                  ): this;
                                  set(key: Partial<T>, options?: AcCmObjectOptions): this;
                              };
                              database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                              extensionDictionary: string
                              | undefined;
                              isTemp: any;
                              numEntries: number;
                              objectId: string;
                              ownerId: string;
                              add(record: AcDbViewTableRecord): void;
                              clone(): this;
                              close(): void;
                              createExtensionDictionary(): string | undefined;
                              dxfOut(...args: unknown[]): unknown;
                              dxfOutFields(filer: AcDbDxfFiler): this;
                              getAt(name: string): AcDbViewTableRecord | undefined;
                              getAttr(attrName: string): any;
                              getAttrWithoutException(attrName: string): any;
                              getIdAt(id: string): AcDbViewTableRecord | undefined;
                              getOwnerIdAt(id: string): AcDbViewTableRecord | undefined;
                              getXData(appId: string): AcDbResultBuffer | undefined;
                              has(name: string): boolean;
                              hasId(id: string): boolean;
                              newIterator(): AcDbObjectIterator<AcDbViewTableRecord>;
                              remove(name: string): boolean;
                              removeAll(): void;
                              removeId(id: string): boolean;
                              removeXData(appId: string): void;
                              setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                              setXData(resbuf: AcDbResultBuffer): void;
                          };
                      };
                      textstyle: string;
                      version: { name: string; value: number };
                      clone(): this;
                      close(): void;
                      commitObjectHandle(
                          object: AcDbObject,
                          hasId?: (id: string) => boolean,
                      ): void;
                      createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                      createExtensionDictionary(): string | undefined;
                      dxfOut(
                          _fileName?: string,
                          precision?: number,
                          version?: string | number | AcDbDwgVersion,
                          _saveThumbnailImage?: boolean,
                      ): string;
                      dxfOutFields(_filer: AcDbDxfFiler): this;
                      generateHandle(): string;
                      getAttr(attrName: string): any;
                      getAttrWithoutException(attrName: string): any;
                      getXData(appId: string): AcDbResultBuffer | undefined;
                      openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                      read(
                          data: ArrayBuffer,
                          options: AcDbOpenDatabaseOptions,
                          fileType?: string,
                      ): Promise<void>;
                      regen(): Promise<void>;
                      removeXData(appId: string): void;
                      setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                      setXData(resbuf: AcDbResultBuffer): void;
                      updateMaxHandle(handle: string): void;
                  };
                  dxfTypeName: string;
                  extensionDictionary: string
                  | undefined;
                  geometricExtents: {
                      center: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      max: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      min: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      size: {
                          x: number;
                          y: number;
                          z: number;
                          "[iterator]"(): Generator<number, void, unknown>;
                          add(v: AcGeVectorLike): this;
                          addScalar(s: number): this;
                          addScaledVector(v: AcGeVector3dLike, s: number): this;
                          addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          angleTo(v: AcGeVector3d): number;
                          applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                          applyEuler(euler: AcGeEuler): this;
                          applyMatrix3(m: AcGeMatrix2d): this;
                          applyMatrix4(m: AcGeMatrix3d): this;
                          applyNormalMatrix(m: AcGeMatrix2d): this;
                          applyQuaternion(q: AcGeQuaternion): this;
                          ceil(): this;
                          clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                          clampLength(min: number, max: number): this;
                          clampScalar(minVal: number, maxVal: number): this;
                          clone(): AcGeVector3d;
                          copy(v: AcGeVectorLike): this;
                          cross(v: AcGeVector3dLike): this;
                          crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          distanceTo(v: AcGeVector3dLike): number;
                          distanceToSquared(v: AcGeVector3dLike): number;
                          divide(v: AcGeVector3dLike): this;
                          divideScalar(scalar: number): this;
                          dot(v: AcGeVector3dLike): number;
                          equals(v: AcGeVector3dLike): boolean;
                          floor(): this;
                          fromArray(array: number[], offset?: number): this;
                          getComponent(index: number): number;
                          isParallelTo(vec: AcGeVector3d): boolean;
                          length(): number;
                          lengthSq(): number;
                          lerp(v: AcGeVector3dLike, alpha: number): this;
                          lerpVectors(
                              v1: AcGeVector3dLike,
                              v2: AcGeVector3dLike,
                              alpha: number,
                          ): this;
                          manhattanDistanceTo(v: AcGeVector3dLike): number;
                          manhattanLength(): number;
                          max(v: AcGeVector3dLike): this;
                          min(v: AcGeVector3dLike): this;
                          multiply(v: AcGeVector3dLike): this;
                          multiplyScalar(scalar: number): this;
                          multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          negate(): this;
                          normalize(): this;
                          projectOnPlane(planeNormal: AcGeVector3d): this;
                          projectOnVector(v: AcGeVector3d): this;
                          random(): this;
                          randomDirection(): this;
                          reflect(normal: AcGeVector3dLike): this;
                          round(): this;
                          roundToZero(): this;
                          set(x: number, y: number, z: number): this;
                          setComponent(index: number, value: number): this;
                          setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                          setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                          setFromMatrixPosition(m: AcGeMatrix3d): this;
                          setFromMatrixScale(m: AcGeMatrix3d): this;
                          setLength(l: number): this;
                          setScalar(scalar: number): this;
                          setX(x: number): this;
                          setY(y: number): this;
                          setZ(z: number): this;
                          sub(v: AcGeVector3dLike): this;
                          subScalar(s: number): this;
                          subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                          toArray(
                              array?: number[] | Float32Array<ArrayBufferLike>,
                              offset?: number,
                          ): number[] | Float32Array<ArrayBufferLike>;
                          transformDirection(m: AcGeMatrix3d): this;
                      };
                      applyMatrix4(matrix: AcGeMatrix3d): this;
                      clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                      clone(): AcGeBox3d;
                      containsBox(box: AcGeBox3d): boolean;
                      containsPoint(point: AcGeVector3dLike): boolean;
                      copy(box: AcGeBox3d): this;
                      distanceToPoint(point: AcGeVector3dLike): number;
                      equals(box: AcGeBox3d): boolean;
                      expandByPoint(point: AcGeVector3dLike): this;
                      expandByScalar(scalar: number): this;
                      expandByVector(vector: AcGeVector3dLike): this;
                      getCenter(target: AcGeVector3d): AcGeVector3d;
                      getParameter(
                          point: AcGeVector3dLike,
                          target: AcGeVector3d,
                      ): AcGeVector3d;
                      getSize(target: AcGeVector3d): AcGeVector3d;
                      intersect(box: AcGeBox3d): this;
                      intersectsBox(box: AcGeBox3d): boolean;
                      intersectsPlane(plane: AcGePlane): boolean;
                      isEmpty(): boolean;
                      makeEmpty(): this;
                      set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                      setFromArray(array: number[]): this;
                      setFromCenterAndSize(
                          center: AcGeVector3dLike,
                          size: AcGeVector3dLike,
                      ): this;
                      setFromPoints(points: AcGeVector3dLike[]): this;
                      translate(offset: AcGeVector3dLike): this;
                      union(box: AcGeBox3d): this;
                  };
                  isTemp: any;
                  layer: string;
                  lineStyle: {
                      arrows?: {
                          firstArrow?: {
                              appended?: boolean;
                              inversed?: boolean;
                              scale?: number;
                              type: AcGiArrowType;
                              visible: boolean;
                          };
                          secondArrow?: {
                              appended?: boolean;
                              inversed?: boolean;
                              scale?: number;
                              type: AcGiArrowType;
                              visible: boolean;
                          };
                      };
                      description: string;
                      name: string;
                      pattern?: {
                          elementLength: number;
                          elementTypeFlag: number;
                          offsetX?: number;
                          offsetY?: number;
                          rotation?: number;
                          scale?: number;
                          shapeNumber?: number;
                          styleObjectId?: string;
                          text?: string;
                      }[];
                      standardFlag: number;
                      totalPatternLength: number;
                      type: AcGiStyleType;
                  };
                  lineType: string;
                  linetypeScale: number;
                  lineWeight: AcGiLineWeight;
                  objectId: string;
                  ownerId: string;
                  properties: {
                      groups: {
                          groupName: string;
                          properties: {
                              accessor: { set?: (...)
                              | (...); get(): unknown };
                              editable?: boolean;
                              itemSchema?: { properties: ... };
                              name: string;
                              options?: (...)[];
                              skipTranslation?: boolean;
                              type: AcDbEntityPropertyType;
                          }[];
                      }[];
                      type: string;
                  };
                  resolvedColor: {
                      blue: number
                      | undefined;
                      colorIndex: number | undefined;
                      colorMethod: AcCmColorMethod;
                      colorName: string | undefined;
                      cssColor: string | undefined;
                      green: number | undefined;
                      hexColor: string | undefined;
                      isByACI: boolean;
                      isByBlock: boolean;
                      isByColor: boolean;
                      isByLayer: boolean;
                      isForeground: boolean;
                      red: number | undefined;
                      RGB: number | undefined;
                      clone(): AcCmColor;
                      copy(other: AcCmColor): this;
                      cssColorAlpha(alpha: number): string | undefined;
                      equals(other: AcCmColor): boolean;
                      setByBlock(value?: number): this;
                      setByLayer(value?: number): this;
                      setForeground(): this;
                      setRGB(r: number, g: number, b: number): this;
                      setRGBFromCss(cssString: string): this;
                      setRGBValue(value: number | null | undefined): this;
                      setScalar(scalar: number): this;
                      toString(): string;
                  };
                  rgbColor: number;
                  transparency: {
                      alpha: number;
                      isByAlpha: boolean;
                      isByBlock: boolean;
                      isByLayer: boolean;
                      isClear: boolean;
                      isInvalid: boolean;
                      isSolid: boolean;
                      method: AcCmTransparencyMethod;
                      percentage: number
                      | undefined;
                      clone(): AcCmTransparency;
                      equals(other: AcCmTransparency): boolean;
                      serialize(): number;
                      toString(): string;
                  };
                  type: string;
                  visibility: boolean;
                  clone(): this;
                  close(): void;
                  createExtensionDictionary(): string | undefined;
                  dxfOut(...args: unknown[]): unknown;
                  dxfOutFields(filer: AcDbDxfFiler): this;
                  erase(): boolean;
                  getAttr(attrName: string): any;
                  getAttrWithoutException(attrName: string): any;
                  getXData(appId: string): AcDbResultBuffer | undefined;
                  removeXData(appId: string): void;
                  resolveEffectiveProperties(): void;
                  setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                  setXData(resbuf: AcDbResultBuffer): void;
                  subGetGripPoints(): AcGePoint3d[];
                  subGetOsnapPoints(
                      osnapMode: AcDbOsnapMode,
                      pickPoint: AcGePoint3dLike,
                      lastPoint: AcGePoint3dLike,
                      snapPoints: AcGePoint3dLike[],
                      gsMark?: any,
                      insertionMat?: AcGeMatrix3d,
                  ): void;
                  subWorldDraw(
                      renderer: AcGiRenderer,
                      delay?: boolean,
                  ): AcGiEntity | undefined;
                  transformBy(matrix: AcGeMatrix3d): this;
                  triggerModifiedEvent(): void;
                  worldDraw(
                      renderer: AcGiRenderer,
                      delay?: boolean,
                  ): AcGiEntity | undefined;
              }
              | null,
          >;
          hovered: Ref<boolean, boolean>;
          id: Ref<string | null, string | null>;
          mouse: Ref<
              { x: number; y: number },
              { x: number; y: number } | { x: number; y: number },
          >;
      }

      Reactive state tracking the current hover context.

      • entity: Ref<
            | {
                attrs: {
                    attributes: {
                        extensionDictionary?: string;
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    changed: {
                        extensionDictionary?: string;
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    events: {
                        attrChanged: {
                            addEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                        };
                        modelChanged: {
                            addEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                        };
                    };
                    changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                    clone(): AcCmObject<AcDbObjectAttrs>;
                    get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                    has(key: string): boolean;
                    hasChanged(key?: string): boolean;
                    previous<A extends string>(key: A): AcDbObjectAttrs[A] | null | undefined;
                    previousAttributes(): Partial<T>;
                    set<A extends string>(
                        key: A,
                        val?: AcDbObjectAttrs[A],
                        options?: AcCmObjectOptions,
                    ): this;
                    set(key: Partial<T>, options?: AcCmObjectOptions): this;
                };
                color: {
                    blue: number
                    | undefined;
                    colorIndex: number | undefined;
                    colorMethod: AcCmColorMethod;
                    colorName: string | undefined;
                    cssColor: string | undefined;
                    green: number | undefined;
                    hexColor: string | undefined;
                    isByACI: boolean;
                    isByBlock: boolean;
                    isByColor: boolean;
                    isByLayer: boolean;
                    isForeground: boolean;
                    red: number | undefined;
                    RGB: number | undefined;
                    clone(): AcCmColor;
                    copy(other: AcCmColor): this;
                    cssColorAlpha(alpha: number): string | undefined;
                    equals(other: AcCmColor): boolean;
                    setByBlock(value?: number): this;
                    setByLayer(value?: number): this;
                    setForeground(): this;
                    setRGB(r: number, g: number, b: number): this;
                    setRGBFromCss(cssString: string): this;
                    setRGBValue(value: number | null | undefined): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                database: {
                    angBase: number;
                    angDir: number;
                    attrs: {
                        attributes: {
                            extensionDictionary?: string;
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        changed: {
                            extensionDictionary?: string;
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        events: {
                            attrChanged: {
                                addEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                                dispatch(
                                    payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                    ...args: unknown[],
                                ): void;
                                removeEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                                replaceEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                            };
                            modelChanged: {
                                addEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                                dispatch(
                                    payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                    ...args: unknown[],
                                ): void;
                                removeEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                                replaceEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                            };
                        };
                        changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                        clone(): AcCmObject<AcDbObjectAttrs>;
                        get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                        has(key: string): boolean;
                        hasChanged(key?: string): boolean;
                        previous<A extends string>(
                            key: A,
                        ): AcDbObjectAttrs[A] | null | undefined;
                        previousAttributes(): Partial<T>;
                        set<A extends string>(
                            key: A,
                            val?: AcDbObjectAttrs[A],
                            options?: AcCmObjectOptions,
                        ): this;
                        set(key: Partial<T>, options?: AcCmObjectOptions): this;
                    };
                    aunits: number;
                    cecolor: {
                        blue: number
                        | undefined;
                        colorIndex: number | undefined;
                        colorMethod: AcCmColorMethod;
                        colorName: string | undefined;
                        cssColor: string | undefined;
                        green: number | undefined;
                        hexColor: string | undefined;
                        isByACI: boolean;
                        isByBlock: boolean;
                        isByColor: boolean;
                        isByLayer: boolean;
                        isForeground: boolean;
                        red: number | undefined;
                        RGB: number | undefined;
                        clone(): AcCmColor;
                        copy(other: AcCmColor): this;
                        cssColorAlpha(alpha: number): string | undefined;
                        equals(other: AcCmColor): boolean;
                        setByBlock(value?: number): this;
                        setByLayer(value?: number): this;
                        setForeground(): this;
                        setRGB(r: number, g: number, b: number): this;
                        setRGBFromCss(cssString: string): this;
                        setRGBValue(value: number | null | undefined): this;
                        setScalar(scalar: number): this;
                        toString(): string;
                    };
                    celtscale: number;
                    celtype: string;
                    celweight: AcGiLineWeight;
                    clayer: string;
                    currentSpaceId: string;
                    database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                    events: {
                        dictObjectErased: {
                            addEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                        };
                        dictObjetSet: {
                            addEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                        };
                        entityAppended: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        entityErased: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        entityModified: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        layerAppended: {
                            addEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                        };
                        layerErased: {
                            addEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                        };
                        layerModified: {
                            addEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcDbLayerModifiedEventArgs,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                        };
                        openProgress: {
                            addEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbProgressdEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                        };
                    };
                    extensionDictionary: string
                    | undefined;
                    extents: {
                        center: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        max: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        min: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        size: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        applyMatrix4(matrix: AcGeMatrix3d): this;
                        clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                        clone(): AcGeBox3d;
                        containsBox(box: AcGeBox3d): boolean;
                        containsPoint(point: AcGeVector3dLike): boolean;
                        copy(box: AcGeBox3d): this;
                        distanceToPoint(point: AcGeVector3dLike): number;
                        equals(box: AcGeBox3d): boolean;
                        expandByPoint(point: AcGeVector3dLike): this;
                        expandByScalar(scalar: number): this;
                        expandByVector(vector: AcGeVector3dLike): this;
                        getCenter(target: AcGeVector3d): AcGeVector3d;
                        getParameter(
                            point: AcGeVector3dLike,
                            target: AcGeVector3d,
                        ): AcGeVector3d;
                        getSize(target: AcGeVector3d): AcGeVector3d;
                        intersect(box: AcGeBox3d): this;
                        intersectsBox(box: AcGeBox3d): boolean;
                        intersectsPlane(plane: AcGePlane): boolean;
                        isEmpty(): boolean;
                        makeEmpty(): this;
                        set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        setFromArray(array: number[]): this;
                        setFromCenterAndSize(
                            center: AcGeVector3dLike,
                            size: AcGeVector3dLike,
                        ): this;
                        setFromPoints(points: AcGeVector3dLike[]): this;
                        translate(offset: AcGeVector3dLike): this;
                        union(box: AcGeBox3d): this;
                    };
                    extmax: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGePoint3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    extmin: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGePoint3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    insunits: number;
                    isTemp: any;
                    ltscale: number;
                    lwdisplay: boolean;
                    objectId: string;
                    objects: {
                        dictionary: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<
                                [string, AcDbDictionary<AcDbObject<(...)>>],
                            >;
                            getAt(
                                name: string,
                            ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(
                                id: string,
                            ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<
                                AcDbDictionary<AcDbObject<AcDbObjectAttrs>>,
                            >;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbDictionary): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        imageDefinition: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbRasterImageDef]>;
                            getAt(name: string): AcDbRasterImageDef | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbRasterImageDef | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbRasterImageDef): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        layout: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            maxTabOrder: number;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbLayout]>;
                            getAt(name: string): AcDbLayout | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getBtrIdAt(id: string): AcDbLayout | undefined;
                            getIdAt(id: string): AcDbLayout | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayout>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbLayout): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        xrecord: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbXrecord]>;
                            getAt(name: string): AcDbXrecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbXrecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbXrecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbXrecord): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                    };
                    osmode: number;
                    ownerId: string;
                    pdmode: number;
                    pdsize: number;
                    tables: {
                        appIdTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbRegAppTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbRegAppTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbRegAppTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbRegAppTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRegAppTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        blockTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            modelSpace: {
                                attrs: {
                                    attributes: {
                                        extensionDictionary?: (...) | (...);
                                        name?: (...) | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    changed: {
                                        extensionDictionary?: (...)
                                        | (...);
                                        name?: (...) | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    events: {
                                        attrChanged: {
                                            addEventListener(listener: ...): ...;
                                            dispatch(payload?: ..., ...args: ...): ...;
                                            removeEventListener(listener: ...): ...;
                                            replaceEventListener(listener: ...): ...;
                                        };
                                        modelChanged: {
                                            addEventListener(listener: ...): ...;
                                            dispatch(payload?: ..., ...args: ...): ...;
                                            removeEventListener(listener: ...): ...;
                                            replaceEventListener(listener: ...): ...;
                                        };
                                    };
                                    changedAttributes(diff?: Partial<(...)>): Partial<T>;
                                    clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                    get<A extends string>(key: A): (...)[(...)] | undefined;
                                    has(key: string): boolean;
                                    hasChanged(key?: string): boolean;
                                    previous<A extends string>(key: A): (...)[(...)] | null | undefined;
                                    previousAttributes(): Partial<T>;
                                    set<A extends string>(
                                        key: A,
                                        val?: (...)[(...)],
                                        options?: AcCmObjectOptions,
                                    ): this;
                                    set(key: Partial<T>, options?: AcCmObjectOptions): this;
                                };
                                blockInsertUnits: AcDbUnitsValue;
                                blockScaling: AcDbBlockScaling;
                                bmpPreview: string
                                | undefined;
                                database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                                explodability: number;
                                extensionDictionary: string | undefined;
                                isModelSapce: boolean;
                                isPaperSapce: boolean;
                                isTemp: any;
                                layoutId: string;
                                name: string;
                                objectId: string;
                                origin: {
                                    x: number;
                                    y: number;
                                    z: number;
                                    "[iterator]"(): Generator<number, void, unknown>;
                                    add(v: AcGeVectorLike): this;
                                    addScalar(s: number): this;
                                    addScaledVector(v: AcGeVector3dLike, s: number): this;
                                    addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    angleTo(v: AcGeVector3d): number;
                                    applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                                    applyEuler(euler: AcGeEuler): this;
                                    applyMatrix3(m: AcGeMatrix2d): this;
                                    applyMatrix4(m: AcGeMatrix3d): this;
                                    applyNormalMatrix(m: AcGeMatrix2d): this;
                                    applyQuaternion(q: AcGeQuaternion): this;
                                    ceil(): this;
                                    clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                                    clampLength(min: number, max: number): this;
                                    clampScalar(minVal: number, maxVal: number): this;
                                    clone(): AcGePoint3d;
                                    copy(v: AcGeVectorLike): this;
                                    cross(v: AcGeVector3dLike): this;
                                    crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    distanceTo(v: AcGeVector3dLike): number;
                                    distanceToSquared(v: AcGeVector3dLike): number;
                                    divide(v: AcGeVector3dLike): this;
                                    divideScalar(scalar: number): this;
                                    dot(v: AcGeVector3dLike): number;
                                    equals(v: AcGeVector3dLike): boolean;
                                    floor(): this;
                                    fromArray(array: number[], offset?: number): this;
                                    getComponent(index: number): number;
                                    isParallelTo(vec: AcGeVector3d): boolean;
                                    length(): number;
                                    lengthSq(): number;
                                    lerp(v: AcGeVector3dLike, alpha: number): this;
                                    lerpVectors(
                                        v1: AcGeVector3dLike,
                                        v2: AcGeVector3dLike,
                                        alpha: number,
                                    ): this;
                                    manhattanDistanceTo(v: AcGeVector3dLike): number;
                                    manhattanLength(): number;
                                    max(v: AcGeVector3dLike): this;
                                    min(v: AcGeVector3dLike): this;
                                    multiply(v: AcGeVector3dLike): this;
                                    multiplyScalar(scalar: number): this;
                                    multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    negate(): this;
                                    normalize(): this;
                                    projectOnPlane(planeNormal: AcGeVector3d): this;
                                    projectOnVector(v: AcGeVector3d): this;
                                    random(): this;
                                    randomDirection(): this;
                                    reflect(normal: AcGeVector3dLike): this;
                                    round(): this;
                                    roundToZero(): this;
                                    set(x: number, y: number, z: number): this;
                                    setComponent(index: number, value: number): this;
                                    setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                                    setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                                    setFromMatrixPosition(m: AcGeMatrix3d): this;
                                    setFromMatrixScale(m: AcGeMatrix3d): this;
                                    setLength(l: number): this;
                                    setScalar(scalar: number): this;
                                    setX(x: number): this;
                                    setY(y: number): this;
                                    setZ(z: number): this;
                                    sub(v: AcGeVector3dLike): this;
                                    subScalar(s: number): this;
                                    subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    toArray(
                                        array?: (...)[] | Float32Array<(...)>,
                                        offset?: number,
                                    ): (...)[] | Float32Array<(...)>;
                                    transformDirection(m: AcGeMatrix3d): this;
                                };
                                ownerId: string;
                                appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                clone(): this;
                                close(): void;
                                createExtensionDictionary(): string | undefined;
                                dxfOut(...args: unknown[]): unknown;
                                dxfOutBlockBegin(filer: AcDbDxfFiler): this;
                                dxfOutBlockEnd(filer: AcDbDxfFiler): this;
                                dxfOutBlockRecord(filer: AcDbDxfFiler): this;
                                dxfOutFields(filer: AcDbDxfFiler): this;
                                getAttr(attrName: string): any;
                                getAttrWithoutException(attrName: string): any;
                                getIdAt(id: string): AcDbEntity | undefined;
                                getXData(appId: string): AcDbResultBuffer | undefined;
                                newIterator(): AcDbObjectIterator<AcDbEntity>;
                                removeEntity(objectId: string | string[]): boolean;
                                removeXData(appId: string): void;
                                setAttr<A extends string>(
                                    attrName: A,
                                    val?: AcDbSymbolTableRecordAttrs[A],
                                ): void;
                                setXData(resbuf: AcDbResultBuffer): void;
                            };
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbBlockTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbBlockTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getEntityById(id: string): AcDbEntity | undefined;
                            getIdAt(id: string): AcDbBlockTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbBlockTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeEntity(objectId: string | string[]): boolean;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        dimStyleTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbDimStyleTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbDimStyleTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        layerTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLayerTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbLayerTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbLayerTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbLayerTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        linetypeTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLinetypeTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbLinetypeTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        textStyleTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            fonts: string[];
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbTextStyleTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbTextStyleTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        viewportTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewportTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbViewportTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbViewportTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbViewportTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        viewTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbViewTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbViewTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbViewTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                    };
                    textstyle: string;
                    version: { name: string; value: number };
                    clone(): this;
                    close(): void;
                    commitObjectHandle(
                        object: AcDbObject,
                        hasId?: (id: string) => boolean,
                    ): void;
                    createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                    createExtensionDictionary(): string | undefined;
                    dxfOut(
                        _fileName?: string,
                        precision?: number,
                        version?: string | number | AcDbDwgVersion,
                        _saveThumbnailImage?: boolean,
                    ): string;
                    dxfOutFields(_filer: AcDbDxfFiler): this;
                    generateHandle(): string;
                    getAttr(attrName: string): any;
                    getAttrWithoutException(attrName: string): any;
                    getXData(appId: string): AcDbResultBuffer | undefined;
                    openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                    read(
                        data: ArrayBuffer,
                        options: AcDbOpenDatabaseOptions,
                        fileType?: string,
                    ): Promise<void>;
                    regen(): Promise<void>;
                    removeXData(appId: string): void;
                    setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                    setXData(resbuf: AcDbResultBuffer): void;
                    updateMaxHandle(handle: string): void;
                };
                dxfTypeName: string;
                extensionDictionary: string
                | undefined;
                geometricExtents: {
                    center: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    max: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    min: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    size: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    applyMatrix4(matrix: AcGeMatrix3d): this;
                    clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                    clone(): AcGeBox3d;
                    containsBox(box: AcGeBox3d): boolean;
                    containsPoint(point: AcGeVector3dLike): boolean;
                    copy(box: AcGeBox3d): this;
                    distanceToPoint(point: AcGeVector3dLike): number;
                    equals(box: AcGeBox3d): boolean;
                    expandByPoint(point: AcGeVector3dLike): this;
                    expandByScalar(scalar: number): this;
                    expandByVector(vector: AcGeVector3dLike): this;
                    getCenter(target: AcGeVector3d): AcGeVector3d;
                    getParameter(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                    getSize(target: AcGeVector3d): AcGeVector3d;
                    intersect(box: AcGeBox3d): this;
                    intersectsBox(box: AcGeBox3d): boolean;
                    intersectsPlane(plane: AcGePlane): boolean;
                    isEmpty(): boolean;
                    makeEmpty(): this;
                    set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                    setFromArray(array: number[]): this;
                    setFromCenterAndSize(
                        center: AcGeVector3dLike,
                        size: AcGeVector3dLike,
                    ): this;
                    setFromPoints(points: AcGeVector3dLike[]): this;
                    translate(offset: AcGeVector3dLike): this;
                    union(box: AcGeBox3d): this;
                };
                isTemp: any;
                layer: string;
                lineStyle: {
                    arrows?: {
                        firstArrow?: {
                            appended?: boolean;
                            inversed?: boolean;
                            scale?: number;
                            type: AcGiArrowType;
                            visible: boolean;
                        };
                        secondArrow?: {
                            appended?: boolean;
                            inversed?: boolean;
                            scale?: number;
                            type: AcGiArrowType;
                            visible: boolean;
                        };
                    };
                    description: string;
                    name: string;
                    pattern?: {
                        elementLength: number;
                        elementTypeFlag: number;
                        offsetX?: number;
                        offsetY?: number;
                        rotation?: number;
                        scale?: number;
                        shapeNumber?: number;
                        styleObjectId?: string;
                        text?: string;
                    }[];
                    standardFlag: number;
                    totalPatternLength: number;
                    type: AcGiStyleType;
                };
                lineType: string;
                linetypeScale: number;
                lineWeight: AcGiLineWeight;
                objectId: string;
                ownerId: string;
                properties: {
                    groups: {
                        groupName: string;
                        properties: {
                            accessor: { set?: (...)
                            | (...); get(): unknown };
                            editable?: boolean;
                            itemSchema?: { properties: ... };
                            name: string;
                            options?: (...)[];
                            skipTranslation?: boolean;
                            type: AcDbEntityPropertyType;
                        }[];
                    }[];
                    type: string;
                };
                resolvedColor: {
                    blue: number
                    | undefined;
                    colorIndex: number | undefined;
                    colorMethod: AcCmColorMethod;
                    colorName: string | undefined;
                    cssColor: string | undefined;
                    green: number | undefined;
                    hexColor: string | undefined;
                    isByACI: boolean;
                    isByBlock: boolean;
                    isByColor: boolean;
                    isByLayer: boolean;
                    isForeground: boolean;
                    red: number | undefined;
                    RGB: number | undefined;
                    clone(): AcCmColor;
                    copy(other: AcCmColor): this;
                    cssColorAlpha(alpha: number): string | undefined;
                    equals(other: AcCmColor): boolean;
                    setByBlock(value?: number): this;
                    setByLayer(value?: number): this;
                    setForeground(): this;
                    setRGB(r: number, g: number, b: number): this;
                    setRGBFromCss(cssString: string): this;
                    setRGBValue(value: number | null | undefined): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                rgbColor: number;
                transparency: {
                    alpha: number;
                    isByAlpha: boolean;
                    isByBlock: boolean;
                    isByLayer: boolean;
                    isClear: boolean;
                    isInvalid: boolean;
                    isSolid: boolean;
                    method: AcCmTransparencyMethod;
                    percentage: number
                    | undefined;
                    clone(): AcCmTransparency;
                    equals(other: AcCmTransparency): boolean;
                    serialize(): number;
                    toString(): string;
                };
                type: string;
                visibility: boolean;
                clone(): this;
                close(): void;
                createExtensionDictionary(): string | undefined;
                dxfOut(...args: unknown[]): unknown;
                dxfOutFields(filer: AcDbDxfFiler): this;
                erase(): boolean;
                getAttr(attrName: string): any;
                getAttrWithoutException(attrName: string): any;
                getXData(appId: string): AcDbResultBuffer | undefined;
                removeXData(appId: string): void;
                resolveEffectiveProperties(): void;
                setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                setXData(resbuf: AcDbResultBuffer): void;
                subGetGripPoints(): AcGePoint3d[];
                subGetOsnapPoints(
                    osnapMode: AcDbOsnapMode,
                    pickPoint: AcGePoint3dLike,
                    lastPoint: AcGePoint3dLike,
                    snapPoints: AcGePoint3dLike[],
                    gsMark?: any,
                    insertionMat?: AcGeMatrix3d,
                ): void;
                subWorldDraw(
                    renderer: AcGiRenderer,
                    delay?: boolean,
                ): AcGiEntity | undefined;
                transformBy(matrix: AcGeMatrix3d): this;
                triggerModifiedEvent(): void;
                worldDraw(renderer: AcGiRenderer, delay?: boolean): AcGiEntity | undefined;
            }
            | null,
            | AcDbEntity
            | {
                attrs: {
                    attributes: {
                        extensionDictionary?: string;
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    changed: {
                        extensionDictionary?: string;
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    events: {
                        attrChanged: {
                            addEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                            ): void;
                        };
                        modelChanged: {
                            addEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcCmObjectChangedEventArgs) => void,
                            ): void;
                        };
                    };
                    changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                    clone(): AcCmObject<AcDbObjectAttrs>;
                    get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                    has(key: string): boolean;
                    hasChanged(key?: string): boolean;
                    previous<A extends string>(key: A): AcDbObjectAttrs[A] | null | undefined;
                    previousAttributes(): Partial<T>;
                    set<A extends string>(
                        key: A,
                        val?: AcDbObjectAttrs[A],
                        options?: AcCmObjectOptions,
                    ): this;
                    set(key: Partial<T>, options?: AcCmObjectOptions): this;
                };
                color: {
                    blue: number
                    | undefined;
                    colorIndex: number | undefined;
                    colorMethod: AcCmColorMethod;
                    colorName: string | undefined;
                    cssColor: string | undefined;
                    green: number | undefined;
                    hexColor: string | undefined;
                    isByACI: boolean;
                    isByBlock: boolean;
                    isByColor: boolean;
                    isByLayer: boolean;
                    isForeground: boolean;
                    red: number | undefined;
                    RGB: number | undefined;
                    clone(): AcCmColor;
                    copy(other: AcCmColor): this;
                    cssColorAlpha(alpha: number): string | undefined;
                    equals(other: AcCmColor): boolean;
                    setByBlock(value?: number): this;
                    setByLayer(value?: number): this;
                    setForeground(): this;
                    setRGB(r: number, g: number, b: number): this;
                    setRGBFromCss(cssString: string): this;
                    setRGBValue(value: number | null | undefined): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                database: {
                    angBase: number;
                    angDir: number;
                    attrs: {
                        attributes: {
                            extensionDictionary?: string;
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        changed: {
                            extensionDictionary?: string;
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        events: {
                            attrChanged: {
                                addEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                                dispatch(
                                    payload?: AcCmObjectAttributeChangedEventArgs<AcDbObjectAttrs>,
                                    ...args: unknown[],
                                ): void;
                                removeEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                                replaceEventListener(
                                    listener: (payload: AcCmObjectAttributeChangedEventArgs) => void,
                                ): void;
                            };
                            modelChanged: {
                                addEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                                dispatch(
                                    payload?: AcCmObjectChangedEventArgs<AcDbObjectAttrs>,
                                    ...args: unknown[],
                                ): void;
                                removeEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                                replaceEventListener(
                                    listener: (payload: AcCmObjectChangedEventArgs) => void,
                                ): void;
                            };
                        };
                        changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                        clone(): AcCmObject<AcDbObjectAttrs>;
                        get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                        has(key: string): boolean;
                        hasChanged(key?: string): boolean;
                        previous<A extends string>(
                            key: A,
                        ): AcDbObjectAttrs[A] | null | undefined;
                        previousAttributes(): Partial<T>;
                        set<A extends string>(
                            key: A,
                            val?: AcDbObjectAttrs[A],
                            options?: AcCmObjectOptions,
                        ): this;
                        set(key: Partial<T>, options?: AcCmObjectOptions): this;
                    };
                    aunits: number;
                    cecolor: {
                        blue: number
                        | undefined;
                        colorIndex: number | undefined;
                        colorMethod: AcCmColorMethod;
                        colorName: string | undefined;
                        cssColor: string | undefined;
                        green: number | undefined;
                        hexColor: string | undefined;
                        isByACI: boolean;
                        isByBlock: boolean;
                        isByColor: boolean;
                        isByLayer: boolean;
                        isForeground: boolean;
                        red: number | undefined;
                        RGB: number | undefined;
                        clone(): AcCmColor;
                        copy(other: AcCmColor): this;
                        cssColorAlpha(alpha: number): string | undefined;
                        equals(other: AcCmColor): boolean;
                        setByBlock(value?: number): this;
                        setByLayer(value?: number): this;
                        setForeground(): this;
                        setRGB(r: number, g: number, b: number): this;
                        setRGBFromCss(cssString: string): this;
                        setRGBValue(value: number | null | undefined): this;
                        setScalar(scalar: number): this;
                        toString(): string;
                    };
                    celtscale: number;
                    celtype: string;
                    celweight: AcGiLineWeight;
                    clayer: string;
                    currentSpaceId: string;
                    database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                    events: {
                        dictObjectErased: {
                            addEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                        };
                        dictObjetSet: {
                            addEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbDictObjectEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbDictObjectEventArgs) => void,
                            ): void;
                        };
                        entityAppended: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        entityErased: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        entityModified: {
                            addEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbEntityEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbEntityEventArgs) => void,
                            ): void;
                        };
                        layerAppended: {
                            addEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                        };
                        layerErased: {
                            addEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbLayerEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerEventArgs) => void,
                            ): void;
                        };
                        layerModified: {
                            addEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcDbLayerModifiedEventArgs,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbLayerModifiedEventArgs) => void,
                            ): void;
                        };
                        openProgress: {
                            addEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                            dispatch(payload?: AcDbProgressdEventArgs, ...args: unknown[]): void;
                            removeEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbProgressdEventArgs) => void,
                            ): void;
                        };
                    };
                    extensionDictionary: string
                    | undefined;
                    extents: {
                        center: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        max: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        min: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        size: {
                            x: number;
                            y: number;
                            z: number;
                            "[iterator]"(): Generator<number, void, unknown>;
                            add(v: AcGeVectorLike): this;
                            addScalar(s: number): this;
                            addScaledVector(v: AcGeVector3dLike, s: number): this;
                            addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            angleTo(v: AcGeVector3d): number;
                            applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                            applyEuler(euler: AcGeEuler): this;
                            applyMatrix3(m: AcGeMatrix2d): this;
                            applyMatrix4(m: AcGeMatrix3d): this;
                            applyNormalMatrix(m: AcGeMatrix2d): this;
                            applyQuaternion(q: AcGeQuaternion): this;
                            ceil(): this;
                            clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                            clampLength(min: number, max: number): this;
                            clampScalar(minVal: number, maxVal: number): this;
                            clone(): AcGeVector3d;
                            copy(v: AcGeVectorLike): this;
                            cross(v: AcGeVector3dLike): this;
                            crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            distanceTo(v: AcGeVector3dLike): number;
                            distanceToSquared(v: AcGeVector3dLike): number;
                            divide(v: AcGeVector3dLike): this;
                            divideScalar(scalar: number): this;
                            dot(v: AcGeVector3dLike): number;
                            equals(v: AcGeVector3dLike): boolean;
                            floor(): this;
                            fromArray(array: number[], offset?: number): this;
                            getComponent(index: number): number;
                            isParallelTo(vec: AcGeVector3d): boolean;
                            length(): number;
                            lengthSq(): number;
                            lerp(v: AcGeVector3dLike, alpha: number): this;
                            lerpVectors(
                                v1: AcGeVector3dLike,
                                v2: AcGeVector3dLike,
                                alpha: number,
                            ): this;
                            manhattanDistanceTo(v: AcGeVector3dLike): number;
                            manhattanLength(): number;
                            max(v: AcGeVector3dLike): this;
                            min(v: AcGeVector3dLike): this;
                            multiply(v: AcGeVector3dLike): this;
                            multiplyScalar(scalar: number): this;
                            multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            negate(): this;
                            normalize(): this;
                            projectOnPlane(planeNormal: AcGeVector3d): this;
                            projectOnVector(v: AcGeVector3d): this;
                            random(): this;
                            randomDirection(): this;
                            reflect(normal: AcGeVector3dLike): this;
                            round(): this;
                            roundToZero(): this;
                            set(x: number, y: number, z: number): this;
                            setComponent(index: number, value: number): this;
                            setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                            setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                            setFromMatrixPosition(m: AcGeMatrix3d): this;
                            setFromMatrixScale(m: AcGeMatrix3d): this;
                            setLength(l: number): this;
                            setScalar(scalar: number): this;
                            setX(x: number): this;
                            setY(y: number): this;
                            setZ(z: number): this;
                            sub(v: AcGeVector3dLike): this;
                            subScalar(s: number): this;
                            subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                            toArray(
                                array?: number[] | Float32Array<ArrayBufferLike>,
                                offset?: number,
                            ): number[] | Float32Array<ArrayBufferLike>;
                            transformDirection(m: AcGeMatrix3d): this;
                        };
                        applyMatrix4(matrix: AcGeMatrix3d): this;
                        clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                        clone(): AcGeBox3d;
                        containsBox(box: AcGeBox3d): boolean;
                        containsPoint(point: AcGeVector3dLike): boolean;
                        copy(box: AcGeBox3d): this;
                        distanceToPoint(point: AcGeVector3dLike): number;
                        equals(box: AcGeBox3d): boolean;
                        expandByPoint(point: AcGeVector3dLike): this;
                        expandByScalar(scalar: number): this;
                        expandByVector(vector: AcGeVector3dLike): this;
                        getCenter(target: AcGeVector3d): AcGeVector3d;
                        getParameter(
                            point: AcGeVector3dLike,
                            target: AcGeVector3d,
                        ): AcGeVector3d;
                        getSize(target: AcGeVector3d): AcGeVector3d;
                        intersect(box: AcGeBox3d): this;
                        intersectsBox(box: AcGeBox3d): boolean;
                        intersectsPlane(plane: AcGePlane): boolean;
                        isEmpty(): boolean;
                        makeEmpty(): this;
                        set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        setFromArray(array: number[]): this;
                        setFromCenterAndSize(
                            center: AcGeVector3dLike,
                            size: AcGeVector3dLike,
                        ): this;
                        setFromPoints(points: AcGeVector3dLike[]): this;
                        translate(offset: AcGeVector3dLike): this;
                        union(box: AcGeBox3d): this;
                    };
                    extmax: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGePoint3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    extmin: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGePoint3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    insunits: number;
                    isTemp: any;
                    ltscale: number;
                    lwdisplay: boolean;
                    objectId: string;
                    objects: {
                        dictionary: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<
                                [string, AcDbDictionary<AcDbObject<(...)>>],
                            >;
                            getAt(
                                name: string,
                            ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(
                                id: string,
                            ): AcDbDictionary<AcDbObject<AcDbObjectAttrs>> | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<
                                AcDbDictionary<AcDbObject<AcDbObjectAttrs>>,
                            >;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbDictionary): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        imageDefinition: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbRasterImageDef]>;
                            getAt(name: string): AcDbRasterImageDef | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbRasterImageDef | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbRasterImageDef): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        layout: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            maxTabOrder: number;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbLayout]>;
                            getAt(name: string): AcDbLayout | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getBtrIdAt(id: string): AcDbLayout | undefined;
                            getIdAt(id: string): AcDbLayout | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayout>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbLayout): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        xrecord: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            entries(): IterableIterator<[string, AcDbXrecord]>;
                            getAt(name: string): AcDbXrecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbXrecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbXrecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAt(key: string, value: AcDbXrecord): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                    };
                    osmode: number;
                    ownerId: string;
                    pdmode: number;
                    pdsize: number;
                    tables: {
                        appIdTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbRegAppTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbRegAppTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbRegAppTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbRegAppTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRegAppTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        blockTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            modelSpace: {
                                attrs: {
                                    attributes: {
                                        extensionDictionary?: (...) | (...);
                                        name?: (...) | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    changed: {
                                        extensionDictionary?: (...)
                                        | (...);
                                        name?: (...) | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    events: {
                                        attrChanged: {
                                            addEventListener(listener: ...): ...;
                                            dispatch(payload?: ..., ...args: ...): ...;
                                            removeEventListener(listener: ...): ...;
                                            replaceEventListener(listener: ...): ...;
                                        };
                                        modelChanged: {
                                            addEventListener(listener: ...): ...;
                                            dispatch(payload?: ..., ...args: ...): ...;
                                            removeEventListener(listener: ...): ...;
                                            replaceEventListener(listener: ...): ...;
                                        };
                                    };
                                    changedAttributes(diff?: Partial<(...)>): Partial<T>;
                                    clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                    get<A extends string>(key: A): (...)[(...)] | undefined;
                                    has(key: string): boolean;
                                    hasChanged(key?: string): boolean;
                                    previous<A extends string>(key: A): (...)[(...)] | null | undefined;
                                    previousAttributes(): Partial<T>;
                                    set<A extends string>(
                                        key: A,
                                        val?: (...)[(...)],
                                        options?: AcCmObjectOptions,
                                    ): this;
                                    set(key: Partial<T>, options?: AcCmObjectOptions): this;
                                };
                                blockInsertUnits: AcDbUnitsValue;
                                blockScaling: AcDbBlockScaling;
                                bmpPreview: string
                                | undefined;
                                database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                                explodability: number;
                                extensionDictionary: string | undefined;
                                isModelSapce: boolean;
                                isPaperSapce: boolean;
                                isTemp: any;
                                layoutId: string;
                                name: string;
                                objectId: string;
                                origin: {
                                    x: number;
                                    y: number;
                                    z: number;
                                    "[iterator]"(): Generator<number, void, unknown>;
                                    add(v: AcGeVectorLike): this;
                                    addScalar(s: number): this;
                                    addScaledVector(v: AcGeVector3dLike, s: number): this;
                                    addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    angleTo(v: AcGeVector3d): number;
                                    applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                                    applyEuler(euler: AcGeEuler): this;
                                    applyMatrix3(m: AcGeMatrix2d): this;
                                    applyMatrix4(m: AcGeMatrix3d): this;
                                    applyNormalMatrix(m: AcGeMatrix2d): this;
                                    applyQuaternion(q: AcGeQuaternion): this;
                                    ceil(): this;
                                    clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                                    clampLength(min: number, max: number): this;
                                    clampScalar(minVal: number, maxVal: number): this;
                                    clone(): AcGePoint3d;
                                    copy(v: AcGeVectorLike): this;
                                    cross(v: AcGeVector3dLike): this;
                                    crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    distanceTo(v: AcGeVector3dLike): number;
                                    distanceToSquared(v: AcGeVector3dLike): number;
                                    divide(v: AcGeVector3dLike): this;
                                    divideScalar(scalar: number): this;
                                    dot(v: AcGeVector3dLike): number;
                                    equals(v: AcGeVector3dLike): boolean;
                                    floor(): this;
                                    fromArray(array: number[], offset?: number): this;
                                    getComponent(index: number): number;
                                    isParallelTo(vec: AcGeVector3d): boolean;
                                    length(): number;
                                    lengthSq(): number;
                                    lerp(v: AcGeVector3dLike, alpha: number): this;
                                    lerpVectors(
                                        v1: AcGeVector3dLike,
                                        v2: AcGeVector3dLike,
                                        alpha: number,
                                    ): this;
                                    manhattanDistanceTo(v: AcGeVector3dLike): number;
                                    manhattanLength(): number;
                                    max(v: AcGeVector3dLike): this;
                                    min(v: AcGeVector3dLike): this;
                                    multiply(v: AcGeVector3dLike): this;
                                    multiplyScalar(scalar: number): this;
                                    multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    negate(): this;
                                    normalize(): this;
                                    projectOnPlane(planeNormal: AcGeVector3d): this;
                                    projectOnVector(v: AcGeVector3d): this;
                                    random(): this;
                                    randomDirection(): this;
                                    reflect(normal: AcGeVector3dLike): this;
                                    round(): this;
                                    roundToZero(): this;
                                    set(x: number, y: number, z: number): this;
                                    setComponent(index: number, value: number): this;
                                    setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                                    setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                                    setFromMatrixPosition(m: AcGeMatrix3d): this;
                                    setFromMatrixScale(m: AcGeMatrix3d): this;
                                    setLength(l: number): this;
                                    setScalar(scalar: number): this;
                                    setX(x: number): this;
                                    setY(y: number): this;
                                    setZ(z: number): this;
                                    sub(v: AcGeVector3dLike): this;
                                    subScalar(s: number): this;
                                    subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                                    toArray(
                                        array?: (...)[] | Float32Array<(...)>,
                                        offset?: number,
                                    ): (...)[] | Float32Array<(...)>;
                                    transformDirection(m: AcGeMatrix3d): this;
                                };
                                ownerId: string;
                                appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                clone(): this;
                                close(): void;
                                createExtensionDictionary(): string | undefined;
                                dxfOut(...args: unknown[]): unknown;
                                dxfOutBlockBegin(filer: AcDbDxfFiler): this;
                                dxfOutBlockEnd(filer: AcDbDxfFiler): this;
                                dxfOutBlockRecord(filer: AcDbDxfFiler): this;
                                dxfOutFields(filer: AcDbDxfFiler): this;
                                getAttr(attrName: string): any;
                                getAttrWithoutException(attrName: string): any;
                                getIdAt(id: string): AcDbEntity | undefined;
                                getXData(appId: string): AcDbResultBuffer | undefined;
                                newIterator(): AcDbObjectIterator<AcDbEntity>;
                                removeEntity(objectId: string | string[]): boolean;
                                removeXData(appId: string): void;
                                setAttr<A extends string>(
                                    attrName: A,
                                    val?: AcDbSymbolTableRecordAttrs[A],
                                ): void;
                                setXData(resbuf: AcDbResultBuffer): void;
                            };
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbBlockTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbBlockTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getEntityById(id: string): AcDbEntity | undefined;
                            getIdAt(id: string): AcDbBlockTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbBlockTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeEntity(objectId: string | string[]): boolean;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        dimStyleTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbDimStyleTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbDimStyleTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbDimStyleTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        layerTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLayerTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbLayerTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbLayerTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbLayerTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        linetypeTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLinetypeTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbLinetypeTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbLinetypeTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        textStyleTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            fonts: string[];
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbTextStyleTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbTextStyleTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbTextStyleTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        viewportTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewportTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbViewportTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbViewportTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbViewportTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                        viewTable: {
                            attrs: {
                                attributes: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: {
                                    extensionDictionary?: string;
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                events: {
                                    attrChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                    modelChanged: {
                                        addEventListener(listener: (payload: ...) => ...): void;
                                        dispatch(payload?: (...) | (...), ...args: (...)[]): void;
                                        removeEventListener(listener: (payload: ...) => ...): void;
                                        replaceEventListener(listener: (payload: ...) => ...): void;
                                    };
                                };
                                changedAttributes(diff?: Partial<AcDbObjectAttrs>): Partial<T>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): AcDbObjectAttrs[A] | undefined;
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): AcDbObjectAttrs[A] | null | undefined;
                                previousAttributes(): Partial<T>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<T>, options?: AcCmObjectOptions): this;
                            };
                            database: { readonly events: { dictObjetSet: { addEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; removeEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; replaceEventListener: (listener: (payload: AcDbDictObjectEventArgs) => void) => void; dispatch: (payload?: AcDbDi...;
                            extensionDictionary: string
                            | undefined;
                            isTemp: any;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewTableRecord): void;
                            clone(): this;
                            close(): void;
                            createExtensionDictionary(): string | undefined;
                            dxfOut(...args: unknown[]): unknown;
                            dxfOutFields(filer: AcDbDxfFiler): this;
                            getAt(name: string): AcDbViewTableRecord | undefined;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): AcDbViewTableRecord | undefined;
                            getOwnerIdAt(id: string): AcDbViewTableRecord | undefined;
                            getXData(appId: string): AcDbResultBuffer | undefined;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            removeXData(appId: string): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                            setXData(resbuf: AcDbResultBuffer): void;
                        };
                    };
                    textstyle: string;
                    version: { name: string; value: number };
                    clone(): this;
                    close(): void;
                    commitObjectHandle(
                        object: AcDbObject,
                        hasId?: (id: string) => boolean,
                    ): void;
                    createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                    createExtensionDictionary(): string | undefined;
                    dxfOut(
                        _fileName?: string,
                        precision?: number,
                        version?: string | number | AcDbDwgVersion,
                        _saveThumbnailImage?: boolean,
                    ): string;
                    dxfOutFields(_filer: AcDbDxfFiler): this;
                    generateHandle(): string;
                    getAttr(attrName: string): any;
                    getAttrWithoutException(attrName: string): any;
                    getXData(appId: string): AcDbResultBuffer | undefined;
                    openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                    read(
                        data: ArrayBuffer,
                        options: AcDbOpenDatabaseOptions,
                        fileType?: string,
                    ): Promise<void>;
                    regen(): Promise<void>;
                    removeXData(appId: string): void;
                    setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                    setXData(resbuf: AcDbResultBuffer): void;
                    updateMaxHandle(handle: string): void;
                };
                dxfTypeName: string;
                extensionDictionary: string
                | undefined;
                geometricExtents: {
                    center: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    max: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    min: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    size: {
                        x: number;
                        y: number;
                        z: number;
                        "[iterator]"(): Generator<number, void, unknown>;
                        add(v: AcGeVectorLike): this;
                        addScalar(s: number): this;
                        addScaledVector(v: AcGeVector3dLike, s: number): this;
                        addVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        angleTo(v: AcGeVector3d): number;
                        applyAxisAngle(axis: AcGeVector3dLike, angle: number): this;
                        applyEuler(euler: AcGeEuler): this;
                        applyMatrix3(m: AcGeMatrix2d): this;
                        applyMatrix4(m: AcGeMatrix3d): this;
                        applyNormalMatrix(m: AcGeMatrix2d): this;
                        applyQuaternion(q: AcGeQuaternion): this;
                        ceil(): this;
                        clamp(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                        clampLength(min: number, max: number): this;
                        clampScalar(minVal: number, maxVal: number): this;
                        clone(): AcGeVector3d;
                        copy(v: AcGeVectorLike): this;
                        cross(v: AcGeVector3dLike): this;
                        crossVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        distanceTo(v: AcGeVector3dLike): number;
                        distanceToSquared(v: AcGeVector3dLike): number;
                        divide(v: AcGeVector3dLike): this;
                        divideScalar(scalar: number): this;
                        dot(v: AcGeVector3dLike): number;
                        equals(v: AcGeVector3dLike): boolean;
                        floor(): this;
                        fromArray(array: number[], offset?: number): this;
                        getComponent(index: number): number;
                        isParallelTo(vec: AcGeVector3d): boolean;
                        length(): number;
                        lengthSq(): number;
                        lerp(v: AcGeVector3dLike, alpha: number): this;
                        lerpVectors(
                            v1: AcGeVector3dLike,
                            v2: AcGeVector3dLike,
                            alpha: number,
                        ): this;
                        manhattanDistanceTo(v: AcGeVector3dLike): number;
                        manhattanLength(): number;
                        max(v: AcGeVector3dLike): this;
                        min(v: AcGeVector3dLike): this;
                        multiply(v: AcGeVector3dLike): this;
                        multiplyScalar(scalar: number): this;
                        multiplyVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        negate(): this;
                        normalize(): this;
                        projectOnPlane(planeNormal: AcGeVector3d): this;
                        projectOnVector(v: AcGeVector3d): this;
                        random(): this;
                        randomDirection(): this;
                        reflect(normal: AcGeVector3dLike): this;
                        round(): this;
                        roundToZero(): this;
                        set(x: number, y: number, z: number): this;
                        setComponent(index: number, value: number): this;
                        setFromMatrix3Column(m: AcGeMatrix2d, index: number): this;
                        setFromMatrixColumn(m: AcGeMatrix3d, index: number): this;
                        setFromMatrixPosition(m: AcGeMatrix3d): this;
                        setFromMatrixScale(m: AcGeMatrix3d): this;
                        setLength(l: number): this;
                        setScalar(scalar: number): this;
                        setX(x: number): this;
                        setY(y: number): this;
                        setZ(z: number): this;
                        sub(v: AcGeVector3dLike): this;
                        subScalar(s: number): this;
                        subVectors(a: AcGeVector3dLike, b: AcGeVector3dLike): this;
                        toArray(
                            array?: number[] | Float32Array<ArrayBufferLike>,
                            offset?: number,
                        ): number[] | Float32Array<ArrayBufferLike>;
                        transformDirection(m: AcGeMatrix3d): this;
                    };
                    applyMatrix4(matrix: AcGeMatrix3d): this;
                    clampPoint(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                    clone(): AcGeBox3d;
                    containsBox(box: AcGeBox3d): boolean;
                    containsPoint(point: AcGeVector3dLike): boolean;
                    copy(box: AcGeBox3d): this;
                    distanceToPoint(point: AcGeVector3dLike): number;
                    equals(box: AcGeBox3d): boolean;
                    expandByPoint(point: AcGeVector3dLike): this;
                    expandByScalar(scalar: number): this;
                    expandByVector(vector: AcGeVector3dLike): this;
                    getCenter(target: AcGeVector3d): AcGeVector3d;
                    getParameter(point: AcGeVector3dLike, target: AcGeVector3d): AcGeVector3d;
                    getSize(target: AcGeVector3d): AcGeVector3d;
                    intersect(box: AcGeBox3d): this;
                    intersectsBox(box: AcGeBox3d): boolean;
                    intersectsPlane(plane: AcGePlane): boolean;
                    isEmpty(): boolean;
                    makeEmpty(): this;
                    set(min: AcGeVector3dLike, max: AcGeVector3dLike): this;
                    setFromArray(array: number[]): this;
                    setFromCenterAndSize(
                        center: AcGeVector3dLike,
                        size: AcGeVector3dLike,
                    ): this;
                    setFromPoints(points: AcGeVector3dLike[]): this;
                    translate(offset: AcGeVector3dLike): this;
                    union(box: AcGeBox3d): this;
                };
                isTemp: any;
                layer: string;
                lineStyle: {
                    arrows?: {
                        firstArrow?: {
                            appended?: boolean;
                            inversed?: boolean;
                            scale?: number;
                            type: AcGiArrowType;
                            visible: boolean;
                        };
                        secondArrow?: {
                            appended?: boolean;
                            inversed?: boolean;
                            scale?: number;
                            type: AcGiArrowType;
                            visible: boolean;
                        };
                    };
                    description: string;
                    name: string;
                    pattern?: {
                        elementLength: number;
                        elementTypeFlag: number;
                        offsetX?: number;
                        offsetY?: number;
                        rotation?: number;
                        scale?: number;
                        shapeNumber?: number;
                        styleObjectId?: string;
                        text?: string;
                    }[];
                    standardFlag: number;
                    totalPatternLength: number;
                    type: AcGiStyleType;
                };
                lineType: string;
                linetypeScale: number;
                lineWeight: AcGiLineWeight;
                objectId: string;
                ownerId: string;
                properties: {
                    groups: {
                        groupName: string;
                        properties: {
                            accessor: { set?: (...)
                            | (...); get(): unknown };
                            editable?: boolean;
                            itemSchema?: { properties: ... };
                            name: string;
                            options?: (...)[];
                            skipTranslation?: boolean;
                            type: AcDbEntityPropertyType;
                        }[];
                    }[];
                    type: string;
                };
                resolvedColor: {
                    blue: number
                    | undefined;
                    colorIndex: number | undefined;
                    colorMethod: AcCmColorMethod;
                    colorName: string | undefined;
                    cssColor: string | undefined;
                    green: number | undefined;
                    hexColor: string | undefined;
                    isByACI: boolean;
                    isByBlock: boolean;
                    isByColor: boolean;
                    isByLayer: boolean;
                    isForeground: boolean;
                    red: number | undefined;
                    RGB: number | undefined;
                    clone(): AcCmColor;
                    copy(other: AcCmColor): this;
                    cssColorAlpha(alpha: number): string | undefined;
                    equals(other: AcCmColor): boolean;
                    setByBlock(value?: number): this;
                    setByLayer(value?: number): this;
                    setForeground(): this;
                    setRGB(r: number, g: number, b: number): this;
                    setRGBFromCss(cssString: string): this;
                    setRGBValue(value: number | null | undefined): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                rgbColor: number;
                transparency: {
                    alpha: number;
                    isByAlpha: boolean;
                    isByBlock: boolean;
                    isByLayer: boolean;
                    isClear: boolean;
                    isInvalid: boolean;
                    isSolid: boolean;
                    method: AcCmTransparencyMethod;
                    percentage: number
                    | undefined;
                    clone(): AcCmTransparency;
                    equals(other: AcCmTransparency): boolean;
                    serialize(): number;
                    toString(): string;
                };
                type: string;
                visibility: boolean;
                clone(): this;
                close(): void;
                createExtensionDictionary(): string | undefined;
                dxfOut(...args: unknown[]): unknown;
                dxfOutFields(filer: AcDbDxfFiler): this;
                erase(): boolean;
                getAttr(attrName: string): any;
                getAttrWithoutException(attrName: string): any;
                getXData(appId: string): AcDbResultBuffer | undefined;
                removeXData(appId: string): void;
                resolveEffectiveProperties(): void;
                setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                setXData(resbuf: AcDbResultBuffer): void;
                subGetGripPoints(): AcGePoint3d[];
                subGetOsnapPoints(
                    osnapMode: AcDbOsnapMode,
                    pickPoint: AcGePoint3dLike,
                    lastPoint: AcGePoint3dLike,
                    snapPoints: AcGePoint3dLike[],
                    gsMark?: any,
                    insertionMat?: AcGeMatrix3d,
                ): void;
                subWorldDraw(
                    renderer: AcGiRenderer,
                    delay?: boolean,
                ): AcGiEntity | undefined;
                transformBy(matrix: AcGeMatrix3d): this;
                triggerModifiedEvent(): void;
                worldDraw(renderer: AcGiRenderer, delay?: boolean): AcGiEntity | undefined;
            }
            | null,
        >

        The hovered CAD entity object (null if none)

      • hovered: Ref<boolean, boolean>

        Whether an entity is currently hovered

      • id: Ref<string | null, string | null>

        Object ID of the hovered entity

      • mouse: Ref<
            { x: number; y: number },
            { x: number; y: number } | { x: number; y: number },
        >

        Current mouse coordinates during hover

      import { useHover } from '@/composables/useHover'
      import { computed } from 'vue'
      import { colorName, entityName } from '@/locale'

      export default {
      setup() {
      const { hovered, entity, mouse } = useHover()

      // Example: compute entity info for display
      const info = computed(() => {
      if (!entity.value) return null
      return {
      type: entityName(entity.value),
      color: colorName(entity.value.color.toString()),
      layer: entity.value.layer,
      lineType: entity.value.lineType
      }
      })

      // Example: compute tooltip position
      const tooltipStyle = computed(() => ({
      left: `${mouse.value.x + 10}px`,
      top: `${mouse.value.y + 10}px`
      }))

      return { hovered, info, tooltipStyle }
      }
      }