import { Float32BufferAttribute } from 'three';
import { AGeometryGenerator } from '../AGeometryGenerator';
import { IGeometry } from '../../../core/IGeometry';
import { UiObjectConfig } from 'uiconfig.js';
export interface ShapeGeometryGeneratorParams {
    shapeType: 'rectangle' | 'circle' | 'polygon';
    width: number;
    height: number;
    circleRadius: number;
    circleSegments: number;
    sides: number;
    polygonRadius: number;
    curveSegments: number;
}
/**
 * Generates a flat 2D shape geometry from preset shape types.
 * Uses three.js ShapeGeometry internally.
 */
export declare class ShapeGeometryGenerator extends AGeometryGenerator<ShapeGeometryGeneratorParams> {
    constructor(type?: string, defaultParams?: Partial<ShapeGeometryGeneratorParams>);
    defaultParams: ShapeGeometryGeneratorParams;
    protected _generateData(params: ShapeGeometryGeneratorParams): {
        indices: number[];
        vertices: Float32BufferAttribute;
        normals: Float32BufferAttribute;
        uvs: Float32BufferAttribute;
    };
    createUiConfig(geometry: IGeometry): UiObjectConfig[];
}
//# sourceMappingURL=../../../src/plugins/geometry/primitives/ShapeGeometryGenerator.d.ts.map