import { Group, type Object3D, Vector3 } from "three";
import type { Vector2 } from "three";
import { EditorObject, type EditorObjectMetadata } from "../editor-object";
export interface LineBlockProfile {
    type: "line";
    points: Vector3[];
    spacing: number;
    catalogItemId: string;
}
export interface AreaBlockProfile {
    type: "area";
    points: Vector2[];
    spacing: number;
    drawMode: "polygon" | "rectangle";
    catalogItemId: string;
}
export type BlockProfile = LineBlockProfile | AreaBlockProfile;
export declare class EditorBlock extends EditorObject {
    childObjects: EditorObject[];
    profile: BlockProfile;
    originPosition: Vector3;
    constructor(group: Group, metadata: EditorObjectMetadata, profile: BlockProfile, children: EditorObject[]);
    get group(): Group;
    addChild(child: EditorObject): void;
    removeChild(childId: string): EditorObject | null;
    getChildMeshes(): Object3D[];
}
