/** Tile bounds are inclusive; polygon coordinates describe continuous tile edges. */ export type SurfaceChartBounds = Readonly<{ minX: number; minZ: number; maxX: number; maxZ: number; }>; export type SurfaceChartPoint = readonly [number, number]; export type SurfaceChartComponent = Readonly<{ outer: readonly SurfaceChartPoint[]; holes?: readonly (readonly SurfaceChartPoint[])[]; }>; export type SurfaceChartFootprint = SurfaceChartBounds & Readonly<{ id: string; }>; export type SurfaceChartDescriptor = Readonly<{ schema: 1; revision: number; technicalBounds: SurfaceChartBounds; components: readonly SurfaceChartComponent[]; fadeTiles: number; seaBleedTiles: number; protectedFootprints: readonly SurfaceChartFootprint[]; }>; /** * Presentation only. The full technical rectangle still streams and saves as before. * Retained terrain is opaque; the wash fades OUT from its contour into peripheral sea. * The northern lobe keeps the Bear Floes and the southern lobe keeps the whole Long Pier. * Revision 2 (2026-10-05, the south expansion) adds two southern lobes: the Sundered Coast * south of Base Camp (out to z 1068, past Fort Rook's cliff) and the South Fields west of * Hope Beach (out to z 1000). Every revision 1 point north of them is unchanged. * Revision 3 (2026-10-09, the Western Entrance) keeps the headland south of the South Fields * opaque through its protected footprint; the technical bounds grew with the four new chunks. * No named land, route, or interior moves when this chart revision changes. */ export declare const SURFACE_CHART: SurfaceChartDescriptor; /** * Optional network metadata is accepted only in this bounded, known coordinate space. * Missing/malformed/unsupported charts return null so consumers use their shipped chart. * Copy fields rather than trusting extra properties. Required authored footprints may grow, * but cannot disappear or shrink in a remote chart of the same schema. */ export declare function validateSurfaceChart(value: unknown, layout?: SurfaceChartDescriptor): SurfaceChartDescriptor | null; /** * Surface terrain opacity in world tile coordinates. Tile (x,z) spans [x,x+1) x [z,z+1). * Callers must leave labels, players, destinations and other overlays outside this mask. * seaBleedTiles is a separate painter allowance, never an extension of technical bounds. */ export declare function surfaceChartOpacity(chart: SurfaceChartDescriptor, x: number, z: number): number; //# sourceMappingURL=surfaceChart.d.ts.map