UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

38 lines 2.04 kB
import { GeometryPolygonBase as Base, type GeometryPolygonSource as GeometryPolygonSourceBase, type GeometryPolygonTypes as GeometryPolygonTypesBase } from "@tai-kun/surrealdb/decodeonly-datatypes"; import { type Coord } from "../_internals/geometry"; import { type GeoJsonLineString, GeometryLine, type GeometryLineBase, type GeometryLineTypes } from "./geometry-line"; import type { GeometryPointBase, GeometryPointTypes } from "./geometry-point"; import { CBOR_TAG_GEOMETRY_POLYGON, type Encodable } from "./spec"; type PointBase = new (source: any) => GeometryPointBase<GeometryPointTypes<Coord>>; type LineBase = new (source: any) => GeometryLineBase<GeometryLineTypes<PointBase>>; export type GeometryPolygonTypes<TLine extends LineBase = LineBase> = GeometryPolygonTypesBase<TLine>; export type GeometryPolygonSource<TTypes extends GeometryPolygonTypes = GeometryPolygonTypes> = GeometryPolygonSourceBase<TTypes>; export type GeoJsonPolygon = { type: "Polygon"; coordinates: [ GeoJsonLineString["coordinates"], ...GeoJsonLineString["coordinates"][] ]; }; export declare class GeometryPolygonBase<TTypes extends GeometryPolygonTypes = GeometryPolygonTypes> extends Base<TTypes> implements Encodable { get coordinates(): [ InstanceType<TTypes["Line"]>["coordinates"], ...InstanceType<TTypes["Line"]>["coordinates"][] ]; toCBOR(): [tag: typeof CBOR_TAG_GEOMETRY_POLYGON, value: this["polygon"]]; toJSON(): GeoJsonPolygon; toSurql(): string; toPlainObject(): { type: "Polygon"; polygon: readonly [InstanceType<TTypes["Line"]>, ...InstanceType<TTypes["Line"]>[]]; }; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/data/geometry-polygon) */ export declare class GeometryPolygon extends GeometryPolygonBase<GeometryPolygonTypes<typeof GeometryLine>> { static readonly Line: typeof GeometryLine; constructor(source: GeometryPolygonSource<typeof GeometryPolygon>); } export {}; //# sourceMappingURL=geometry-polygon.d.ts.map