// Export types
export interface MapPoint {
  x: number; // LV95 X coordinate
  y: number; // LV95 Y coordinate
}

export interface ParcelGeometry {
  id: string;
  egrid?: string;
  number?: string;
  coordinates: MapPoint[];
  isSelected?: boolean;
}

/** GeoJSON geometry for combined multi-parcel outline (LV95 coordinates) */
export interface CombinedOutlineGeojson {
  type: 'Polygon' | 'MultiPolygon';
  coordinates: number[][][] | number[][][][];
}

export interface MapViewProps {
  parcels?: ParcelGeometry[];
  /** Combined outline from backend when 2+ parcels selected */
  combinedOutline?: CombinedOutlineGeojson;
  center?: MapPoint;
  zoomBounds?: {
    min_x: number;
    min_y: number;
    max_x: number;
    max_y: number;
  };
  onMapClick?: (point: MapPoint) => void;
  onParcelClick?: (parcelId: string) => void;
  height?: string;
  className?: string;
  emptyMessage?: string;
  /** Enable dynamic WFS parcel layer (loads parcels from viewport) */
  showWfsParcels?: boolean;
  /** Base URL for parcels API (default: "", uses same origin) */
  parcelsApiBaseUrl?: string;
}

// Re-export the Leaflet implementation
export { default } from './MapViewLeaflet';
