import { ArxAnchor, ArxCell, ArxDLF, ArxFTS, ArxLLF, ArxRoom, ArxRoomDistance, ArxUniqueHeader } from 'arx-convert/types';
import { Object3D } from 'three';
import { Entities } from './Entities.js';
import { Fogs } from './Fogs.js';
import { HUD } from './HUD.js';
import { Lights } from './Lights.js';
import { Paths } from './Paths.js';
import { Player } from './Player.js';
import { MeshImportProps, Polygons } from './Polygons.js';
import { Portal } from './Portal.js';
import { Settings } from './Settings.js';
import { Translations } from './Translations.js';
import { UI } from './UI.js';
import { Vector3 } from './Vector3.js';
import { Zones } from './Zones.js';
import { OriginalLevel } from './types.js';
type ArxMapConfig = {
    isFinalized: boolean;
    offset: Vector3;
};
type ToBeSortedLater = {
    uniqueHeaders: ArxUniqueHeader[];
    cells: Omit<ArxCell, 'polygons'>[];
    anchors: ArxAnchor[];
    rooms: ArxRoom[];
    roomDistances: ArxRoomDistance[];
};
export declare class ArxMap {
    polygons: Polygons;
    lights: Lights;
    fogs: Fogs;
    entities: Entities;
    zones: Zones;
    paths: Paths;
    player: Player;
    portals: Portal[];
    config: ArxMapConfig;
    hud: HUD;
    ui: UI;
    i18n: Translations;
    todo: ToBeSortedLater;
    constructor(dlf?: ArxDLF, fts?: ArxFTS, llf?: ArxLLF, areNormalsCalculated?: boolean);
    private toArxData;
    /**
     * Loads one of the levels found in the original game
     *
     * Requires the pkware-test-files repo
     * @see https://github.com/meszaros-lajos-gyorgy/pkware-test-files
     */
    static fromOriginalLevel(levelIdx: OriginalLevel, settings: Settings): Promise<ArxMap>;
    static fromThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps): ArxMap;
    private static getGeneratorId;
    finalize(): void;
    removePortals(): void;
    private movePolygonsToSameRoom;
    private calculateRoomData;
    saveToDisk(settings: Settings, exportJsonFiles?: boolean, prettify?: boolean): Promise<void>;
    adjustOffsetTo(map: ArxMap): void;
    move(offset: Vector3): void;
    add(map: ArxMap, alignPolygons?: boolean): void;
}
export {};
