import { AcDbConversionProgressCallback, AcDbDatabase, AcDbDatabaseConverter } from '@mlightcad/data-model';
import { DRW_Database, DRW_DwgR, DRW_FileHandler, MainModule } from '@mlightcad/libdxfrw-web';
/**
 * Database converter for DWG files based on [libdxfrw-web](https://github.com/mlight-lee/libdxfrw).
 * @internal
 */
export declare class AcDbLibdxfrwConverter extends AcDbDatabaseConverter<DRW_Database> {
    librefrw: MainModule;
    database?: DRW_Database;
    dwg?: DRW_DwgR;
    fileHandler?: DRW_FileHandler;
    constructor(instance: MainModule);
    protected onFinished(): void;
    protected parse(data: string | ArrayBuffer): Promise<{
        model: DRW_Database;
        data: {
            unknownEntityCount: number;
        };
    }>;
    protected processLineTypes(model: DRW_Database, db: AcDbDatabase): void;
    private convertLineTypePattern;
    protected processTextStyles(model: DRW_Database, db: AcDbDatabase): void;
    protected processDimStyles(model: DRW_Database, db: AcDbDatabase): void;
    protected processLayers(model: DRW_Database, db: AcDbDatabase): void;
    protected processViewports(model: DRW_Database, db: AcDbDatabase): void;
    protected processBlockTables(model: DRW_Database, db: AcDbDatabase): void;
    private processCommonTableEntryAttrs;
    protected processHeader(model: DRW_Database, db: AcDbDatabase): void;
    protected processObjects(model: DRW_Database, db: AcDbDatabase): void;
    private processImageDefs;
    private processEntitiesInBlock;
    protected processEntities(model: DRW_Database, db: AcDbDatabase, minimumChunkSize: number, startPercentage: {
        value: number;
    }, progress?: AcDbConversionProgressCallback): Promise<void>;
    /**
     * Groups entities by their `type` property and flattens the result into a single array.
     *
     * The order of `type` groups follows the order in which they first appear in the input array.
     * Items within each group preserve their original order.
     *
     * This runs in O(n) time, which is generally faster than sorting when you
     * don't care about alphabetical order of types.
     *
     * @param entities - The array of entities to group and flatten.
     *
     * @returns A new array of entities grouped by their `type` property.
     */
    private groupAndFlattenByType;
}
//# sourceMappingURL=AcDbLibdxfrwConverter.d.ts.map