import type * as THREE from "three";
import { BaseModelLoader } from "./BaseModelLoader";
import type { ModelLoadContext, ModelLoadFromBufferContext } from "./BaseModelLoader";
import type { DxfData, DxfLoaderConfig } from "../../core/dxf";
import type { FontManager } from "../../core/font";
export interface DwgLoadContext extends ModelLoadContext {
    readonly dxfDataId?: string;
    readonly onLoad?: () => void;
    readonly cfg?: DxfLoaderConfig;
}
export interface DwgLoadFromBufferContext extends ModelLoadFromBufferContext {
    readonly dxfDataId?: string;
    readonly onLoad?: () => void;
    readonly cfg?: DxfLoaderConfig;
}
export declare class DwgModelLoader extends BaseModelLoader {
    private readonly manager?;
    readonly id = "loader.builtin.dwg";
    readonly priority = 0;
    readonly formats: readonly ["dxf", "dwg"];
    private font?;
    constructor(manager?: THREE.LoadingManager | undefined);
    setFont(font?: FontManager): void;
    /**
     * This method returns a THREE.Object3D object.
     * It can be used to load a dwg/dxf to Viewer3d (usually without paper space entities).
     */
    load(ctx: ModelLoadContext): Promise<THREE.Object3D>;
    /**
     * This method returns a THREE.Object3D object.
     * It can be used to load a dwg/dxf to Viewer3d (usually without paper space entities).
     */
    loadFromBuffer(ctx: ModelLoadFromBufferContext): Promise<THREE.Object3D>;
    /**
     * This method returns a DxfData object.
     * It can be used to load a dwg/dxf to Viewer2d, with paper space entities, layouts, layers, etc.
     */
    loadEx(ctx: DwgLoadContext): Promise<DxfData>;
    /**
     * This method returns a DxfData object.
     * It can be used to load a dwg/dxf to Viewer2d, with paper space entities, layouts, layers, etc.
     */
    loadFromBufferEx(ctx: DwgLoadFromBufferContext): Promise<DxfData>;
    private applyRequestHeader;
}
