@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
30 lines • 1.54 kB
TypeScript
import { type Coord, type Geometry } from "../_internals/geometry";
import { GeometryLine, type GeometryLineBase, type GeometryLineTypes } from "./geometry-line";
import type { GeometryPointBase, GeometryPointTypes } from "./geometry-point";
type PointBase = new (source: any) => GeometryPointBase<GeometryPointTypes<Coord>>;
type LineBase = new (source: any) => GeometryLineBase<GeometryLineTypes<PointBase>>;
export type GeometryPolygonTypes<TLine extends LineBase = LineBase> = {
readonly Line: TLine;
};
export type GeometryPolygonSource<TTypes extends GeometryPolygonTypes = GeometryPolygonTypes> = readonly [
(ConstructorParameters<TTypes["Line"]>[0] | InstanceType<TTypes["Line"]>),
...(ConstructorParameters<TTypes["Line"]>[0] | InstanceType<TTypes["Line"]>)[]
];
export declare class GeometryPolygonBase<TTypes extends GeometryPolygonTypes = GeometryPolygonTypes> implements Geometry {
readonly types: TTypes;
readonly type: "Polygon";
readonly polygon: readonly [
InstanceType<TTypes["Line"]>,
...InstanceType<TTypes["Line"]>[]
];
constructor(source: GeometryPolygonSource<TTypes>, types: TTypes);
}
/**
* [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