@dromney/mapthis 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +56 -0
  3. package/dist/ai/index.cjs +474 -0
  4. package/dist/ai/index.cjs.map +1 -0
  5. package/dist/ai/index.d.cts +117 -0
  6. package/dist/ai/index.d.ts +117 -0
  7. package/dist/ai/index.js +447 -0
  8. package/dist/ai/index.js.map +1 -0
  9. package/dist/domain-CZ-L-ntu.d.ts +163 -0
  10. package/dist/domain-Dc1wSTkf.d.cts +163 -0
  11. package/dist/errors-Bw97z_4m.d.cts +12 -0
  12. package/dist/errors-Bw97z_4m.d.ts +12 -0
  13. package/dist/generate/index.cjs +222 -0
  14. package/dist/generate/index.cjs.map +1 -0
  15. package/dist/generate/index.d.cts +140 -0
  16. package/dist/generate/index.d.ts +140 -0
  17. package/dist/generate/index.js +220 -0
  18. package/dist/generate/index.js.map +1 -0
  19. package/dist/geocoding/index.cjs +90 -0
  20. package/dist/geocoding/index.cjs.map +1 -0
  21. package/dist/geocoding/index.d.cts +36 -0
  22. package/dist/geocoding/index.d.ts +36 -0
  23. package/dist/geocoding/index.js +86 -0
  24. package/dist/geocoding/index.js.map +1 -0
  25. package/dist/index.cjs +546 -0
  26. package/dist/index.cjs.map +1 -0
  27. package/dist/index.d.cts +5 -0
  28. package/dist/index.d.ts +5 -0
  29. package/dist/index.js +469 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/parser-CzXzpmVv.d.cts +111 -0
  32. package/dist/parser-N7-fNxeu.d.ts +111 -0
  33. package/dist/react/index.cjs +394 -0
  34. package/dist/react/index.cjs.map +1 -0
  35. package/dist/react/index.js +383 -0
  36. package/dist/react/index.js.map +1 -0
  37. package/dist/schemas-Dy5coqXo.d.cts +484 -0
  38. package/dist/schemas-Dy5coqXo.d.ts +484 -0
  39. package/dist/scrape/index.cjs +133 -0
  40. package/dist/scrape/index.cjs.map +1 -0
  41. package/dist/scrape/index.d.cts +60 -0
  42. package/dist/scrape/index.d.ts +60 -0
  43. package/dist/scrape/index.js +125 -0
  44. package/dist/scrape/index.js.map +1 -0
  45. package/dist/search/index.cjs +76 -0
  46. package/dist/search/index.cjs.map +1 -0
  47. package/dist/search/index.d.cts +75 -0
  48. package/dist/search/index.d.ts +75 -0
  49. package/dist/search/index.js +71 -0
  50. package/dist/search/index.js.map +1 -0
  51. package/dist/types/index.cjs +215 -0
  52. package/dist/types/index.cjs.map +1 -0
  53. package/dist/types/index.d.cts +4 -0
  54. package/dist/types/index.d.ts +4 -0
  55. package/dist/types/index.js +171 -0
  56. package/dist/types/index.js.map +1 -0
  57. package/dist/types-BhqKlq0k.d.ts +31 -0
  58. package/dist/types-rFjK5YcJ.d.cts +31 -0
  59. package/dist/utils/index.cjs +335 -0
  60. package/dist/utils/index.cjs.map +1 -0
  61. package/dist/utils/index.d.cts +363 -0
  62. package/dist/utils/index.d.ts +363 -0
  63. package/dist/utils/index.js +301 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/package.json +150 -0
