import type { Object3D } from "three";
export type PlacementMode = "point" | "line" | "area";
export interface EditorAssetCapabilities {
    movable: boolean;
    rotatable: boolean;
    scalable: boolean;
    deletable: boolean;
    selectable: boolean;
    explodeable: boolean;
    placedByPoint: boolean;
    placedByLine: boolean;
    placedByArea: boolean;
}
export interface EditorObjectMetadata {
    id: string;
    name: string;
    sourceType: "placeholder" | "library" | "upload" | "landscape";
    capabilities?: Partial<EditorAssetCapabilities>;
    isCreatedManually: boolean;
    placementMode?: PlacementMode;
    placementGroupId?: string;
}
export declare class EditorObject {
    id: string;
    name: string;
    sourceType: EditorObjectMetadata["sourceType"];
    capabilities: EditorAssetCapabilities;
    isCreatedManually: boolean;
    placementMode: PlacementMode;
    placementGroupId: string | null;
    object3D: Object3D;
    constructor(object3D: Object3D, metadata: EditorObjectMetadata);
    get movable(): boolean;
    get rotatable(): boolean;
    get scalable(): boolean;
    get deletable(): boolean;
    get selectable(): boolean;
    get explodeable(): boolean;
    get canPlaceByPoint(): boolean;
    get canPlaceByLine(): boolean;
    get canPlaceByArea(): boolean;
}
