• 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<
            | null
            | {
                attrs: {
                    attributes: {
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    changed: { 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<AcDbObjectAttrs>;
                    clone(): AcCmObject<AcDbObjectAttrs>;
                    get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                    has(key: string): boolean;
                    hasChanged(key?: string): boolean;
                    previous<A extends string>(
                        key: A,
                    ): undefined | null | AcDbObjectAttrs[A];
                    previousAttributes(): Partial<AcDbObjectAttrs>;
                    set<A extends string>(
                        key: A,
                        val?: AcDbObjectAttrs[A],
                        options?: AcCmObjectOptions,
                    ): this;
                    set(key: Partial<AcDbObjectAttrs>, options?: AcCmObjectOptions): this;
                };
                color: {
                    blue: null
                    | number;
                    color: null | number;
                    colorIndex: null | number;
                    colorName: null | string;
                    cssColor: string;
                    green: null | number;
                    hasColorIndex: boolean;
                    hasColorName: boolean;
                    hexColor: string;
                    isByBlock: boolean;
                    isByLayer: boolean;
                    red: null | number;
                    clone(): this;
                    copy(color: AcCmColor): this;
                    equals(c: AcCmColor): boolean;
                    setByBlock(): this;
                    setByLayer(): this;
                    setColorName(style: string): this;
                    setRGB(r: number, g: number, b: number): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                database: {
                    angBase: number;
                    angDir: number;
                    attrs: {
                        attributes: {
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        changed: { 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<AcDbObjectAttrs>;
                        clone(): AcCmObject<AcDbObjectAttrs>;
                        get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                        has(key: string): boolean;
                        hasChanged(key?: string): boolean;
                        previous<A extends string>(
                            key: A,
                        ): undefined | null | AcDbObjectAttrs[A];
                        previousAttributes(): Partial<AcDbObjectAttrs>;
                        set<A extends string>(
                            key: A,
                            val?: AcDbObjectAttrs[A],
                            options?: AcCmObjectOptions,
                        ): this;
                        set(key: Partial<AcDbObjectAttrs>, options?: AcCmObjectOptions): this;
                    };
                    aunits: number;
                    cecolor: {
                        blue: null
                        | number;
                        color: null | number;
                        colorIndex: null | number;
                        colorName: null | string;
                        cssColor: string;
                        green: null | number;
                        hasColorIndex: boolean;
                        hasColorName: boolean;
                        hexColor: string;
                        isByBlock: boolean;
                        isByLayer: boolean;
                        red: null | number;
                        clone(): this;
                        copy(color: AcCmColor): this;
                        equals(c: AcCmColor): boolean;
                        setByBlock(): this;
                        setByLayer(): this;
                        setColorName(style: string): this;
                        setRGB(r: number, g: number, b: number): this;
                        setScalar(scalar: number): this;
                        toString(): string;
                    };
                    celtscale: number;
                    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...;
                    dictionaries: {
                        imageDefs: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            close(): void;
                            getAt(name: string): undefined | AcDbRasterImageDef;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbRasterImageDef;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAt(key: string, value: AcDbRasterImageDef): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        layouts: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            maxTabOrder: number;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            close(): void;
                            getAt(name: string): undefined | AcDbLayout;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getBtrIdAt(id: string): undefined | AcDbLayout;
                            getIdAt(id: string): undefined | AcDbLayout;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayout>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAt(key: string, value: AcDbLayout): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                    };
                    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;
                        };
                        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;
                        };
                        headerSysVarChanged: {
                            addEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcDbHeaderSysVarEventArgs,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => 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;
                        };
                    };
                    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(): 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;
                    };
                    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(): 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;
                    };
                    insunits: number;
                    ltscale: number;
                    objectId: string;
                    ownerId: string;
                    pdmode: number;
                    pdsize: number;
                    tables: {
                        blockTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            modelSpace: {
                                attrs: {
                                    attributes: {
                                        name?: (...)
                                        | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    changed: {
                                        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<AcDbSymbolTableRecordAttrs>;
                                    clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                    get<A extends string>(key: A): undefined | (...)[(...)];
                                    has(key: string): boolean;
                                    hasChanged(key?: string): boolean;
                                    previous<A extends string>(key: A): undefined | null | (...)[(...)];
                                    previousAttributes(): Partial<AcDbSymbolTableRecordAttrs>;
                                    set<A extends string>(
                                        key: A,
                                        val?: (...)[(...)],
                                        options?: AcCmObjectOptions,
                                    ): this;
                                    set(
                                        key: Partial<AcDbSymbolTableRecordAttrs>,
                                        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...;
                                isModelSapce: boolean;
                                isPaperSapce: boolean;
                                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(): 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?: (...)[] | Float32Array<(...)>,
                                        offset?: number,
                                    ): (...)[] | Float32Array<(...)>;
                                    transformDirection(m: AcGeMatrix3d): this;
                                };
                                ownerId: string;
                                appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                close(): void;
                                getAttr(attrName: string): any;
                                getAttrWithoutException(attrName: string): any;
                                getIdAt(id: string): undefined | AcDbEntity;
                                newIterator(): AcDbObjectIterator<AcDbEntity>;
                                setAttr<A extends string>(
                                    attrName: A,
                                    val?: AcDbSymbolTableRecordAttrs[A],
                                ): void;
                            };
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbBlockTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbBlockTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbBlockTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbBlockTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        dimStyleTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbDimStyleTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbDimStyleTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbDimStyleTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbDimStyleTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        layerTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLayerTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbLayerTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbLayerTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbLayerTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        linetypeTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLinetypeTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbLinetypeTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbLinetypeTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbLinetypeTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        textStyleTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            fonts: string[];
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbTextStyleTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbTextStyleTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbTextStyleTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbTextStyleTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        viewportTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewportTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbViewportTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbViewportTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbViewportTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                    };
                    version: { name: string; value: number };
                    close(): void;
                    createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                    getAttr(attrName: string): any;
                    getAttrWithoutException(attrName: string): any;
                    openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                    read(
                        data: ArrayBuffer,
                        options: AcDbOpenDatabaseOptions,
                        fileType?: AcDbFileType,
                    ): Promise<void>;
                    regen(): Promise<void>;
                    setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                };
                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;
                };
                layer: string;
                lineType: string;
                linetypeScale: number;
                lineWeight: number;
                objectId: string;
                ownerId: string;
                properties: {
                    groups: {
                        groupName: string;
                        properties: {
                            accessor: { set?: (...)
                            | (...); get(): unknown };
                            editable?: boolean;
                            name: string;
                            options?: (...)[];
                            type: AcDbEntityPropertyType;
                        }[];
                    }[];
                    type: string;
                };
                rgbColor: number;
                transparency: number;
                type: string;
                visibility: boolean;
                close(): void;
                draw(renderer: AcGiRenderer, delay?: boolean): undefined | AcGiEntity;
                getAttr(attrName: string): any;
                getAttrWithoutException(attrName: string): any;
                setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                subGetGripPoints(): AcGePoint3d[];
                subGetOsnapPoints(
                    osnapMode: AcDbOsnapMode,
                    pickPoint: AcGePoint3dLike,
                    lastPoint: AcGePoint3dLike,
                    snapPoints: AcGePoint3d[],
                ): void;
                transformBy(matrix: AcGeMatrix3d): this;
                triggerModifiedEvent(): void;
            },
            | null
            | AcDbEntity
            | {
                attrs: {
                    attributes: {
                        objectId?: string;
                        ownerId?: string;
                        [key: string]: any;
                    };
                    changed: { 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<AcDbObjectAttrs>;
                    clone(): AcCmObject<AcDbObjectAttrs>;
                    get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                    has(key: string): boolean;
                    hasChanged(key?: string): boolean;
                    previous<A extends string>(
                        key: A,
                    ): undefined | null | AcDbObjectAttrs[A];
                    previousAttributes(): Partial<AcDbObjectAttrs>;
                    set<A extends string>(
                        key: A,
                        val?: AcDbObjectAttrs[A],
                        options?: AcCmObjectOptions,
                    ): this;
                    set(key: Partial<AcDbObjectAttrs>, options?: AcCmObjectOptions): this;
                };
                color: {
                    blue: null
                    | number;
                    color: null | number;
                    colorIndex: null | number;
                    colorName: null | string;
                    cssColor: string;
                    green: null | number;
                    hasColorIndex: boolean;
                    hasColorName: boolean;
                    hexColor: string;
                    isByBlock: boolean;
                    isByLayer: boolean;
                    red: null | number;
                    clone(): this;
                    copy(color: AcCmColor): this;
                    equals(c: AcCmColor): boolean;
                    setByBlock(): this;
                    setByLayer(): this;
                    setColorName(style: string): this;
                    setRGB(r: number, g: number, b: number): this;
                    setScalar(scalar: number): this;
                    toString(): string;
                };
                database: {
                    angBase: number;
                    angDir: number;
                    attrs: {
                        attributes: {
                            objectId?: string;
                            ownerId?: string;
                            [key: string]: any;
                        };
                        changed: { 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<AcDbObjectAttrs>;
                        clone(): AcCmObject<AcDbObjectAttrs>;
                        get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                        has(key: string): boolean;
                        hasChanged(key?: string): boolean;
                        previous<A extends string>(
                            key: A,
                        ): undefined | null | AcDbObjectAttrs[A];
                        previousAttributes(): Partial<AcDbObjectAttrs>;
                        set<A extends string>(
                            key: A,
                            val?: AcDbObjectAttrs[A],
                            options?: AcCmObjectOptions,
                        ): this;
                        set(key: Partial<AcDbObjectAttrs>, options?: AcCmObjectOptions): this;
                    };
                    aunits: number;
                    cecolor: {
                        blue: null
                        | number;
                        color: null | number;
                        colorIndex: null | number;
                        colorName: null | string;
                        cssColor: string;
                        green: null | number;
                        hasColorIndex: boolean;
                        hasColorName: boolean;
                        hexColor: string;
                        isByBlock: boolean;
                        isByLayer: boolean;
                        red: null | number;
                        clone(): this;
                        copy(color: AcCmColor): this;
                        equals(c: AcCmColor): boolean;
                        setByBlock(): this;
                        setByLayer(): this;
                        setColorName(style: string): this;
                        setRGB(r: number, g: number, b: number): this;
                        setScalar(scalar: number): this;
                        toString(): string;
                    };
                    celtscale: number;
                    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...;
                    dictionaries: {
                        imageDefs: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            close(): void;
                            getAt(name: string): undefined | AcDbRasterImageDef;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbRasterImageDef;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbRasterImageDef>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAt(key: string, value: AcDbRasterImageDef): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        layouts: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            maxTabOrder: number;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            close(): void;
                            getAt(name: string): undefined | AcDbLayout;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getBtrIdAt(id: string): undefined | AcDbLayout;
                            getIdAt(id: string): undefined | AcDbLayout;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayout>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAt(key: string, value: AcDbLayout): void;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                    };
                    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;
                        };
                        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;
                        };
                        headerSysVarChanged: {
                            addEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => void,
                            ): void;
                            dispatch(
                                payload?: AcDbHeaderSysVarEventArgs,
                                ...args: unknown[],
                            ): void;
                            removeEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => void,
                            ): void;
                            replaceEventListener(
                                listener: (payload: AcDbHeaderSysVarEventArgs) => 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;
                        };
                    };
                    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(): 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;
                    };
                    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(): 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;
                    };
                    insunits: number;
                    ltscale: number;
                    objectId: string;
                    ownerId: string;
                    pdmode: number;
                    pdsize: number;
                    tables: {
                        blockTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            modelSpace: {
                                attrs: {
                                    attributes: {
                                        name?: (...)
                                        | (...);
                                        objectId?: (...) | (...);
                                        ownerId?: (...) | (...);
                                        [key: string]: any;
                                    };
                                    changed: {
                                        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<AcDbSymbolTableRecordAttrs>;
                                    clone(): AcCmObject<AcDbSymbolTableRecordAttrs>;
                                    get<A extends string>(key: A): undefined | (...)[(...)];
                                    has(key: string): boolean;
                                    hasChanged(key?: string): boolean;
                                    previous<A extends string>(key: A): undefined | null | (...)[(...)];
                                    previousAttributes(): Partial<AcDbSymbolTableRecordAttrs>;
                                    set<A extends string>(
                                        key: A,
                                        val?: (...)[(...)],
                                        options?: AcCmObjectOptions,
                                    ): this;
                                    set(
                                        key: Partial<AcDbSymbolTableRecordAttrs>,
                                        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...;
                                isModelSapce: boolean;
                                isPaperSapce: boolean;
                                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(): 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?: (...)[] | Float32Array<(...)>,
                                        offset?: number,
                                    ): (...)[] | Float32Array<(...)>;
                                    transformDirection(m: AcGeMatrix3d): this;
                                };
                                ownerId: string;
                                appendEntity(entity: AcDbEntity | AcDbEntity[]): void;
                                close(): void;
                                getAttr(attrName: string): any;
                                getAttrWithoutException(attrName: string): any;
                                getIdAt(id: string): undefined | AcDbEntity;
                                newIterator(): AcDbObjectIterator<AcDbEntity>;
                                setAttr<A extends string>(
                                    attrName: A,
                                    val?: AcDbSymbolTableRecordAttrs[A],
                                ): void;
                            };
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbBlockTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbBlockTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbBlockTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbBlockTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbBlockTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        dimStyleTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbDimStyleTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbDimStyleTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbDimStyleTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbDimStyleTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbDimStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        layerTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLayerTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbLayerTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbLayerTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbLayerTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLayerTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        linetypeTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbLinetypeTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbLinetypeTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbLinetypeTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbLinetypeTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbLinetypeTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        textStyleTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            fonts: string[];
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbTextStyleTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbTextStyleTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbTextStyleTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbTextStyleTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbTextStyleTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                        viewportTable: {
                            attrs: {
                                attributes: {
                                    objectId?: string;
                                    ownerId?: string;
                                    [key: string]: any;
                                };
                                changed: { 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<AcDbObjectAttrs>;
                                clone(): AcCmObject<AcDbObjectAttrs>;
                                get<A extends string>(key: A): undefined | AcDbObjectAttrs[A];
                                has(key: string): boolean;
                                hasChanged(key?: string): boolean;
                                previous<A extends string>(
                                    key: A,
                                ): undefined | null | AcDbObjectAttrs[A];
                                previousAttributes(): Partial<AcDbObjectAttrs>;
                                set<A extends string>(
                                    key: A,
                                    val?: AcDbObjectAttrs[A],
                                    options?: AcCmObjectOptions,
                                ): this;
                                set(key: Partial<AcDbObjectAttrs>, 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...;
                            numEntries: number;
                            objectId: string;
                            ownerId: string;
                            add(record: AcDbViewportTableRecord): void;
                            close(): void;
                            getAt(name: string): undefined | AcDbViewportTableRecord;
                            getAttr(attrName: string): any;
                            getAttrWithoutException(attrName: string): any;
                            getIdAt(id: string): undefined | AcDbViewportTableRecord;
                            getOwnerIdAt(id: string): undefined | AcDbViewportTableRecord;
                            has(name: string): boolean;
                            hasId(id: string): boolean;
                            newIterator(): AcDbObjectIterator<AcDbViewportTableRecord>;
                            remove(name: string): boolean;
                            removeAll(): void;
                            removeId(id: string): boolean;
                            setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                        };
                    };
                    version: { name: string; value: number };
                    close(): void;
                    createDefaultData(options?: AcDbCreateDefaultDataOptions): void;
                    getAttr(attrName: string): any;
                    getAttrWithoutException(attrName: string): any;
                    openUri(url: string, options: AcDbOpenDatabaseOptions): Promise<void>;
                    read(
                        data: ArrayBuffer,
                        options: AcDbOpenDatabaseOptions,
                        fileType?: AcDbFileType,
                    ): Promise<void>;
                    regen(): Promise<void>;
                    setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                };
                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;
                };
                layer: string;
                lineType: string;
                linetypeScale: number;
                lineWeight: number;
                objectId: string;
                ownerId: string;
                properties: {
                    groups: {
                        groupName: string;
                        properties: {
                            accessor: { set?: (...)
                            | (...); get(): unknown };
                            editable?: boolean;
                            name: string;
                            options?: (...)[];
                            type: AcDbEntityPropertyType;
                        }[];
                    }[];
                    type: string;
                };
                rgbColor: number;
                transparency: number;
                type: string;
                visibility: boolean;
                close(): void;
                draw(renderer: AcGiRenderer, delay?: boolean): undefined | AcGiEntity;
                getAttr(attrName: string): any;
                getAttrWithoutException(attrName: string): any;
                setAttr<A extends string>(attrName: A, val?: AcDbObjectAttrs[A]): void;
                subGetGripPoints(): AcGePoint3d[];
                subGetOsnapPoints(
                    osnapMode: AcDbOsnapMode,
                    pickPoint: AcGePoint3dLike,
                    lastPoint: AcGePoint3dLike,
                    snapPoints: AcGePoint3d[],
                ): void;
                transformBy(matrix: AcGeMatrix3d): this;
                triggerModifiedEvent(): void;
            },
        >;
        hovered: Ref<boolean, boolean>;
        id: Ref<null | string, null | string>;
        mouse: Ref<
            { x: number; y: number },
            { x: number; y: number } | { x: number; y: number },
        >;
    }

    Reactive state tracking the current hover context.

    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 }
    }
    }