import { GeometryType, Geometry, Curve, Surface, MultiPoint, MultiLineString, MultiPolygon } from './internal'; /** * A collection of zero or more Geometry instances. * @param geometry type */ export declare class GeometryCollection extends Geometry { /** * List of geometries */ private _geometries; constructor(); constructor(geometryCollection: GeometryCollection); constructor(geometries: Array); constructor(geometry: Geometry); constructor(hasZ: boolean, hasM: boolean); constructor(type: GeometryType, hasZ: boolean, hasM: boolean); /** * Get the list of geometries * @return geometries */ get geometries(): Array; /** * Set the geometries * @param geometries geometries */ set geometries(geometries: Array); /** * Add a geometry * @param geometry geometry */ addGeometry(geometry: T): void; /** * Add geometries * @param geometries geometries */ addGeometries(geometries: Array): void; /** * Get the number of geometries in the collection * * @return number of geometries */ numGeometries(): number; /** * Returns the Nth geometry * @param n nth geometry to return * @return geometry */ getGeometry(n: number): T; /** * Get the collection type by evaluating the geometries * @return collection geometry type, one of: {@link GeometryType#MULTIPOINT}, * {@link GeometryType#MULTILINESTRING}, * {@link GeometryType#MULTIPOLYGON}, * {@link GeometryType#MULTICURVE}, * {@link GeometryType#MULTISURFACE}, * {@link GeometryType#GEOMETRYCOLLECTION} */ getCollectionType(): GeometryType; /** * Determine if this geometry collection is a {@link MultiPoint} instance or * contains only {@link Point} geometries * @return true if a multi point or contains only points */ isMultiPoint(): boolean; /** * Get as a {@link MultiPoint}, either the current instance or newly created * from the {@link Point} geometries * * @return multi point */ getAsMultiPoint(): MultiPoint; /** * Determine if this geometry collection is a {@link MultiLineString} * instance or contains only {@link LineString} geometries * @return true if a multi line string or contains only line strings */ isMultiLineString(): boolean; /** * Get as a {@link MultiLineString}, either the current instance or newly * created from the {@link LineString} geometries * @return multi line string */ getAsMultiLineString(): MultiLineString; /** * Determine if this geometry collection is a {@link MultiPolygon} instance * or contains only {@link Polygon} geometries * @return true if a multi polygon or contains only polygons */ isMultiPolygon(): boolean; /** * Get as a {@link MultiPolygon}, either the current instance or newly * created from the {@link Polygon} geometries * * @return multi polygon */ getAsMultiPolygon(): MultiPolygon; /** * Determine if this geometry collection contains only {@link Curve} * geometries * @return true if contains only curves */ isMultiCurve(): boolean; /** * Get as a Multi Curve, a {@link Curve} typed Geometry Collection * @return multi curve */ getAsMultiCurve(): GeometryCollection; /** * Determine if this geometry collection contains only {@link Surface} * geometries * * @return true if contains only surfaces */ isMultiSurface(): boolean; /** * Get as a Multi Surface, a {@link Surface} typed Geometry Collection * @return multi surface */ getAsMultiSurface(): GeometryCollection; /** * Get as a top level Geometry Collection * @return geometry collection */ getAsGeometryCollection(): GeometryCollection; /** * Determine if the geometries in this collection are made up only of the * provided geometry class type * @param type geometry class type * @return true if a collection of the type */ private isCollectionOfType; /** * {@inheritDoc} */ copy(): Geometry; /** * {@inheritDoc} */ isEmpty(): boolean; /** * {@inheritDoc} */ isSimple(): boolean; /** * {@inheritDoc} */ equals(obj: Geometry): boolean; }