@@ -0,0 +1,363 @@
1
+ import { C as Coordinates } from '../schemas-Dy5coqXo.cjs';
2
+ import 'zod';
3
+
4
+ /**
5
+ * Capitalize the first character of a string, passing through null/undefined.
6
+ */
7
+ declare const capitalizeFirstLetter: <T extends string | null | undefined>(s: T) => T;
8
+ /**
9
+ * Map the values of a plain object while preserving keys.
10
+ */
11
+ declare function objectMap<T>(obj: Record<string, T>, func: (key: string, val: T) => T): Record<string, T>;
12
+ /**
13
+ * Normalize freeform list input for a textarea that expects one item per line.
14
+ *
15
+ * - Leading newline is swallowed so users cannot start a list with blank lines.
16
+ * - Internal blank lines are collapsed.
17
+ * - A trailing newline is preserved so the user can keep typing the next line.
18
+ */
19
+ declare const enforceListTextInput: (val: string) => string;
20
+ /**
21
+ * Alias of {@link enforceListTextInput} kept for semantic clarity in call sites.
22
+ */
23
+ declare const preventMultipleBlankLines: (val: string) => string;
24
+
25
+ /**
26
+ * Random integer in the half-open range [from, to).
27
+ */
28
+ declare function randomIntBetween(from: number, to: number): number;
29
+
30
+ declare const H_MIN = 50;
31
+ declare const H_MAX = 300;
32
+ declare const L_MIN = 90;
33
+ declare const L_MAX = 95;
34
+ declare const seedOffset = 50;
35
+ declare function randomPastelHsl(): [number, number, number];
36
+ declare function randomPastelHslString(): string;
37
+ declare function randomPastelRgb(): [number, number, number];
38
+ declare function randomPastelHex(): string;
39
+ /**
40
+ * Deterministically map a non-negative integer seed to a hue in [min, max).
41
+ *
42
+ * The algorithm uses a base-2 level decomposition so that successive seeds
43
+ * (0, 1, 2, 3, ...) stay maximally spaced within the hue range.
44
+ */
45
+ declare function seededHslH(seed: number, min?: number, max?: number): number;
46
+ declare function seededPastelHsl(seed: number): [number, number, number];
47
+ declare function seededPastelRgb(seed: number): [number, number, number];
48
+ declare function seededPastelRgbA(seed: number, alpha: number): string;
49
+ declare function seededPastelHex(seed: number): string;
50
+ interface PastelDocColors {
51
+ bgColor: string;
52
+ txtColor: string;
53
+ primaryColor: string;
54
+ focusFocus: string;
55
+ }
56
+ declare function randomPastelHslDocColors(): PastelDocColors;
57
+ /**
58
+ * Deterministic pastel hue derived from a UUID by interpreting its hex as a
59
+ * big integer mod 360.
60
+ */
61
+ declare function uuidPastelHsl(uuid: string): [number, number, number];
62
+ declare function uuidPastelRgb(uuid: string): [number, number, number];
63
+ declare function uuidPastelRgbA(uuid: string, alpha: number): string;
64
+ declare function uuidPastelHex(uuid: string): string;
65
+ /**
66
+ * Choose a readable text color (dark or light) for a given hex background,
67
+ * using the standard ITU-R BT.601 luminance coefficients.
68
+ */
69
+ declare function getTextColor(bgColor: string): string;
70
+
71
+ /**
72
+ * Stopwatch that supports named laps. Useful for instrumenting multi-stage
73
+ * pipelines (e.g. URL fetch → summarize → LLM parse → geocode).
74
+ */
75
+ declare class StopwatchLapped {
76
+ private name;
77
+ private startTime;
78
+ private endTime;
79
+ private _currentLap;
80
+ private laps;
81
+ log: boolean;
82
+ constructor(name?: string, log?: boolean);
83
+ get elapsed(): number;
84
+ get currentLap(): number;
85
+ private checkStopped;
86
+ private addLap;
87
+ private completeLap;
88
+ start(firstLapName?: string): this;
89
+ lap(newLapName?: string): this;
90
+ stop(): this;
91
+ }
92
+ /**
93
+ * Minimal stopwatch for quick one-shot timing.
94
+ */
95
+ declare class Stopwatch {
96
+ private name;
97
+ private startTime;
98
+ constructor(name: string);
99
+ stop(): number;
100
+ }
101
+
102
+ /**
103
+ * Known lat/lng for major cities. Useful as default map centers, test
104
+ * fixtures, and fallback coordinates.
105
+ */
106
+ declare const cities: {
107
+ readonly london: {
108
+ readonly lat: 51.5074;
109
+ readonly lng: -0.1278;
110
+ };
111
+ readonly washingtonDC: {
112
+ readonly lat: 38.9072;
113
+ readonly lng: -77.0369;
114
+ };
115
+ readonly newYorkCity: {
116
+ readonly lat: 40.7128;
117
+ readonly lng: -74.006;
118
+ };
119
+ readonly losAngeles: {
120
+ readonly lat: 34.0522;
121
+ readonly lng: -118.2437;
122
+ };
123
+ readonly tokyo: {
124
+ readonly lat: 35.6895;
125
+ readonly lng: 139.6917;
126
+ };
127
+ readonly paris: {
128
+ readonly lat: 48.8566;
129
+ readonly lng: 2.3522;
130
+ };
131
+ readonly sydney: {
132
+ readonly lat: -33.8688;
133
+ readonly lng: 151.2093;
134
+ };
135
+ readonly saoPaulo: {
136
+ readonly lat: -23.5505;
137
+ readonly lng: -46.6333;
138
+ };
139
+ readonly moscow: {
140
+ readonly lat: 55.7558;
141
+ readonly lng: 37.6173;
142
+ };
143
+ readonly beijing: {
144
+ readonly lat: 39.9042;
145
+ readonly lng: 116.4074;
146
+ };
147
+ readonly buenosAires: {
148
+ readonly lat: -34.6037;
149
+ readonly lng: -58.3816;
150
+ };
151
+ readonly rome: {
152
+ readonly lat: 41.9028;
153
+ readonly lng: 12.4964;
154
+ };
155
+ readonly sanFrancisco: {
156
+ readonly lat: 37.7749;
157
+ readonly lng: -122.4194;
158
+ };
159
+ readonly mexicoCity: {
160
+ readonly lat: 19.4326;
161
+ readonly lng: -99.1332;
162
+ };
163
+ readonly newDelhi: {
164
+ readonly lat: 28.6139;
165
+ readonly lng: 77.209;
166
+ };
167
+ readonly toronto: {
168
+ readonly lat: 43.6532;
169
+ readonly lng: -79.3832;
170
+ };
171
+ readonly berlin: {
172
+ readonly lat: 52.52;
173
+ readonly lng: 13.405;
174
+ };
175
+ readonly shanghai: {
176
+ readonly lat: 31.2304;
177
+ readonly lng: 121.4737;
178
+ };
179
+ readonly bangkok: {
180
+ readonly lat: 13.7563;
181
+ readonly lng: 100.5018;
182
+ };
183
+ readonly rioDeJaneiro: {
184
+ readonly lat: -22.9068;
185
+ readonly lng: -43.1729;
186
+ };
187
+ readonly singapore: {
188
+ readonly lat: 1.3521;
189
+ readonly lng: 103.8198;
190
+ };
191
+ readonly istanbul: {
192
+ readonly lat: 41.0082;
193
+ readonly lng: 28.9784;
194
+ };
195
+ readonly melbourne: {
196
+ readonly lat: -37.8136;
197
+ readonly lng: 144.9631;
198
+ };
199
+ readonly frankfurt: {
200
+ readonly lat: 50.1109;
201
+ readonly lng: 8.6821;
202
+ };
203
+ readonly johannesburg: {
204
+ readonly lat: -26.2041;
205
+ readonly lng: 28.0473;
206
+ };
207
+ readonly madrid: {
208
+ readonly lat: 40.4168;
209
+ readonly lng: -3.7038;
210
+ };
211
+ readonly kualaLumpur: {
212
+ readonly lat: 3.139;
213
+ readonly lng: 101.6869;
214
+ };
215
+ readonly helsinki: {
216
+ readonly lat: 60.1699;
217
+ readonly lng: 24.9384;
218
+ };
219
+ readonly copenhagen: {
220
+ readonly lat: 55.6761;
221
+ readonly lng: 12.5683;
222
+ };
223
+ readonly budapest: {
224
+ readonly lat: 47.4979;
225
+ readonly lng: 19.0402;
226
+ };
227
+ readonly ankara: {
228
+ readonly lat: 39.9334;
229
+ readonly lng: 32.8597;
230
+ };
231
+ readonly cairo: {
232
+ readonly lat: 30.0444;
233
+ readonly lng: 31.2357;
234
+ };
235
+ readonly osaka: {
236
+ readonly lat: 34.6937;
237
+ readonly lng: 135.5023;
238
+ };
239
+ readonly athens: {
240
+ readonly lat: 37.9838;
241
+ readonly lng: 23.7275;
242
+ };
243
+ readonly seoul: {
244
+ readonly lat: 37.5665;
245
+ readonly lng: 126.978;
246
+ };
247
+ readonly jakarta: {
248
+ readonly lat: -6.2088;
249
+ readonly lng: 106.8456;
250
+ };
251
+ readonly dubai: {
252
+ readonly lat: 25.276987;
253
+ readonly lng: 55.296249;
254
+ };
255
+ readonly telAviv: {
256
+ readonly lat: 32.0853;
257
+ readonly lng: 34.7818;
258
+ };
259
+ readonly mumbai: {
260
+ readonly lat: 19.075983;
261
+ readonly lng: 72.877655;
262
+ };
263
+ readonly nairobi: {
264
+ readonly lat: -1.2921;
265
+ readonly lng: 36.8219;
266
+ };
267
+ readonly casablanca: {
268
+ readonly lat: 33.5731;
269
+ readonly lng: -7.5898;
270
+ };
271
+ readonly calgary: {
272
+ readonly lat: 51.0447;
273
+ readonly lng: -114.0719;
274
+ };
275
+ readonly montreal: {
276
+ readonly lat: 45.5017;
277
+ readonly lng: -73.5673;
278
+ };
279
+ readonly zagreb: {
280
+ readonly lat: 45.815;
281
+ readonly lng: 15.9819;
282
+ };
283
+ readonly stockholm: {
284
+ readonly lat: 59.3293;
285
+ readonly lng: 18.0686;
286
+ };
287
+ readonly brasilia: {
288
+ readonly lat: -15.8267;
289
+ readonly lng: -47.9218;
290
+ };
291
+ readonly canberra: {
292
+ readonly lat: -35.282;
293
+ readonly lng: 149.1286;
294
+ };
295
+ readonly amman: {
296
+ readonly lat: 30.5852;
297
+ readonly lng: 36.2384;
298
+ };
299
+ readonly dublin: {
300
+ readonly lat: 53.3498;
301
+ readonly lng: -6.2603;
302
+ };
303
+ readonly phoenix: {
304
+ readonly lat: 33.4484;
305
+ readonly lng: -112.074;
306
+ };
307
+ readonly portLouis: {
308
+ readonly lat: -20.1609;
309
+ readonly lng: 57.5012;
310
+ };
311
+ readonly riyadh: {
312
+ readonly lat: 24.7136;
313
+ readonly lng: 46.6753;
314
+ };
315
+ readonly bucharest: {
316
+ readonly lat: 44.4268;
317
+ readonly lng: 26.1025;
318
+ };
319
+ readonly vancouver: {
320
+ readonly lat: 49.2827;
321
+ readonly lng: -123.1207;
322
+ };
323
+ readonly baghdad: {
324
+ readonly lat: 33.3128;
325
+ readonly lng: 44.3615;
326
+ };
327
+ readonly cancun: {
328
+ readonly lat: 21.1619;
329
+ readonly lng: -86.8515;
330
+ };
331
+ readonly denpasar: {
332
+ readonly lat: -8.4095;
333
+ readonly lng: 115.1889;
334
+ };
335
+ readonly vientiane: {
336
+ readonly lat: 17.9714;
337
+ readonly lng: 102.6141;
338
+ };
339
+ readonly pune: {
340
+ readonly lat: 18.5204;
341
+ readonly lng: 73.8567;
342
+ };
343
+ readonly karachi: {
344
+ readonly lat: 24.8607;
345
+ readonly lng: 67.0011;
346
+ };
347
+ readonly denver: {
348
+ readonly lat: 39.7392;
349
+ readonly lng: -104.9903;
350
+ };
351
+ };
352
+ type KnownCity = keyof typeof cities;
353
+ declare const randomLat: () => number;
354
+ declare const randomLng: () => number;
355
+ /**
356
+ * Development-friendly coordinates (centered over central Europe) so seeded
357
+ * data never lands in the ocean during local testing.
358
+ */
359
+ declare const randomLatDev: () => number;
360
+ declare const randomLngDev: () => number;
361
+ declare const randomDevCoordinates: () => Coordinates;
362
+
363
+ export { H_MAX, H_MIN, type KnownCity, L_MAX, L_MIN, type PastelDocColors, Stopwatch, StopwatchLapped, capitalizeFirstLetter, cities, enforceListTextInput, getTextColor, objectMap, preventMultipleBlankLines, randomDevCoordinates, randomIntBetween, randomLat, randomLatDev, randomLng, randomLngDev, randomPastelHex, randomPastelHsl, randomPastelHslDocColors, randomPastelHslString, randomPastelRgb, seedOffset, seededHslH, seededPastelHex, seededPastelHsl, seededPastelRgb, seededPastelRgbA, uuidPastelHex, uuidPastelHsl, uuidPastelRgb, uuidPastelRgbA };
@@ -0,0 +1,363 @@
1
+ import { C as Coordinates } from '../schemas-Dy5coqXo.js';
2
+ import 'zod';
3
+
4
+ /**
5
+ * Capitalize the first character of a string, passing through null/undefined.
6
+ */
7
+ declare const capitalizeFirstLetter: <T extends string | null | undefined>(s: T) => T;
8
+ /**
9
+ * Map the values of a plain object while preserving keys.
10
+ */
11
+ declare function objectMap<T>(obj: Record<string, T>, func: (key: string, val: T) => T): Record<string, T>;
12
+ /**
13
+ * Normalize freeform list input for a textarea that expects one item per line.
14
+ *
15
+ * - Leading newline is swallowed so users cannot start a list with blank lines.
16
+ * - Internal blank lines are collapsed.
17
+ * - A trailing newline is preserved so the user can keep typing the next line.
18
+ */
19
+ declare const enforceListTextInput: (val: string) => string;
20
+ /**
21
+ * Alias of {@link enforceListTextInput} kept for semantic clarity in call sites.
22
+ */
23
+ declare const preventMultipleBlankLines: (val: string) => string;
24
+
25
+ /**
26
+ * Random integer in the half-open range [from, to).
27
+ */
28
+ declare function randomIntBetween(from: number, to: number): number;
29
+
30
+ declare const H_MIN = 50;
31
+ declare const H_MAX = 300;
32
+ declare const L_MIN = 90;
33
+ declare const L_MAX = 95;
34
+ declare const seedOffset = 50;
35
+ declare function randomPastelHsl(): [number, number, number];
36
+ declare function randomPastelHslString(): string;
37
+ declare function randomPastelRgb(): [number, number, number];
38
+ declare function randomPastelHex(): string;
39
+ /**
40
+ * Deterministically map a non-negative integer seed to a hue in [min, max).
41
+ *
42
+ * The algorithm uses a base-2 level decomposition so that successive seeds
43
+ * (0, 1, 2, 3, ...) stay maximally spaced within the hue range.
44
+ */
45
+ declare function seededHslH(seed: number, min?: number, max?: number): number;
46
+ declare function seededPastelHsl(seed: number): [number, number, number];
47
+ declare function seededPastelRgb(seed: number): [number, number, number];
48
+ declare function seededPastelRgbA(seed: number, alpha: number): string;
49
+ declare function seededPastelHex(seed: number): string;
50
+ interface PastelDocColors {
51
+ bgColor: string;
52
+ txtColor: string;
53
+ primaryColor: string;
54
+ focusFocus: string;
55
+ }
56
+ declare function randomPastelHslDocColors(): PastelDocColors;
57
+ /**
58
+ * Deterministic pastel hue derived from a UUID by interpreting its hex as a
59
+ * big integer mod 360.
60
+ */
61
+ declare function uuidPastelHsl(uuid: string): [number, number, number];
62
+ declare function uuidPastelRgb(uuid: string): [number, number, number];
63
+ declare function uuidPastelRgbA(uuid: string, alpha: number): string;
64
+ declare function uuidPastelHex(uuid: string): string;
65
+ /**
66
+ * Choose a readable text color (dark or light) for a given hex background,
67
+ * using the standard ITU-R BT.601 luminance coefficients.
68
+ */
69
+ declare function getTextColor(bgColor: string): string;
70
+
71
+ /**
72
+ * Stopwatch that supports named laps. Useful for instrumenting multi-stage
73
+ * pipelines (e.g. URL fetch → summarize → LLM parse → geocode).
74
+ */
75
+ declare class StopwatchLapped {
76
+ private name;
77
+ private startTime;
78
+ private endTime;
79
+ private _currentLap;
80
+ private laps;
81
+ log: boolean;
82
+ constructor(name?: string, log?: boolean);
83
+ get elapsed(): number;
84
+ get currentLap(): number;
85
+ private checkStopped;
86
+ private addLap;
87
+ private completeLap;
88
+ start(firstLapName?: string): this;
89
+ lap(newLapName?: string): this;
90
+ stop(): this;
91
+ }
92
+ /**
93
+ * Minimal stopwatch for quick one-shot timing.
94
+ */
95
+ declare class Stopwatch {
96
+ private name;
97
+ private startTime;
98
+ constructor(name: string);
99
+ stop(): number;
100
+ }
101
+
102
+ /**
103
+ * Known lat/lng for major cities. Useful as default map centers, test
104
+ * fixtures, and fallback coordinates.
105
+ */
106
+ declare const cities: {
107
+ readonly london: {
108
+ readonly lat: 51.5074;
109
+ readonly lng: -0.1278;
110
+ };
111
+ readonly washingtonDC: {
112
+ readonly lat: 38.9072;
113
+ readonly lng: -77.0369;
114
+ };
115
+ readonly newYorkCity: {
116
+ readonly lat: 40.7128;
117
+ readonly lng: -74.006;
118
+ };
119
+ readonly losAngeles: {
120
+ readonly lat: 34.0522;
121
+ readonly lng: -118.2437;
122
+ };
123
+ readonly tokyo: {
124
+ readonly lat: 35.6895;
125
+ readonly lng: 139.6917;
126
+ };
127
+ readonly paris: {
128
+ readonly lat: 48.8566;
129
+ readonly lng: 2.3522;
130
+ };
131
+ readonly sydney: {
132
+ readonly lat: -33.8688;
133
+ readonly lng: 151.2093;
134
+ };
135
+ readonly saoPaulo: {
136
+ readonly lat: -23.5505;
137
+ readonly lng: -46.6333;
138
+ };
139
+ readonly moscow: {
140
+ readonly lat: 55.7558;
141
+ readonly lng: 37.6173;
142
+ };
143
+ readonly beijing: {
144
+ readonly lat: 39.9042;
145
+ readonly lng: 116.4074;
146
+ };
147
+ readonly buenosAires: {
148
+ readonly lat: -34.6037;
149
+ readonly lng: -58.3816;
150
+ };
151
+ readonly rome: {
152
+ readonly lat: 41.9028;
153
+ readonly lng: 12.4964;
154
+ };
155
+ readonly sanFrancisco: {
156
+ readonly lat: 37.7749;
157
+ readonly lng: -122.4194;
158
+ };
159
+ readonly mexicoCity: {
160
+ readonly lat: 19.4326;
161
+ readonly lng: -99.1332;
162
+ };
163
+ readonly newDelhi: {
164
+ readonly lat: 28.6139;
165
+ readonly lng: 77.209;
166
+ };
167
+ readonly toronto: {
168
+ readonly lat: 43.6532;
169
+ readonly lng: -79.3832;
170
+ };
171
+ readonly berlin: {
172
+ readonly lat: 52.52;
173
+ readonly lng: 13.405;
174
+ };
175
+ readonly shanghai: {
176
+ readonly lat: 31.2304;
177
+ readonly lng: 121.4737;
178
+ };
179
+ readonly bangkok: {
180
+ readonly lat: 13.7563;
181
+ readonly lng: 100.5018;
182
+ };
183
+ readonly rioDeJaneiro: {
184
+ readonly lat: -22.9068;
185
+ readonly lng: -43.1729;
186
+ };
187
+ readonly singapore: {
188
+ readonly lat: 1.3521;
189
+ readonly lng: 103.8198;
190
+ };
191
+ readonly istanbul: {
192
+ readonly lat: 41.0082;
193
+ readonly lng: 28.9784;
194
+ };
195
+ readonly melbourne: {
196
+ readonly lat: -37.8136;
197
+ readonly lng: 144.9631;
198
+ };
199
+ readonly frankfurt: {
200
+ readonly lat: 50.1109;
201
+ readonly lng: 8.6821;
202
+ };
203
+ readonly johannesburg: {
204
+ readonly lat: -26.2041;
205
+ readonly lng: 28.0473;
206
+ };
207
+ readonly madrid: {
208
+ readonly lat: 40.4168;
209
+ readonly lng: -3.7038;
210
+ };
211
+ readonly kualaLumpur: {
212
+ readonly lat: 3.139;
213
+ readonly lng: 101.6869;
214
+ };
215
+ readonly helsinki: {
216
+ readonly lat: 60.1699;
217
+ readonly lng: 24.9384;
218
+ };
219
+ readonly copenhagen: {
220
+ readonly lat: 55.6761;
221
+ readonly lng: 12.5683;
222
+ };
223
+ readonly budapest: {
224
+ readonly lat: 47.4979;
225
+ readonly lng: 19.0402;
226
+ };
227
+ readonly ankara: {
228
+ readonly lat: 39.9334;
229
+ readonly lng: 32.8597;
230
+ };
231
+ readonly cairo: {
232
+ readonly lat: 30.0444;
233
+ readonly lng: 31.2357;
234
+ };
235
+ readonly osaka: {
236
+ readonly lat: 34.6937;
237
+ readonly lng: 135.5023;
238
+ };
239
+ readonly athens: {
240
+ readonly lat: 37.9838;
241
+ readonly lng: 23.7275;
242
+ };
243
+ readonly seoul: {
244
+ readonly lat: 37.5665;
245
+ readonly lng: 126.978;
246
+ };
247
+ readonly jakarta: {
248
+ readonly lat: -6.2088;
249
+ readonly lng: 106.8456;
250
+ };
251
+ readonly dubai: {
252
+ readonly lat: 25.276987;
253
+ readonly lng: 55.296249;
254
+ };
255
+ readonly telAviv: {
256
+ readonly lat: 32.0853;
257
+ readonly lng: 34.7818;
258
+ };
259
+ readonly mumbai: {
260
+ readonly lat: 19.075983;
261
+ readonly lng: 72.877655;
262
+ };
263
+ readonly nairobi: {
264
+ readonly lat: -1.2921;
265
+ readonly lng: 36.8219;
266
+ };
267
+ readonly casablanca: {
268
+ readonly lat: 33.5731;
269
+ readonly lng: -7.5898;
270
+ };
271
+ readonly calgary: {
272
+ readonly lat: 51.0447;
273
+ readonly lng: -114.0719;
274
+ };
275
+ readonly montreal: {
276
+ readonly lat: 45.5017;
277
+ readonly lng: -73.5673;
278
+ };
279
+ readonly zagreb: {
280
+ readonly lat: 45.815;
281
+ readonly lng: 15.9819;
282
+ };
283
+ readonly stockholm: {
284
+ readonly lat: 59.3293;
285
+ readonly lng: 18.0686;
286
+ };
287
+ readonly brasilia: {
288
+ readonly lat: -15.8267;
289
+ readonly lng: -47.9218;
290
+ };
291
+ readonly canberra: {
292
+ readonly lat: -35.282;
293
+ readonly lng: 149.1286;
294
+ };
295
+ readonly amman: {
296
+ readonly lat: 30.5852;
297
+ readonly lng: 36.2384;
298
+ };
299
+ readonly dublin: {
300
+ readonly lat: 53.3498;
301
+ readonly lng: -6.2603;
302
+ };
303
+ readonly phoenix: {
304
+ readonly lat: 33.4484;
305
+ readonly lng: -112.074;
306
+ };
307
+ readonly portLouis: {
308
+ readonly lat: -20.1609;
309
+ readonly lng: 57.5012;
310
+ };
311
+ readonly riyadh: {
312
+ readonly lat: 24.7136;
313
+ readonly lng: 46.6753;
314
+ };
315
+ readonly bucharest: {
316
+ readonly lat: 44.4268;
317
+ readonly lng: 26.1025;
318
+ };
319
+ readonly vancouver: {
320
+ readonly lat: 49.2827;
321
+ readonly lng: -123.1207;
322
+ };
323
+ readonly baghdad: {
324
+ readonly lat: 33.3128;
325
+ readonly lng: 44.3615;
326
+ };
327
+ readonly cancun: {
328
+ readonly lat: 21.1619;
329
+ readonly lng: -86.8515;
330
+ };
331
+ readonly denpasar: {
332
+ readonly lat: -8.4095;
333
+ readonly lng: 115.1889;
334
+ };
335
+ readonly vientiane: {
336
+ readonly lat: 17.9714;
337
+ readonly lng: 102.6141;
338
+ };
339
+ readonly pune: {
340
+ readonly lat: 18.5204;
341
+ readonly lng: 73.8567;
342
+ };
343
+ readonly karachi: {
344
+ readonly lat: 24.8607;
345
+ readonly lng: 67.0011;
346
+ };
347
+ readonly denver: {
348
+ readonly lat: 39.7392;
349
+ readonly lng: -104.9903;
350
+ };
351
+ };
352
+ type KnownCity = keyof typeof cities;
353
+ declare const randomLat: () => number;
354
+ declare const randomLng: () => number;
355
+ /**
356
+ * Development-friendly coordinates (centered over central Europe) so seeded
357
+ * data never lands in the ocean during local testing.
358
+ */
359
+ declare const randomLatDev: () => number;
360
+ declare const randomLngDev: () => number;
361
+ declare const randomDevCoordinates: () => Coordinates;
362
+
363
+ export { H_MAX, H_MIN, type KnownCity, L_MAX, L_MIN, type PastelDocColors, Stopwatch, StopwatchLapped, capitalizeFirstLetter, cities, enforceListTextInput, getTextColor, objectMap, preventMultipleBlankLines, randomDevCoordinates, randomIntBetween, randomLat, randomLatDev, randomLng, randomLngDev, randomPastelHex, randomPastelHsl, randomPastelHslDocColors, randomPastelHslString, randomPastelRgb, seedOffset, seededHslH, seededPastelHex, seededPastelHsl, seededPastelRgb, seededPastelRgbA, uuidPastelHex, uuidPastelHsl, uuidPastelRgb, uuidPastelRgbA };