import { type SchematicBounds, type SchematicCoordinateOrigin, type SchematicPoint } from '../schematic-engine/geometry.js'; export type PrimitiveRotation = 0 | 90 | 180 | 270; export type PrimitiveGeometrySource = 'runtime' | 'derived' | 'approximate' | 'not_available'; export type PrimitiveGeometryConfidence = 'exact' | 'conservative' | 'low' | 'not_available'; export type PrimitiveBoundsSpace = 'local' | 'sheet'; export interface PrimitiveBoundsSegmentInput { id?: string; bounds?: SchematicBounds; space?: PrimitiveBoundsSpace; text?: string; anchor?: SchematicPoint; fontSize?: number; visible?: boolean; geometrySource?: Exclude; } export interface PrimitiveBoundsSegment { id?: string; bounds: SchematicBounds; geometrySource: Exclude; confidence: Exclude; } export interface PrimitiveBoundsInput { id: string; primitiveType: string; origin: SchematicPoint; rotation?: PrimitiveRotation; mirroredX?: boolean; mirroredY?: boolean; units: string; grid: number; coordinateOrigin: SchematicCoordinateOrigin; body?: PrimitiveBoundsSegmentInput; reference?: PrimitiveBoundsSegmentInput; value?: PrimitiveBoundsSegmentInput; pinTexts?: readonly PrimitiveBoundsSegmentInput[]; labels?: readonly PrimitiveBoundsSegmentInput[]; annotations?: readonly PrimitiveBoundsSegmentInput[]; } export interface PrimitiveBoundsResult { id: string; primitiveType: string; origin: SchematicPoint; rotation: PrimitiveRotation; mirroredX: boolean; mirroredY: boolean; units: string; grid: number; coordinateOrigin: SchematicCoordinateOrigin; availability: 'available' | 'not_available'; geometrySource: PrimitiveGeometrySource; confidence: PrimitiveGeometryConfidence; body?: PrimitiveBoundsSegment; reference?: PrimitiveBoundsSegment; value?: PrimitiveBoundsSegment; pinTexts: PrimitiveBoundsSegment[]; labels: PrimitiveBoundsSegment[]; annotations: PrimitiveBoundsSegment[]; combinedBounds?: SchematicBounds; limitations: string[]; } export interface PrimitiveBoundsBatchResult { items: PrimitiveBoundsResult[]; availableCount: number; notAvailableCount: number; units: string | 'mixed'; coordinateOrigins: SchematicCoordinateOrigin[]; } export declare function computePrimitiveBounds(input: PrimitiveBoundsInput): PrimitiveBoundsResult; export declare function computePrimitiveBoundsBatch(inputs: readonly PrimitiveBoundsInput[]): PrimitiveBoundsBatchResult;