import { z } from "zod"; /** * A Position is an array of coordinates. [longitude, latitude] or [longitude, latitude, altitude] * RFC 7946 Section 3.1.1: "There MUST be two or more elements. The first two elements * are longitude and latitude [...] Altitude or elevation MAY be included as an optional * third element." */ export declare const geoJsonPosition2dSchema: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>; export declare const geoJsonPositionSchema: z.ZodEffects, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>; export type GeoJsonPosition = z.infer; export type GeoJsonPosition2d = z.infer; /** * 2D bounding box of the GeoJSON object. * The value of the bbox member is an array of length 4. * * [west, south, east, north] * * Note: west may be greater than east for bboxes that cross the * antimeridian (RFC 7946 Section 5.2). * * Zero-height bboxes (north === south) are rejected per RFC 7946 Section 5.2: * "The latitude of the northeast corner is always greater than the latitude * of the southwest corner." Zero-width bboxes (west === east) are not explicitly * forbidden by the RFC for non-antimeridian cases, so they pass. */ export declare const geoJsonBboxSchema: z.ZodEffects, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>; export type GeoJsonBbox = z.infer; /** * Point geometry object. * Uses z.object() (not strictObject) so RFC 7946 Section 6.1 "foreign members" * (crs, vendor extensions, etc.) are accepted and stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.2 */ export declare const geoJsonPointSchema: z.ZodObject<{ type: z.ZodLiteral<"Point">; coordinates: z.ZodEffects, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "Point"; coordinates: [number, number] | [number, number, number]; bbox?: [number, number, number, number] | undefined; }, { type: "Point"; coordinates: [number, number] | [number, number, number]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonPoint = z.infer; /** * MultiPoint geometry object. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.3 */ export declare const geoJsonMultiPointSchema: z.ZodObject<{ type: z.ZodLiteral<"MultiPoint">; coordinates: z.ZodArray, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "MultiPoint"; coordinates: ([number, number] | [number, number, number])[]; bbox?: [number, number, number, number] | undefined; }, { type: "MultiPoint"; coordinates: ([number, number] | [number, number, number])[]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonMultiPoint = z.infer; /** * LineString geometry object. * Minimum length of 2 positions. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.4 */ export declare const geoJsonLineStringSchema: z.ZodObject<{ type: z.ZodLiteral<"LineString">; coordinates: z.ZodArray, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "LineString"; coordinates: ([number, number] | [number, number, number])[]; bbox?: [number, number, number, number] | undefined; }, { type: "LineString"; coordinates: ([number, number] | [number, number, number])[]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonLineString = z.infer; /** * MultiLineString geometry object. * Each inner array is a LineString coordinate array (>= 2 positions per RFC 7946 Section 3.1.5). * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.5 */ export declare const geoJsonMultiLineStringSchema: z.ZodObject<{ type: z.ZodLiteral<"MultiLineString">; coordinates: z.ZodArray, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "MultiLineString"; coordinates: ([number, number] | [number, number, number])[][]; bbox?: [number, number, number, number] | undefined; }, { type: "MultiLineString"; coordinates: ([number, number] | [number, number, number])[][]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonMultiLineString = z.infer; /** * Helper type for reuse across polygon schemas. * * - A linear ring is a closed LineString with four or more positions. * - The first and last positions are equivalent, and they MUST contain identical values; their representation SHOULD also be identical * - A linear ring is the boundary of a surface or the boundary of a hole in a surface * - A linear ring MUST follow the right-hand rule with respect to the area it bounds, i.e., exterior rings are counterclockwise, and holes are clockwise */ export declare const geoJsonLinearRingSchema: z.ZodEffects, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">, ([number, number] | [number, number, number])[], ([number, number] | [number, number, number])[]>; export type GeoJsonLinearRing = z.infer; /** * Polygon geometry object. * Must have at least one ring (the exterior ring) per RFC 7946 Section 3.1.6. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.6 */ export declare const geoJsonPolygonSchema: z.ZodObject<{ type: z.ZodLiteral<"Polygon">; coordinates: z.ZodArray, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">, ([number, number] | [number, number, number])[], ([number, number] | [number, number, number])[]>, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "Polygon"; coordinates: ([number, number] | [number, number, number])[][]; bbox?: [number, number, number, number] | undefined; }, { type: "Polygon"; coordinates: ([number, number] | [number, number, number])[][]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonPolygon = z.infer; /** * MultiPolygon geometry object. * Each member is a Polygon coordinate array and must have at least one ring * (its exterior ring), per RFC 7946 Sections 3.1.6/3.1.7. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.1.7 */ export declare const geoJsonMultiPolygonSchema: z.ZodObject<{ type: z.ZodLiteral<"MultiPolygon">; coordinates: z.ZodArray, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>, [number, number] | [number, number, number], [number, number] | [number, number, number]>, "many">, ([number, number] | [number, number, number])[], ([number, number] | [number, number, number])[]>, "many">, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "MultiPolygon"; coordinates: ([number, number] | [number, number, number])[][][]; bbox?: [number, number, number, number] | undefined; }, { type: "MultiPolygon"; coordinates: ([number, number] | [number, number, number])[][][]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonMultiPolygon = z.infer; /** * GeometryCollection and the recursive Geometry union type. * * RFC 7946 Section 3.1.8: GeometryCollection contains a "geometries" array * of Geometry objects. Because this is recursive (a GeometryCollection can * contain other GeometryCollections), the types are defined manually to * break the circular z.infer chain. */ export type GeoJsonGeometryCollection = { readonly type: "GeometryCollection"; readonly geometries: ReadonlyArray; readonly bbox?: GeoJsonBbox; }; export type GeoJsonGeometry = z.infer | z.infer | z.infer | z.infer | z.infer | z.infer | GeoJsonGeometryCollection; /** * GeometryCollection schema. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. */ export declare const geoJsonGeometryCollectionSchema: z.ZodType; export declare const geoJsonGeometrySchema: z.ZodType; /** * Feature object. * Geometry may be null for unlocated features (RFC 7946 Section 3.2). * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.2 */ export declare const geoJsonFeatureSchema: z.ZodObject<{ type: z.ZodLiteral<"Feature">; geometry: z.ZodNullable>; properties: z.ZodNullable>; id: z.ZodOptional>; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }, { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }>; export type GeoJsonFeature = z.infer; /** * FeatureCollection object. * Foreign members (RFC 7946 Section 6.1) are stripped during parse. * https://tools.ietf.org/html/rfc7946#section-3.3 */ export declare const geoJsonFeatureCollectionSchema: z.ZodObject<{ type: z.ZodLiteral<"FeatureCollection">; features: z.ZodArray; geometry: z.ZodNullable>; properties: z.ZodNullable>; id: z.ZodOptional>; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }, { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }>, "many">; bbox: z.ZodOptional, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>, [number, number, number, number], [number, number, number, number]>>; }, "strip", z.ZodTypeAny, { type: "FeatureCollection"; features: { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }[]; bbox?: [number, number, number, number] | undefined; }, { type: "FeatureCollection"; features: { type: "Feature"; geometry: GeoJsonGeometry | null; properties: Record | null; bbox?: [number, number, number, number] | undefined; id?: string | number | undefined; }[]; bbox?: [number, number, number, number] | undefined; }>; export type GeoJsonFeatureCollection = z.infer;