///
import { CircularString, CompoundCurve, Curve, CurvePolygon, Geometry, GeometryCollection, LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon, PolyhedralSurface, TIN, Triangle } from "@ngageoint/simple-features-js";
import { ByteWriter } from "./ByteWriter";
import { ByteOrder } from "./ByteOrder";
/**
* Well Known Binary writer
*/
export declare class GeometryWriter {
private static readonly BYTE_ORDER_BYTE_LENGTH;
private static readonly GEOMETRY_TYPE_BYTE_LENGTH;
private static readonly INT_BYTE_LENGTH;
private static readonly DOUBLE_BYTE_LENGTH;
/**
* Write a geometry to a well-known bytes
*
* @param geometry geometry
* @param byteOrder byteOrder
* @return well-known bytes
*/
static writeGeometry(geometry: Geometry, byteOrder: any): Buffer;
/**
* Byte Writer
*/
private readonly writer;
/**
* Constructor
* @param writer byte writer
* @param size
*/
constructor(writer: ByteWriter, byteOrder?: ByteOrder, size?: number);
/**
* Get the byte writer
* @return byte writer
*/
getByteWriter(): ByteWriter;
/**
* Get the written bytes
*
* @return written bytes
*/
getBuffer(): Buffer;
/**
* Write a geometry to the byte writer
* @param geometry geometry
*/
write(geometry: Geometry): void;
static getGeometryByteLength(geometry: Geometry): number;
/**
* Write a Point
* @param point point
*/
writePoint(point: Point): void;
/**
* Write a Point X and Y value
* @param point point
*/
writeXY(point: Point): void;
/**
* Write a Point Z value
* @param point point
*/
writeZ(point: Point): void;
/**
* Write a Point M value
* @param point point
*/
writeM(point: Point): void;
/**
* Write a Line String
* @param lineString Line String
*/
writeLineString(lineString: LineString): void;
/**
* Write a Polygon
* @param polygon Polygon
*/
writePolygon(polygon: Polygon): void;
/**
* Write a Multi Point
* @param multiPoint Multi Point
*/
writeMultiPoint(multiPoint: MultiPoint): void;
/**
* Write a Multi Line String
* @param multiLineString Multi Line String
*/
writeMultiLineString(multiLineString: MultiLineString): void;
/**
* Write a Multi Polygon
* @param multiPolygon Multi Polygon
*/
writeMultiPolygon(multiPolygon: MultiPolygon): void;
/**
* Write a Geometry Collection
* @param geometryCollection Geometry Collection
*/
writeGeometryCollection(geometryCollection: GeometryCollection): void;
/**
* Write a Circular String
* @param circularString Circular String
*/
writeCircularString(circularString: CircularString): void;
/**
* Write a Compound Curve
* @param compoundCurve Compound Curve
*/
writeCompoundCurve(compoundCurve: CompoundCurve): void;
/**
* Write a Curve Polygon
* @param curvePolygon Curve Polygon
*/
writeCurvePolygon(curvePolygon: CurvePolygon): void;
/**
* Write a Polyhedral Surface
* @param polyhedralSurface Polyhedral Surface
*/
writePolyhedralSurface(polyhedralSurface: PolyhedralSurface): void;
/**
* Write a TIN
* @param tin TIN
*/
writeTIN(tin: TIN): void;
/**
* Write a Triangle
* @param triangle Triangle
*/
writeTriangle(triangle: Triangle): void;
/**
* Write a geometry to the byte writer
* @param writer byte writer
* @param geometry geometry
*/
static writeGeometryWithByteWriter(writer: ByteWriter, geometry: Geometry): void;
/**
* Write a Point
*
* @param writer
* byte writer
* @param point
* point
* @throws IOException
* upon failure to write
*/
static writePoint(writer: ByteWriter, point: Point): void;
/**
* Write a Line String
*
* @param writer
* byte writer
* @param lineString
* Line String
*/
static writeLineString(writer: ByteWriter, lineString: LineString): void;
/**
* Write a Polygon
*
* @param writer
* byte writer
* @param polygon
* Polygon
* @throws IOException
* upon failure to write
*/
static writePolygon(writer: ByteWriter, polygon: Polygon): void;
/**
* Write a Multi Point
*
* @param writer
* byte writer
* @param multiPoint
* Multi Point
* @throws IOException
* upon failure to write
*/
static writeMultiPoint(writer: ByteWriter, multiPoint: MultiPoint): void;
/**
* Write a Multi Line String
*
* @param writer
* byte writer
* @param multiLineString
* Multi Line String
* @throws IOException
* upon failure to write
*/
static writeMultiLineString(writer: ByteWriter, multiLineString: MultiLineString): void;
/**
* Write a Multi Polygon
*
* @param writer
* byte writer
* @param multiPolygon
* Multi Polygon
* @throws IOException
* upon failure to write
*/
static writeMultiPolygon(writer: ByteWriter, multiPolygon: MultiPolygon): void;
/**
* Write a Geometry Collection
*
* @param writer
* byte writer
* @param geometryCollection
* Geometry Collection
* @throws IOException
* upon failure to write
*/
static writeGeometryCollection(writer: ByteWriter, geometryCollection: GeometryCollection): void;
/**
* Write a Circular String
*
* @param writer
* byte writer
* @param circularString
* Circular String
* @throws IOException
* upon failure to write
*/
static writeCircularString(writer: ByteWriter, circularString: CircularString): void;
/**
* Write a Compound Curve
*
* @param writer
* byte writer
* @param compoundCurve
* Compound Curve
* @throws IOException
* upon failure to write
*/
static writeCompoundCurve(writer: ByteWriter, compoundCurve: CompoundCurve): void;
/**
* Write a Curve Polygon
*
* @param writer
* byte writer
* @param curvePolygon
* Curve Polygon
* @throws IOException
* upon failure to write
*/
static writeCurvePolygon(writer: ByteWriter, curvePolygon: CurvePolygon): void;
/**
* Write a Polyhedral Surface
*
* @param writer
* byte writer
* @param polyhedralSurface
* Polyhedral Surface
* @throws IOException
* upon failure to write
*/
static writePolyhedralSurface(writer: ByteWriter, polyhedralSurface: PolyhedralSurface): void;
/**
* Write a TIN
*
* @param writer
* byte writer
* @param tin
* TIN
* @throws IOException
* upon failure to write
*/
static writeTIN(writer: ByteWriter, tin: TIN): void;
/**
* Write a Triangle
*
* @param writer
* byte writer
* @param triangle
* Triangle
* @throws IOException
* upon failure to write
*/
static writeTriangle(writer: ByteWriter, triangle: Triangle): void;
private static getPointByteLength;
/**
* Write a Line String
* @param lineString Line String
*/
private static getLineStringByteLength;
/**
* Write a Polygon
* @param polygon Polygon
*/
private static getPolygonByteLength;
/**
* Write a Multi Point
* @param multiPoint Multi Point
*/
private static getMultiPointByteLength;
/**
* Write a Multi Line String
* @param multiLineString Multi Line String
*/
private static getMultiLineStringByteLength;
/**
* Write a Multi Polygon
* @param multiPolygon Multi Polygon
*/
private static getMultiPolygonByteLength;
/**
* Write a Geometry Collection
* @param geometryCollection Geometry Collection
*/
private static getGeometryCollectionByteLength;
/**
* Write a Circular String
* @param circularString Circular String
*/
private static getCircularStringByteLength;
/**
* Write a Compound Curve
* @param compoundCurve Compound Curve
*/
private static getCompoundCurveByteLength;
/**
* Write a Curve Polygon
* @param curvePolygon Curve Polygon
*/
private static getCurvePolygonByteLength;
/**
* Write a Polyhedral Surface
* @param polyhedralSurface Polyhedral Surface
*/
private static getPolyhedralSurfaceByteLength;
/**
* Write a TIN
* @param tin TIN
*/
private static getTINByteLength;
/**
* Write a Triangle
* @param triangle Triangle
*/
private static getTriangleByteLength;
}