@buildplease/core 1.0.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.
@@ -0,0 +1,2296 @@
1
+ import "reflect-metadata";
2
+ import { Container, Container as Container$1 } from "inversify";
3
+ import { Duration, FormatOptions, FromUnixTimeOptions } from "date-fns";
4
+ import { FormatOptionsWithTZ } from "date-fns-tz";
5
+ import { E_ALREADY_LOCKED, E_CANCELED, E_TIMEOUT, Mutex, MutexInterface, Semaphore, SemaphoreInterface, tryAcquire, withTimeout } from "async-mutex";
6
+ import { z } from "zod";
7
+ export * from "date-fns";
8
+ //#region src/di/symbols.d.ts
9
+ declare const CoreSymbols: {
10
+ DI: {
11
+ Formatter: {
12
+ UnitController: symbol;
13
+ };
14
+ Logger: symbol;
15
+ };
16
+ };
17
+ //#endregion
18
+ //#region src/di/assembly.d.ts
19
+ type AssemblyContainer = Container$1;
20
+ interface Assembly {
21
+ assemble(container: AssemblyContainer): void;
22
+ }
23
+ //#endregion
24
+ //#region src/di/scope-controller.d.ts
25
+ declare class ScopeController {
26
+ private _container;
27
+ constructor();
28
+ get container(): Container$1;
29
+ getInstance<T>(serviceIdentifier: symbol): T;
30
+ registerAssemblies(assemblies: Assembly[]): Promise<void>;
31
+ }
32
+ //#endregion
33
+ //#region src/converter/async-converter.d.ts
34
+ /**
35
+ * Base class for asynchronous data conversion between two types.
36
+ *
37
+ * @template Input - The source data type.
38
+ * @template Output - The target data type.
39
+ */
40
+ declare abstract class AsyncConverter<Input, Output> {
41
+ /**
42
+ * Converts a single input into the target output type asynchronously.
43
+ *
44
+ * @param input - The input data to convert.
45
+ * @returns A promise resolving to the converted output.
46
+ */
47
+ abstract convert(input: Input): Promise<Output>;
48
+ /**
49
+ * Converts an array of inputs into outputs asynchronously.
50
+ *
51
+ * @param inputs - An array of input data.
52
+ * @returns A promise resolving to an array of converted outputs.
53
+ */
54
+ convertArray(inputs: Input[]): Promise<Output[]>;
55
+ /**
56
+ * Converts an array of inputs, skipping invalid entries asynchronously.
57
+ *
58
+ * @param inputs - An array of input data.
59
+ * @returns A promise resolving to an array of valid outputs, ignoring errors.
60
+ */
61
+ convertArrayIgnoreInvalid(inputs: Input[]): Promise<Output[]>;
62
+ }
63
+ //#endregion
64
+ //#region src/converter/converter.d.ts
65
+ /**
66
+ * Base class for synchronous data conversion between two types.
67
+ *
68
+ * @template Input - The source data type.
69
+ * @template Output - The target data type.
70
+ */
71
+ declare abstract class Converter<Input, Output> {
72
+ /**
73
+ * Converts a single input into the target output type.
74
+ *
75
+ * @param input - The input data to convert.
76
+ * @returns The converted output.
77
+ */
78
+ abstract convert(input: Input): Output;
79
+ /**
80
+ * Converts an array of inputs into outputs.
81
+ *
82
+ * @param inputs - An array of input data.
83
+ * @returns An array of converted outputs.
84
+ */
85
+ convertArray(inputs: Input[]): Output[];
86
+ /**
87
+ * Converts an array of inputs, skipping invalid entries.
88
+ *
89
+ * @param inputs - An array of input data.
90
+ * @returns An array of valid outputs, ignoring errors.
91
+ */
92
+ convertArrayIgnoreInvalid(inputs: Input[]): Output[];
93
+ }
94
+ //#endregion
95
+ //#region src/device/device-type.d.ts
96
+ declare enum DeviceType {
97
+ MOBILE = "MOBILE",
98
+ DESKTOP = "DESKTOP",
99
+ WEB = "WEB",
100
+ TABLET = "TABLET"
101
+ }
102
+ //#endregion
103
+ //#region src/device/os-type.d.ts
104
+ declare enum OSType {
105
+ IOS = "IOS",
106
+ ANDROID = "ANDROID",
107
+ WINDOWS = "WINDOWS",
108
+ MACOS = "MACOS",
109
+ LINUX = "LINUX"
110
+ }
111
+ //#endregion
112
+ //#region src/device/push-notification-status.d.ts
113
+ declare enum PushNotificationStatus {
114
+ UNKNOWN = "UNKNOWN",
115
+ ON = "ON",
116
+ OFF = "OFF"
117
+ }
118
+ //#endregion
119
+ //#region src/error/canceled-error.d.ts
120
+ declare class CanceledError extends Error {
121
+ readonly code = "CANCELED";
122
+ constructor(opts?: {
123
+ message?: string;
124
+ cause?: unknown;
125
+ });
126
+ }
127
+ //#endregion
128
+ //#region src/error/conversion-error.d.ts
129
+ declare class ConversionError extends Error {
130
+ readonly code = "MALFORMED_DATA";
131
+ readonly field?: string;
132
+ constructor(opts?: {
133
+ message?: string;
134
+ field?: string;
135
+ cause?: unknown;
136
+ });
137
+ }
138
+ //#endregion
139
+ //#region src/error/network-error.d.ts
140
+ declare class NetworkError extends Error {
141
+ readonly code = "NETWORK_ERROR";
142
+ constructor(opts?: {
143
+ message?: string;
144
+ cause?: unknown;
145
+ });
146
+ }
147
+ //#endregion
148
+ //#region src/error/timeout-error.d.ts
149
+ declare class TimeoutError extends Error {
150
+ readonly code = "TIMEOUT";
151
+ constructor(opts?: {
152
+ message?: string;
153
+ cause?: unknown;
154
+ });
155
+ }
156
+ //#endregion
157
+ //#region src/error/unknown-error.d.ts
158
+ declare class UnknownError extends Error {
159
+ readonly code = "UNKNOWN";
160
+ constructor(opts?: {
161
+ message?: string;
162
+ cause?: unknown;
163
+ });
164
+ }
165
+ //#endregion
166
+ //#region src/utils/application/enum-utils.d.ts
167
+ /**
168
+ * Try to map any input into one of the values of a TS enum.
169
+ *
170
+ * - Supports string and numeric enums.
171
+ * - Compares against both the enum’s KEY and VALUE (after normalization).
172
+ * - Skips the reverse-mapping keys TS emits for numeric enums (e.g. "0").
173
+ *
174
+ * @param input Anything; only strings/numbers are considered (others → null).
175
+ * @param enumObj The enum object to map into.
176
+ * @param options.normalize Optional normalizer (default: trim + uppercase).
177
+ * @returns One of the enum’s values (E[keyof E]) or null if no match.
178
+ */
179
+ declare function mapToEnum<E extends Record<string, string | number>>(input: unknown, enumObj: E, options?: {
180
+ normalize?: (s: string) => string;
181
+ }): E[keyof E] | null;
182
+ //#endregion
183
+ //#region src/utils/application/error-utils.d.ts
184
+ /**
185
+ * Checks if a value is an Error instance.
186
+ *
187
+ * @param value - Value to check.
188
+ * @returns True if the value is an Error.
189
+ */
190
+ declare function isError(value: unknown): value is Error;
191
+ //#endregion
192
+ //#region src/utils/application/object-utils.d.ts
193
+ interface ObjectFilterOptions {
194
+ filterNull?: boolean;
195
+ filterUndefined?: boolean;
196
+ filterEmptyString?: boolean;
197
+ filterEmptyObject?: boolean;
198
+ filterEmptyArray?: boolean;
199
+ }
200
+ /**
201
+ * Recursively filters properties from an object based on the provided options.
202
+ *
203
+ * @template T - The type of the object to filter.
204
+ * @param {T} obj - The object to filter.
205
+ * @param {ObjectFilterOptions} [options={}] - Options that determine which properties to filter out.
206
+ * @param {boolean} [options.filterNull=true] - If true, properties with null values will be filtered out.
207
+ * @param {boolean} [options.filterUndefined=true] - If true, properties with undefined values will be filtered out.
208
+ * @param {boolean} [options.filterEmptyString=false] - If true, properties with empty string values will be filtered out.
209
+ * @param {boolean} [options.filterEmptyObject=false] - If true, properties with empty object values will be filtered out.
210
+ * @param {boolean} [options.filterEmptyArray=false] - If true, properties with empty array values will be filtered out.
211
+ * @returns {Partial<T>} - A new object with the filtered properties.
212
+ */
213
+ declare function filterObject<T extends object | null | undefined>(obj: T, options?: ObjectFilterOptions): Partial<T>;
214
+ /**
215
+ * Checks if a value is an object.
216
+ *
217
+ * @param {unknown} value - The value to check.
218
+ * @returns {value is object} - True if the value is an object, false otherwise.
219
+ */
220
+ declare function isObject(value: unknown): value is object;
221
+ /**
222
+ * Checks if a value is an empty object.
223
+ * This checks if the object is null, undefined, or an empty object and returns a type guard.
224
+ *
225
+ * @param {T | null | undefined} value - The value to check.
226
+ * @returns {value is T} - True if the value is an empty object, false otherwise.
227
+ */
228
+ declare function isEmptyObject<T extends object>(value: T | null | undefined): value is T;
229
+ /**
230
+ * Checks if a value is a non-empty object, ensuring it is not null, undefined, or empty.
231
+ * This acts as a type guard.
232
+ *
233
+ * @param {T | null | undefined} value - The value to check.
234
+ * @returns {value is T} - True if the value is a non-empty object, false otherwise.
235
+ */
236
+ declare function isNonEmptyObject<T extends object>(value: T | null | undefined): value is T;
237
+ /**
238
+ * Checks if a value is a plain object (not a class instance or built-in object).
239
+ *
240
+ * @param {unknown} value - The value to check.
241
+ * @returns {value is Record<string, any>} - True if the value is a plain object, false otherwise.
242
+ */
243
+ declare function isPlainObject(value: unknown): value is Record<string, any>;
244
+ //#endregion
245
+ //#region src/utils/application/optional-utils.d.ts
246
+ /**
247
+ * Excludes `undefined` from the given type `T`.
248
+ *
249
+ * @template T - The type to evaluate.
250
+ * @example
251
+ * type A = NonUndefined<string | undefined>; // string
252
+ * type B = NonUndefined<number | null | undefined>; // number | null
253
+ * type C = NonUndefined<undefined>; // never
254
+ */
255
+ type NonUndefined<T> = T extends undefined ? never : T;
256
+ /**
257
+ * A type that represents a value that can be null or undefined.
258
+ *
259
+ * @template T
260
+ */
261
+ type OptionalValue<T> = T | null | undefined;
262
+ /**
263
+ * Wraps a value to provide optional-aware operations.
264
+ *
265
+ * @template T
266
+ */
267
+ declare class Optional<T> {
268
+ private readonly value;
269
+ constructor(value: T | null | undefined);
270
+ /**
271
+ * Checks if the value is `null` or `undefined`.
272
+ *
273
+ * @returns {boolean}
274
+ * True if the contained value is `null` or `undefined`.
275
+ */
276
+ get isNil(): boolean;
277
+ /**
278
+ * Applies a transformation if the value is present.
279
+ *
280
+ * @param {(value: T) => U} transform
281
+ * A function to apply to the contained value.
282
+ * @template U
283
+ * @returns {Optional<U>}
284
+ * A new Optional wrapping the transformed value, or `Optional<null>` if absent.
285
+ */
286
+ map<U>(transform: (value: T) => U): Optional<U>;
287
+ /**
288
+ * Applies a transformation and expects an Optional as the result.
289
+ * Useful for chaining nested Optionals.
290
+ *
291
+ * @param {(value: T) => Optional<U>} transform
292
+ * A function returning an Optional.
293
+ * @template U
294
+ * @returns {Optional<U>}
295
+ * The result of the transformation, or `Optional<null>` if absent.
296
+ */
297
+ flatMap<U>(transform: (value: T) => Optional<U>): Optional<U>;
298
+ /**
299
+ * Returns the contained value if not null or undefined, or the result of the provided closure otherwise.
300
+ *
301
+ * @param {() => T} closure
302
+ * A function that returns a default value.
303
+ * @returns {T}
304
+ * The contained value if present, or the result of `closure()`.
305
+ */
306
+ or(closure: () => T): T;
307
+ /**
308
+ * Returns the contained value if not null or undefined, otherwise throws the specified error.
309
+ * If no error is provided, throws a default `Error('Conversion Error')`.
310
+ *
311
+ * @param {Error} [error]
312
+ * Optional error to throw if the value is absent.
313
+ * @returns {T}
314
+ * The contained value if present.
315
+ * @throws {Error}
316
+ * The provided error, or `Error('Conversion Error')` if none provided.
317
+ */
318
+ orThrow(error?: Error): T;
319
+ /**
320
+ * Returns the contained value if not null or undefined, or the provided default value otherwise.
321
+ * Allows `null` as a default only if `T | null` is assignable to the expected type.
322
+ *
323
+ * @param {U} defaultValue
324
+ * A default value to return if the contained value is absent.
325
+ * @template U
326
+ * @returns {T | U}
327
+ * The contained value if present, or `defaultValue` otherwise.
328
+ */
329
+ orDefault<U>(defaultValue: U): T | U;
330
+ /**
331
+ * If the value is present, applies the provided function to it.
332
+ *
333
+ * @param {(value: T) => void} closure
334
+ * A function to execute if the value is present.
335
+ * @returns {this}
336
+ * The current Optional instance for chaining.
337
+ */
338
+ ifPresent(closure: (value: T) => void): this;
339
+ /**
340
+ * If the value is absent (`null` or `undefined`), executes the provided function.
341
+ *
342
+ * @param {() => void} closure
343
+ * A function to execute if the value is absent.
344
+ * @returns {this}
345
+ * The current Optional instance for chaining.
346
+ */
347
+ ifAbsent(closure: () => void): this;
348
+ }
349
+ /**
350
+ * Wraps a value in an `Optional` instance.
351
+ *
352
+ * @param {T | null | undefined} value
353
+ * The value to wrap.
354
+ * @template T
355
+ * @returns {Optional<T>}
356
+ * An instance of `Optional` containing the given value.
357
+ */
358
+ declare function optional<T>(value: T | null | undefined): Optional<T>;
359
+ /**
360
+ * Checks if a value is defined (not `undefined`).
361
+ *
362
+ * @param {OptionalValue<T>} value
363
+ * The value to check.
364
+ * @template T
365
+ * @returns {boolean}
366
+ * True if the value is not `undefined`.
367
+ */
368
+ declare function isDefined<T>(value: OptionalValue<T>): value is NonUndefined<T>;
369
+ /**
370
+ * Checks if a value is not `null`.
371
+ *
372
+ * @param {OptionalValue<T>} value
373
+ * The value to check.
374
+ * @template T
375
+ * @returns {boolean}
376
+ * True if the value is not `null`.
377
+ */
378
+ declare function isNotNull<T>(value: OptionalValue<T>): value is NonNullable<T>;
379
+ /**
380
+ * Checks if a value is defined (not `undefined`) and not `null`.
381
+ *
382
+ * @param {OptionalValue<T>} value
383
+ * The value to check.
384
+ * @template T
385
+ * @returns {boolean}
386
+ * True if the value is neither `undefined` nor `null`.
387
+ */
388
+ declare function isDefinedAndNotNull<T>(value: OptionalValue<T>): value is NonNullable<T>;
389
+ /**
390
+ * Executes a function and wraps the result in an Optional.
391
+ * If the function throws, returns an Optional with `null` value.
392
+ *
393
+ * @param fn - The function to execute.
394
+ * @template T
395
+ * @returns An Optional wrapping the function result, or `Optional<null>` if an error occurs.
396
+ *
397
+ * @example
398
+ * // A) single-expression sync (no braces, no return)
399
+ * const optA = ignoreError(() => JSON.parse('{ bad json }'));
400
+ * // optA.isNil === true
401
+ *
402
+ * @example
403
+ * // B) block-body sync (braces, implicit return via function result)
404
+ * const optB = ignoreError(() => {
405
+ * // might throw
406
+ * return JSON.parse('{"ok":true}');
407
+ * });
408
+ * // optB.or(() => ({ ok: false })) === { ok: true }
409
+ *
410
+ * @example
411
+ * // C) throwing sync
412
+ * const optC = ignoreError(() => { throw new Error('ouch'); });
413
+ * // optC.isNil === true
414
+ */
415
+ declare function ignoreError<T>(fn: () => T): Optional<T>;
416
+ /**
417
+ * Executes the provided function and suppresses any errors.
418
+ * Supports both synchronous and asynchronous bodies.
419
+ * Optionally handles any error via `onError`.
420
+ *
421
+ * @param fn
422
+ * A function that can return a value or a Promise.
423
+ * @param onError
424
+ * Optional function that handles the error.
425
+ * @returns Promise that always resolves to void.
426
+ *
427
+ * @example
428
+ * // A) single-expression async return
429
+ * await ignoreErrorAsync(() => cleanupTempFiles());
430
+ *
431
+ * @example
432
+ * // B) block-body sync (fn returns void)
433
+ * await ignoreErrorAsync(() => {
434
+ * console.log('might throw');
435
+ * // no return needed
436
+ * });
437
+ *
438
+ * @example
439
+ * // C) block-body returning a Promise
440
+ * await ignoreErrorAsync(() => {
441
+ * return fetch('/api/data');
442
+ * }, err => {
443
+ * console.warn('fetch failed:', err);
444
+ * });
445
+ *
446
+ * @example
447
+ * // D) async wrapper (can use await inside)
448
+ * await ignoreErrorAsync(async () => {
449
+ * await cleanupTempFiles();
450
+ * await notifyAdmin();
451
+ * }, err => {
452
+ * console.error('cleanup+notify failed:', err);
453
+ * });
454
+ */
455
+ declare function ignoreErrorAsync(fn: () => any | Promise<any>, onError?: (error: any) => void): Promise<void>;
456
+ /**
457
+ * Executes an async function and wraps the result in an Optional.
458
+ * If the function throws, returns an Optional with `null` value.
459
+ *
460
+ * @param fn - The async function to execute.
461
+ * @param onError - Optional handler for any thrown error.
462
+ * @template T
463
+ * @returns Promise<Optional<T>> wrapping the result or null.
464
+ *
465
+ * @example
466
+ * // A) simple async call
467
+ * const optA = await ignoreErrorOptionalAsync(() => fetchJson('/user'));
468
+ * // optA.ifPresent(data => console.log(data))
469
+ *
470
+ * @example
471
+ * // B) block-body async with error callback
472
+ * const optB = await ignoreErrorOptionalAsync(async () => {
473
+ * const resp = await fetch('/user');
474
+ * return resp.json();
475
+ * }, err => {
476
+ * console.error('load user failed:', err);
477
+ * });
478
+ *
479
+ * @example
480
+ * // C) explicit return of promise
481
+ * const optC = await ignoreErrorOptionalAsync(() => fetchJson('/settings'));
482
+ */
483
+ declare function ignoreErrorOptionalAsync<T>(fn: () => Promise<T>, onError?: (error: unknown) => void): Promise<Optional<T>>;
484
+ //#endregion
485
+ //#region src/utils/application/promise-utils.d.ts
486
+ type Awaitable<T> = T | Promise<T>;
487
+ declare function delay(ms: number): Promise<void>;
488
+ //#endregion
489
+ //#region src/utils/application/string-utils.d.ts
490
+ /**
491
+ * Checks if the value is a string and non-empty after trimming.
492
+ *
493
+ * @param value The value to check.
494
+ * @returns True if value is a non-empty string.
495
+ */
496
+ declare function isNonEmptyString(value: unknown): value is string;
497
+ /**
498
+ * Checks if the value is null, undefined, or an empty string after trimming.
499
+ *
500
+ * @param value The value to check.
501
+ * @returns True if value is null, undefined, or empty string.
502
+ */
503
+ declare function isNullOrEmpty(value: unknown): value is null | undefined | '';
504
+ /**
505
+ * Transforms an empty string or undefined to `null`. Otherwise, returns the string as is.
506
+ */
507
+ declare function emptyOrUndefinedStringToNull(value: unknown): string | null;
508
+ /**
509
+ * Capitalizes the first character of a string.
510
+ * Returns `null` if the input is not a valid non-empty string.
511
+ */
512
+ declare function capitalized(value: unknown): string | null;
513
+ //#endregion
514
+ //#region src/utils/domain/empty.d.ts
515
+ type Empty = Record<string, never>;
516
+ //#endregion
517
+ //#region src/utils/domain/json-serializable.d.ts
518
+ /**
519
+ * JSON primitive.
520
+ *
521
+ * @remarks Valid JSON primitive types are: string, number, boolean, null.
522
+ */
523
+ type JSONPrimitive = string | number | boolean | null;
524
+ /**
525
+ * JSON object (string keys, JSON values).
526
+ *
527
+ * @remarks Keys must be strings. Values must be valid {@link JSONValue}.
528
+ */
529
+ type JSONObject = {
530
+ [key: string]: JSONValue;
531
+ };
532
+ /**
533
+ * Any JSON value.
534
+ *
535
+ * @remarks Safe to pass to `JSON.stringify` and read back with `JSON.parse`.
536
+ */
537
+ type JSONValue = JSONPrimitive | JSONObject | ReadonlyArray<JSONValue>;
538
+ /**
539
+ * Implemented by types that can serialize themselves to JSON.
540
+ */
541
+ interface JSONSerializable {
542
+ /**
543
+ * Convert this instance to a JSON value.
544
+ *
545
+ * @returns A {@link JSONValue} suitable for `JSON.stringify`.
546
+ */
547
+ toJSON(): JSONValue;
548
+ }
549
+ /**
550
+ * Checks whether a value is a JSON primitive.
551
+ *
552
+ * @param value - Input value to test.
553
+ * @returns `true` if `value` is a JSON primitive (`string | number | boolean | null`), otherwise `false`.
554
+ */
555
+ declare function isJSONPrimitive(value: unknown): value is JSONPrimitive;
556
+ /**
557
+ * Checks whether a value implements {@link JSONSerializable}.
558
+ *
559
+ * @param value - Input value to test.
560
+ * @returns `true` if `value` is a non-null object with a `toJSON()` function, otherwise `false`.
561
+ */
562
+ declare function isJSONSerializable(value: unknown): value is JSONSerializable;
563
+ //#endregion
564
+ //#region src/utils/domain/partial.d.ts
565
+ /**
566
+ * Recursively makes all properties of an object type optional, including nested objects.
567
+ *
568
+ * This is useful when you want to construct partial configuration or input objects,
569
+ * where any depth of nesting may be optionally provided.
570
+ *
571
+ * @template T The object type to transform.
572
+ *
573
+ * @example
574
+ * type User = {
575
+ * name: string;
576
+ * profile: {
577
+ * age: number;
578
+ * location: string;
579
+ * };
580
+ * };
581
+ *
582
+ * type PartialUser = DeepPartial<User>;
583
+ * // Equivalent to:
584
+ * // {
585
+ * // name?: string;
586
+ * // profile?: {
587
+ * // age?: number;
588
+ * // location?: string;
589
+ * // };
590
+ * // }
591
+ */
592
+ type DeepPartial<T> = { [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]; };
593
+ /**
594
+ * Makes only the leaf (non-object) properties of a type optional,
595
+ * while preserving the required structure of nested objects.
596
+ *
597
+ * Special handling for `Date`: it is treated as a leaf and made optional.
598
+ *
599
+ * @template T The object type to transform.
600
+ *
601
+ * @example
602
+ * type User = {
603
+ * name: string;
604
+ * profile: {
605
+ * age: number;
606
+ * location: string;
607
+ * createdAt: Date;
608
+ * };
609
+ * };
610
+ *
611
+ * type OptionalUser = OptionalPartial<User>;
612
+ * // Equivalent to:
613
+ * // {
614
+ * // name?: string;
615
+ * // profile: {
616
+ * // age?: number;
617
+ * // location?: string;
618
+ * // createdAt?: Date;
619
+ * // };
620
+ * // }
621
+ */
622
+ type OptionalPartial<T> = { [K in keyof T]: T[K] extends object ? T[K] extends Date ? T[K] | undefined : OptionalPartial<T[K]> : T[K] | undefined; };
623
+ //#endregion
624
+ //#region src/utils/domain/primitive.d.ts
625
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined;
626
+ /**
627
+ * Checks if a value is a JavaScript primitive.
628
+ *
629
+ * @param value - The value to check.
630
+ * @returns True if the value is a primitive.
631
+ */
632
+ declare function isPrimitive(value: unknown): value is Primitive;
633
+ //#endregion
634
+ //#region src/utils/domain/query.d.ts
635
+ type Query<T> = { [P in keyof T]?: T[P]; };
636
+ //#endregion
637
+ //#region src/utils/domain/required.d.ts
638
+ /**
639
+ * Deeply marks all properties as required (including nested objects and arrays).
640
+ * @template T
641
+ */
642
+ type DeepRequired<T> = T extends ((...args: unknown[]) => unknown) ? T : T extends Primitive ? T : T extends Array<infer U> ? Array<DeepRequired<U>> : T extends Array<infer U> ? Array<DeepRequired<U>> : { [K in keyof T]-?: DeepRequired<NonNullable<T[K]>>; };
643
+ //#endregion
644
+ //#region src/utils/extensions/array-extensions.d.ts
645
+ declare global {
646
+ interface Array<T> {
647
+ /**
648
+ * Checks if the array is empty or undefined or null.
649
+ * @returns `true` if the array is empty, undefined, or null; otherwise `false`.
650
+ */
651
+ isEmpty(): boolean;
652
+ }
653
+ }
654
+ //#endregion
655
+ //#region src/utils/extensions/string-extensions.d.ts
656
+ declare global {
657
+ interface String {
658
+ capitalized(): string;
659
+ }
660
+ }
661
+ //#endregion
662
+ //#region src/model/address.d.ts
663
+ declare class Address implements JSONSerializable {
664
+ streetLine1: string;
665
+ streetLine2?: string | null;
666
+ postalCode?: string | null;
667
+ state?: string | null;
668
+ city?: string | null;
669
+ country: string;
670
+ countryCode?: string | null;
671
+ constructor(input: {
672
+ streetLine1: string;
673
+ streetLine2?: string | null;
674
+ postalCode?: string | null;
675
+ state?: string | null;
676
+ city?: string | null;
677
+ country: string;
678
+ countryCode?: string | null;
679
+ });
680
+ toJSON(): any;
681
+ formatted(): string;
682
+ }
683
+ //#endregion
684
+ //#region src/model/contacts.d.ts
685
+ declare class Contacts implements JSONSerializable {
686
+ email?: string | null;
687
+ fb?: string | null;
688
+ ig?: string | null;
689
+ phone?: string | null;
690
+ web?: string | null;
691
+ constructor({ email, fb, ig, phone, web }: {
692
+ email?: string | null;
693
+ fb?: string | null;
694
+ ig?: string | null;
695
+ phone?: string | null;
696
+ web?: string | null;
697
+ });
698
+ toJSON(): any;
699
+ }
700
+ //#endregion
701
+ //#region src/model/date-time.d.ts
702
+ /**
703
+ * A date-and-time utility class offering parsing, formatting, and arithmetic.
704
+ *
705
+ * - Instantiate with no arguments for current date/time.
706
+ * - Instantiate with a `Date` or ISO-format string.
707
+ *
708
+ * @throws {Error} If the provided date input is invalid.
709
+ *
710
+ * @example
711
+ * const now = new DateTime();
712
+ * const fromDate = new DateTime(new Date('2022-12-12'));
713
+ * const fromIso = new DateTime('2022-12-12T00:00:00Z');
714
+ */
715
+ declare class DateTime implements JSONSerializable {
716
+ private readonly date;
717
+ /**
718
+ * @param {Date | string} [input]
719
+ * A Date object or ISO-format date string. Omit to use current date/time.
720
+ * @throws {Error}
721
+ * If `input` is neither a valid Date nor a parseable string.
722
+ */
723
+ constructor(input?: Date | string);
724
+ /**
725
+ * Static method to create a DateTime from a Unix timestamp (seconds).
726
+ * @param {number} unixTimestamp - The Unix timestamp in seconds.
727
+ * @param {FromUnixTimeOptions} options
728
+ * @returns {DateTime}
729
+ */
730
+ static fromUnixTimestamp(unixTimestamp: number, options?: FromUnixTimeOptions): DateTime;
731
+ /** @returns The current moment as a DateTime. */
732
+ static now(): DateTime;
733
+ /**
734
+ * JSON.stringify will look for `toJSON()` first, so
735
+ * we emit an ISO string by default.
736
+ */
737
+ toJSON(): string;
738
+ /** @returns The wrapped JavaScript Date. */
739
+ toDate(): Date;
740
+ /** @returns The Unix timestamp in seconds. */
741
+ toUnixTimestamp(): number;
742
+ /**
743
+ * Returns the time value in milliseconds (similar to getTime() method of Date).
744
+ * @returns {number} The time in milliseconds.
745
+ */
746
+ getTime(): number;
747
+ /** @returns An ISO‐8601 string. */
748
+ toISOString(): string;
749
+ /**
750
+ * Formats this DateTime using the given pattern.
751
+ *
752
+ * @param pattern
753
+ * A format string (for example, one of the `DateFormat` values or
754
+ * any custom string).
755
+ * @param options
756
+ * Optional `{ locale?: Locale }` for localized month/day names.
757
+ * @returns
758
+ * The formatted date string.
759
+ *
760
+ * @example
761
+ * ```ts
762
+ * const dt = new DateTime('2025-06-05T14:30:00Z');
763
+ * console.log(dt.format(DateFormat.ISO_DATETIME)); // "2025-06-05T14:30:00+00:00"
764
+ * console.log(dt.format(DateFormat.MM_DD_YYYY)); // "06/05/2025"
765
+ * console.log(dt.format(DateFormat.RSS)); // "Fri, 05 Jun 2025 14:30:00 +0000"
766
+ * console.log(dt.format('yyyy/MM/dd HH:mm:ss')); // "2025/06/05 14:30:00"
767
+ * ```
768
+ */
769
+ format(pattern: DateFormat | string, options?: FormatOptions): string;
770
+ addingDuration(duration: Duration): DateTime;
771
+ addingMilliseconds(msCount: number): DateTime;
772
+ addingSeconds(sec: number): DateTime;
773
+ addingMinutes(min: number): DateTime;
774
+ addingHours(hr: number): DateTime;
775
+ addingDays(d: number): DateTime;
776
+ addingWeeks(w: number): DateTime;
777
+ addingMonths(m: number): DateTime;
778
+ addingYears(y: number): DateTime;
779
+ subtractingDuration(duration: Duration): DateTime;
780
+ subtractingMilliseconds(msCount: number): DateTime;
781
+ subtractingSeconds(sec: number): DateTime;
782
+ subtractingMinutes(min: number): DateTime;
783
+ subtractingHours(hr: number): DateTime;
784
+ subtractingDays(d: number): DateTime;
785
+ subtractingWeeks(w: number): DateTime;
786
+ subtractingMonths(m: number): DateTime;
787
+ subtractingYears(y: number): DateTime;
788
+ differenceInMilliseconds(other: DateTime): number;
789
+ differenceInSeconds(other: DateTime): number;
790
+ differenceInMinutes(other: DateTime): number;
791
+ differenceInHours(other: DateTime): number;
792
+ differenceInDays(other: DateTime): number;
793
+ differenceInWeeks(other: DateTime): number;
794
+ differenceInMonths(other: DateTime): number;
795
+ differenceInYears(other: DateTime): number;
796
+ isEqualTo(other: DateTime): boolean;
797
+ isBefore(other: DateTime): boolean;
798
+ isAfter(other: DateTime): boolean;
799
+ compareTo(other: DateTime): number;
800
+ isSameDayAs(other: DateTime): boolean;
801
+ startOfDay(): DateTime;
802
+ endOfDay(): DateTime;
803
+ startOfWeek(): DateTime;
804
+ endOfWeek(): DateTime;
805
+ startOfMonth(): DateTime;
806
+ endOfMonth(): DateTime;
807
+ startOfYear(): DateTime;
808
+ endOfYear(): DateTime;
809
+ /** Day of month (1–31). */
810
+ get dayOfMonth(): number;
811
+ /** Day of week (0–6, 0 = Sunday). */
812
+ get dayOfWeek(): number;
813
+ /** Month (0–11). */
814
+ get month(): number;
815
+ /** Year. */
816
+ get year(): number;
817
+ /** Hours (0–23). */
818
+ get hours(): number;
819
+ /** Minutes (0–59). */
820
+ get minutes(): number;
821
+ /** Seconds (0–59). */
822
+ get seconds(): number;
823
+ /**
824
+ * Sets the day of the month.
825
+ *
826
+ * @param day Day of the month (1–31).
827
+ * @returns {DateTime}
828
+ */
829
+ settingDayOfMonth(day: number): DateTime;
830
+ /**
831
+ * Sets the day of the week.
832
+ *
833
+ * @param day Day of the week (0–6, 0 = Sunday).
834
+ * @returns {DateTime}
835
+ */
836
+ settingDayOfWeek(day: number): DateTime;
837
+ /**
838
+ * Sets the month.
839
+ *
840
+ * @param month Month (0–11).
841
+ * @returns {DateTime}
842
+ */
843
+ settingMonth(month: number): DateTime;
844
+ /**
845
+ * Sets the year.
846
+ *
847
+ * @param year Year.
848
+ * @returns {DateTime}
849
+ */
850
+ settingYear(year: number): DateTime;
851
+ /**
852
+ * Sets the hours.
853
+ *
854
+ * @param hours Hours (0–23).
855
+ * @returns {DateTime}
856
+ */
857
+ settingHours(hours: number): DateTime;
858
+ /**
859
+ * Sets the minutes.
860
+ *
861
+ * @param minutes Minutes (0–59).
862
+ * @returns {DateTime}
863
+ */
864
+ settingMinutes(minutes: number): DateTime;
865
+ /**
866
+ * Sets the seconds.
867
+ *
868
+ * @param seconds Seconds (0–59).
869
+ * @returns {DateTime}
870
+ */
871
+ settingSeconds(seconds: number): DateTime;
872
+ }
873
+ declare enum DateFormat {
874
+ /** ISO date only (yyyy-MM-dd), e.g. "2025-06-05" */
875
+ ISO_DATE = "yyyy-MM-dd",
876
+ /** ISO date + time with offset, e.g. "2025-06-05T13:24:00+00:00" */
877
+ ISO_DATETIME = "yyyy-MM-dd'T'HH:mm:ssXXX",
878
+ /** Month/day/year, e.g. "06/05/2025" */
879
+ MM_DD_YYYY = "MM/dd/yyyy",
880
+ /** Full month name + day + year, e.g. "June 5, 2025" */
881
+ FULL_MONTH_DAY_YEAR = "MMMM d, yyyy",
882
+ /** Abbreviated month + day + year, e.g. "Jun 5, 2025" */
883
+ ABBR_MONTH_DAY_YEAR = "MMM d, yyyy",
884
+ /** RFC-3339 with milliseconds, e.g. "2025-06-05T13:24:00.000Z" */
885
+ RFC_3339 = "yyyy-MM-dd'T'HH:mm:ss.SSSxxx",
886
+ /** Alternative RSS date, e.g. "09 Sep 2011 15:26:08 +0200" */
887
+ ALT_RSS = "d MMM yyyy HH:mm:ss ZZZ",
888
+ /** Standard RSS date, e.g. "Fri, 09 Sep 2011 15:26:08 +0200" */
889
+ RSS = "EEE, d MMM yyyy HH:mm:ss ZZZ",
890
+ /** HTTP header date, e.g. "Tue, 15 Nov 1994 12:45:26 GMT" */
891
+ HTTP_HEADER = "EEE, dd MMM yyyy HH:mm:ss zzz",
892
+ /** Generic standard format, e.g. "Fri Sep 09 15:26:08 +0000 2011" */
893
+ STANDARD = "EEE MMM dd HH:mm:ss Z yyyy",
894
+ /** Extended format, e.g. "Fri 09-Sep-2011 AD 15:26:08.000 UTC" */
895
+ EXTENDED = "eee dd-MMM-yyyy GG HH:mm:ss.SSS zzz"
896
+ }
897
+ //#endregion
898
+ //#region src/model/zoned-date-time.d.ts
899
+ /**
900
+ * A UTC instant paired with an IANA time zone for formatting and conversions.
901
+ *
902
+ * @example
903
+ * const zoned = ZonedDateTime.fromUtc(new Date(), 'Europe/Bratislava')
904
+ * zoned.toLocalIsoMinutes()
905
+ */
906
+ declare class ZonedDateTime {
907
+ /**
908
+ * UTC instant (truth).
909
+ *
910
+ * @default new Date()
911
+ * @output Date
912
+ */
913
+ readonly utc: Date;
914
+ /**
915
+ * IANA time zone identifier.
916
+ *
917
+ * @output string
918
+ * @example "Europe/Bratislava"
919
+ */
920
+ readonly timeZone: string;
921
+ /**
922
+ * @input timeZone IANA time zone identifier.
923
+ * @input utc UTC instant. Defaults to `new Date()`.
924
+ * @output ZonedDateTime
925
+ * @example new ZonedDateTime('Europe/Bratislava', new Date('2025-12-31T23:30:00.000Z'))
926
+ */
927
+ constructor(timeZone: string, utc?: Date);
928
+ /**
929
+ * Create from a UTC instant.
930
+ *
931
+ * @input utc UTC instant.
932
+ * @input timeZone IANA time zone identifier.
933
+ * @output ZonedDateTime
934
+ * @example ZonedDateTime.fromUtc(new Date('2025-12-31T23:30:00.000Z'), 'Europe/Bratislava')
935
+ */
936
+ static fromUtc(utc: Date, timeZone: string): ZonedDateTime;
937
+ /**
938
+ * Create from a local wall-clock time interpreted in the provided time zone.
939
+ *
940
+ * @input localIso Local date-time without offset: "YYYY-MM-DDTHH:mm" (or with seconds).
941
+ * @input timeZone IANA time zone identifier.
942
+ * @output ZonedDateTime
943
+ * @example ZonedDateTime.fromLocalIso('2026-01-01T18:00', 'Europe/Bratislava').toISOString()
944
+ */
945
+ static fromLocalIso(localIso: string, timeZone: string): ZonedDateTime;
946
+ /**
947
+ * Format this instant in the configured time zone.
948
+ *
949
+ * @input pattern date-fns format pattern.
950
+ * @input options date-fns-tz format options (locale, weekStartsOn, etc).
951
+ * @output string
952
+ * @example zoned.format("yyyy-MM-dd'T'HH:mm")
953
+ */
954
+ format(pattern: string, options?: FormatOptionsWithTZ): string;
955
+ /**
956
+ * Local ISO string without offset, minute precision.
957
+ *
958
+ * @output string
959
+ * @example zoned.toLocalIsoMinutes()
960
+ */
961
+ toLocalIsoMinutes(options?: FormatOptionsWithTZ): string;
962
+ /**
963
+ * Local ISO string without offset, second precision.
964
+ *
965
+ * @output string
966
+ * @example zoned.toLocalIsoSeconds()
967
+ */
968
+ toLocalIsoSeconds(options?: FormatOptionsWithTZ): string;
969
+ /**
970
+ * UTC ISO string (always Z).
971
+ *
972
+ * @output string
973
+ * @example zoned.toISOString()
974
+ */
975
+ toISOString(): string;
976
+ /**
977
+ * Unix timestamp in seconds.
978
+ *
979
+ * @output number
980
+ * @example zoned.toUnixTimestamp()
981
+ */
982
+ toUnixTimestamp(): number;
983
+ /**
984
+ * Date that formats to the local time of `timeZone` (useful for date pickers).
985
+ *
986
+ * @output Date
987
+ * @example const pickerDate = zoned.toZonedDate()
988
+ */
989
+ toZonedDate(): Date;
990
+ /**
991
+ * Offset in milliseconds between the configured time zone and UTC at the given instant.
992
+ *
993
+ * @input atUtc UTC instant to evaluate offset at. Defaults to this.utc.
994
+ * @output number
995
+ * @example zoned.timezoneOffsetMs()
996
+ */
997
+ timezoneOffsetMs(atUtc?: Date): number;
998
+ }
999
+ //#endregion
1000
+ //#region src/model/geojson.d.ts
1001
+ /**
1002
+ * Represents a coordinate pair.
1003
+ *
1004
+ * @property {number} longitude The longitude value (−180 to 180).
1005
+ * @property {number} latitude The latitude value (−90 to 90).
1006
+ *
1007
+ * @throws {Error} If longitude or latitude are out of range.
1008
+ */
1009
+ declare class Coordinates implements JSONSerializable {
1010
+ readonly value: [number, number];
1011
+ constructor([longitude, latitude]: [number, number]);
1012
+ /**
1013
+ * @returns {number} The longitude.
1014
+ */
1015
+ get longitude(): number;
1016
+ /**
1017
+ * @returns {number} The latitude.
1018
+ */
1019
+ get latitude(): number;
1020
+ /**
1021
+ * Custom JSON serialization.
1022
+ *
1023
+ * @returns {[number, number]} Plain tuple [lon, lat]
1024
+ */
1025
+ toJSON(): [number, number];
1026
+ }
1027
+ /**
1028
+ * Base GeoJSON object.
1029
+ *
1030
+ * @property {GeoJsonTypes} type The GeoJSON object type.
1031
+ * @property {BBox} [bbox] Optional bounding box array.
1032
+ */
1033
+ interface GeoJsonObject {
1034
+ type: GeoJsonTypes;
1035
+ bbox?: BBox;
1036
+ }
1037
+ /**
1038
+ * Point geometry.
1039
+ *
1040
+ * @property {'Point'} type
1041
+ * @property {Coordinates} coordinates The coordinate pair.
1042
+ * @property {BBox} [bbox] Optional bounding box.
1043
+ */
1044
+ declare class Point implements GeoJsonObject, JSONSerializable {
1045
+ readonly type = GeoJsonType.Point;
1046
+ coordinates: Coordinates;
1047
+ bbox?: BBox;
1048
+ constructor(coordinates: Coordinates, bbox?: BBox);
1049
+ toJSON(): any;
1050
+ }
1051
+ /**
1052
+ * MultiPoint geometry.
1053
+ *
1054
+ * @property {'MultiPoint'} type
1055
+ * @property {Coordinates[]} coordinates Array of coordinate pairs.
1056
+ * @property {BBox} [bbox] Optional bounding box.
1057
+ */
1058
+ declare class MultiPoint implements GeoJsonObject, JSONSerializable {
1059
+ readonly type = GeoJsonType.MultiPoint;
1060
+ coordinates: Coordinates[];
1061
+ bbox?: BBox;
1062
+ constructor(coordinates: Coordinates[], bbox?: BBox);
1063
+ toJSON(): any;
1064
+ }
1065
+ /**
1066
+ * LineString geometry.
1067
+ *
1068
+ * @property {'LineString'} type
1069
+ * @property {Coordinates[]} coordinates Array of coordinate pairs.
1070
+ * @property {BBox} [bbox] Optional bounding box.
1071
+ */
1072
+ declare class LineString implements GeoJsonObject, JSONSerializable {
1073
+ readonly type = GeoJsonType.LineString;
1074
+ coordinates: Coordinates[];
1075
+ bbox?: BBox;
1076
+ constructor(coordinates: Coordinates[], bbox?: BBox);
1077
+ toJSON(): any;
1078
+ }
1079
+ /**
1080
+ * MultiLineString geometry.
1081
+ *
1082
+ * @property {'MultiLineString'} type
1083
+ * @property {Coordinates[][]} coordinates Array of LineStrings (arrays of Coordinates).
1084
+ * @property {BBox} [bbox] Optional bounding box.
1085
+ */
1086
+ declare class MultiLineString implements GeoJsonObject, JSONSerializable {
1087
+ readonly type = GeoJsonType.MultiLineString;
1088
+ coordinates: Coordinates[][];
1089
+ bbox?: BBox;
1090
+ constructor(coordinates: Coordinates[][], bbox?: BBox);
1091
+ toJSON(): any;
1092
+ }
1093
+ /**
1094
+ * Polygon geometry.
1095
+ *
1096
+ * @property {'Polygon'} type
1097
+ * @property {Coordinates[][]} coordinates Array of linear rings (arrays of Coordinates).
1098
+ * @property {BBox} [bbox] Optional bounding box.
1099
+ */
1100
+ declare class Polygon implements GeoJsonObject, JSONSerializable {
1101
+ readonly type = GeoJsonType.Polygon;
1102
+ coordinates: Coordinates[][];
1103
+ bbox?: BBox;
1104
+ constructor(coordinates: Coordinates[][], bbox?: BBox);
1105
+ toJSON(): any;
1106
+ }
1107
+ /**
1108
+ * MultiPolygon geometry.
1109
+ *
1110
+ * @property {'MultiPolygon'} type
1111
+ * @property {Coordinates[][][]} coordinates Array of Polygons (arrays of rings of Coordinates).
1112
+ * @property {BBox} [bbox] Optional bounding box.
1113
+ */
1114
+ declare class MultiPolygon implements GeoJsonObject, JSONSerializable {
1115
+ readonly type = GeoJsonType.MultiPolygon;
1116
+ coordinates: Coordinates[][][];
1117
+ bbox?: BBox;
1118
+ constructor(coordinates: Coordinates[][][], bbox?: BBox);
1119
+ toJSON(): any;
1120
+ }
1121
+ /**
1122
+ * Bounding box for GeoJSON geometries.
1123
+ *
1124
+ * - [minX, minY, maxX, maxY] or
1125
+ * - [minX, minY, minZ, maxX, maxY, maxZ].
1126
+ */
1127
+ type BBox = [number, number, number, number] | [number, number, number, number, number, number];
1128
+ /**
1129
+ * Union of all geometry types.
1130
+ */
1131
+ type Geometry = Point | MultiPoint | LineString | MultiLineString | Polygon | MultiPolygon;
1132
+ /**
1133
+ * Valid GeoJSON types, based on geometry classes.
1134
+ */
1135
+ type GeoJsonTypes = `${GeoJsonType}`;
1136
+ declare enum GeoJsonType {
1137
+ Point = "Point",
1138
+ MultiPoint = "MultiPoint",
1139
+ LineString = "LineString",
1140
+ MultiLineString = "MultiLineString",
1141
+ Polygon = "Polygon",
1142
+ MultiPolygon = "MultiPolygon"
1143
+ }
1144
+ //#endregion
1145
+ //#region src/model/object-id.d.ts
1146
+ /**
1147
+ * Immutable identifier value object.
1148
+ *
1149
+ * Stores a non-empty string and provides value-based equality, ordering,
1150
+ * hashing, and JSON serialization.
1151
+ */
1152
+ declare class ObjectId implements JSONSerializable {
1153
+ /**
1154
+ * Canonical identifier value.
1155
+ */
1156
+ readonly value: string;
1157
+ /**
1158
+ * Creates a new {@link ObjectId}.
1159
+ *
1160
+ * @param input Raw identifier value.
1161
+ * @throws {Error} If `input` is `null`, `undefined`, or an empty/whitespace-only string.
1162
+ *
1163
+ * @example
1164
+ * ```ts
1165
+ * const id = new ObjectId("507f1f77bcf86cd799439011");
1166
+ * ```
1167
+ */
1168
+ constructor(input: string | null | undefined);
1169
+ /**
1170
+ * Shorthand alias for {@link ObjectId.value}.
1171
+ *
1172
+ * Value as string semantic clarity.
1173
+ *
1174
+ * @returns Raw id string.
1175
+ *
1176
+ * @example
1177
+ * ```ts
1178
+ * const id = new ObjectId("abc");
1179
+ * id.asString; // "abc"
1180
+ * ```
1181
+ */
1182
+ get asString(): string;
1183
+ /**
1184
+ * Checks value equality.
1185
+ *
1186
+ * @param other Another id or raw string.
1187
+ * @returns `true` if both values match.
1188
+ *
1189
+ * @example
1190
+ * ```ts
1191
+ * id.equals("abc");
1192
+ * id.equals(new ObjectId("abc"));
1193
+ * ```
1194
+ */
1195
+ equals(other: ObjectId | string): boolean;
1196
+ /**
1197
+ * Compares two ids lexicographically.
1198
+ *
1199
+ * @param other Another id or raw string.
1200
+ * @returns -1 if less, 0 if equal, 1 if greater.
1201
+ *
1202
+ * @example
1203
+ * ```ts
1204
+ * ids.sort((a, b) => a.compare(b));
1205
+ * ```
1206
+ */
1207
+ compare(other: ObjectId | string): -1 | 0 | 1;
1208
+ /**
1209
+ * Returns a stable hash key for Maps/Sets.
1210
+ *
1211
+ * @returns String hash key.
1212
+ *
1213
+ * @example
1214
+ * ```ts
1215
+ * const map = new Map<string, number>();
1216
+ * map.set(id.hash(), 1);
1217
+ * ```
1218
+ */
1219
+ hash(): string;
1220
+ /**
1221
+ * Serializes to JSON as the raw identifier string.
1222
+ *
1223
+ * @returns Raw id value.
1224
+ */
1225
+ toJSON(): string;
1226
+ /**
1227
+ * Converts to string.
1228
+ *
1229
+ * @returns Raw id value.
1230
+ */
1231
+ toString(): string;
1232
+ /**
1233
+ * Coerces to a primitive string (e.g., template literals).
1234
+ *
1235
+ * @returns Raw id value.
1236
+ *
1237
+ * @example
1238
+ * ```ts
1239
+ * `${id}`;
1240
+ * ```
1241
+ */
1242
+ [Symbol.toPrimitive](): string;
1243
+ /**
1244
+ * Normalizes an id-like value into an {@link ObjectId}.
1245
+ *
1246
+ * @param value Raw string or {@link ObjectId}.
1247
+ * @returns Normalized {@link ObjectId} instance.
1248
+ *
1249
+ * @example
1250
+ * ```ts
1251
+ * const id = ObjectId.from("abc");
1252
+ * ```
1253
+ */
1254
+ static from(value: ObjectId | string): ObjectId;
1255
+ /**
1256
+ * Checks if a value can be used to construct an {@link ObjectId}.
1257
+ *
1258
+ * @param value Value to check.
1259
+ * @returns `true` if it is a non-empty string.
1260
+ */
1261
+ static isValid(value: unknown): value is string;
1262
+ /**
1263
+ * Creates a value-based set of unique id strings.
1264
+ *
1265
+ * Useful when you need deduplication independent of object identity.
1266
+ *
1267
+ * @param values Iterable of id-like values.
1268
+ * @returns Set of unique raw id strings.
1269
+ *
1270
+ * @example
1271
+ * ```ts
1272
+ * const unique = ObjectId.toValueSet([new ObjectId("a"), "a", "b"]);
1273
+ * unique.has("a"); // true
1274
+ * unique.size; // 2
1275
+ * ```
1276
+ */
1277
+ static toValueSet(values: Iterable<ObjectId | string>): Set<string>;
1278
+ }
1279
+ //#endregion
1280
+ //#region src/model/opening-hour.d.ts
1281
+ type OpeningHourInterval = {
1282
+ open: string;
1283
+ close: string;
1284
+ };
1285
+ declare class OpeningHour implements JSONSerializable {
1286
+ day: number;
1287
+ intervals: OpeningHourInterval[];
1288
+ constructor(day: number, intervals: OpeningHourInterval[]);
1289
+ toJSON(): any;
1290
+ }
1291
+ //#endregion
1292
+ //#region src/model/time-interval.d.ts
1293
+ /**
1294
+ * Represents a time interval in milliseconds, with helper methods for common time units.
1295
+ *
1296
+ * @param interval
1297
+ * A number (milliseconds), a string in ms format (e.g. "2d", "10h", "30m"),
1298
+ * or null/undefined (throws at runtime).
1299
+ *
1300
+ * @param options
1301
+ * Options passed directly to `ms()` when producing a string:
1302
+ * • `{ long: true }` produces a verbose form (e.g. "1 hour 30 minutes").
1303
+ *
1304
+ * @throws {Error}
1305
+ * If `interval` is null/undefined, or if a provided string cannot be parsed by `ms()`.
1306
+ *
1307
+ * @example
1308
+ * const t1 = new TimeInterval("2h");
1309
+ * console.log(t1.milliseconds); // 7200000
1310
+ * console.log(t1.hours); // 2
1311
+ * console.log(t1.formatted); // "2h"
1312
+ * console.log(t1.toString()); // "2h"
1313
+ *
1314
+ * @example
1315
+ * const t2 = new TimeInterval(15000, { long: true });
1316
+ * console.log(t2.seconds); // 15
1317
+ * console.log(t2.toString()); // "15 seconds"
1318
+ *
1319
+ * @example
1320
+ * try {
1321
+ * new TimeInterval("invalid");
1322
+ * } catch (err) {
1323
+ * console.error(err.message); // "Invalid interval format: invalid"
1324
+ * }
1325
+ *
1326
+ * @example
1327
+ * try {
1328
+ * new TimeInterval(null);
1329
+ * } catch (err) {
1330
+ * console.error(err.message); // "Invalid interval format: null"
1331
+ * }
1332
+ */
1333
+ declare class TimeInterval {
1334
+ private readonly _milliseconds;
1335
+ private readonly _long;
1336
+ constructor(interval: string | number | null | undefined, options?: {
1337
+ long: boolean;
1338
+ });
1339
+ /**
1340
+ * @returns The interval duration in milliseconds.
1341
+ */
1342
+ get milliseconds(): number;
1343
+ /**
1344
+ * @returns The interval duration in seconds.
1345
+ */
1346
+ get seconds(): number;
1347
+ /**
1348
+ * @returns The interval duration in minutes.
1349
+ */
1350
+ get minutes(): number;
1351
+ /**
1352
+ * @returns The interval duration in hours.
1353
+ */
1354
+ get hours(): number;
1355
+ /**
1356
+ * @returns The interval duration in days.
1357
+ */
1358
+ get days(): number;
1359
+ /**
1360
+ * @returns The interval duration in weeks.
1361
+ */
1362
+ get weeks(): number;
1363
+ /**
1364
+ * @returns A compact, formatted string (e.g. "1h 30m", "45s").
1365
+ */
1366
+ get formatted(): string;
1367
+ /**
1368
+ * @returns A string representation of the interval.
1369
+ * If `{ long: true }` was passed, returns a verbose form (e.g. "1 hour 30 minutes");
1370
+ * otherwise, returns a compact form (e.g. "1h 30m").
1371
+ */
1372
+ toString(): string;
1373
+ /**
1374
+ * @returns An object with all time units for programmatic use.
1375
+ */
1376
+ toObject(): {
1377
+ milliseconds: number;
1378
+ seconds: number;
1379
+ minutes: number;
1380
+ hours: number;
1381
+ days: number;
1382
+ weeks: number;
1383
+ };
1384
+ }
1385
+ //#endregion
1386
+ //#region src/model/unit.d.ts
1387
+ declare enum ByteUnit {
1388
+ Byte = "B",
1389
+ Kilobyte = "KB",
1390
+ Megabyte = "MB",
1391
+ Gigabyte = "GB",
1392
+ Terabyte = "TB"
1393
+ }
1394
+ declare enum DistanceUnit {
1395
+ Millimeter = "mm",
1396
+ Centimeter = "cm",
1397
+ Meter = "m",
1398
+ Kilometer = "km"
1399
+ }
1400
+ declare enum WeightUnit {
1401
+ Milligram = "mg",
1402
+ Gram = "g",
1403
+ Kilogram = "kg",
1404
+ Tonne = "t"
1405
+ }
1406
+ //#endregion
1407
+ //#region src/formatter/format-bytes-options.d.ts
1408
+ interface FormatBytesOptions {
1409
+ inputUnit?: ByteUnit;
1410
+ outputUnit?: ByteUnit | 'auto';
1411
+ decimals?: number;
1412
+ }
1413
+ interface FormattedBytes {
1414
+ value: number;
1415
+ unit: ByteUnit;
1416
+ bytes: number;
1417
+ }
1418
+ //#endregion
1419
+ //#region src/formatter/unit-formatter-controller.d.ts
1420
+ interface UnitFormatterController {
1421
+ /**
1422
+ * Formats a byte size into a human-readable value and unit.
1423
+ *
1424
+ * @param size
1425
+ * Size expressed in the given input unit (or bytes by default).
1426
+ *
1427
+ * @param [options]
1428
+ * Optional formatting options.
1429
+ *
1430
+ * @param [options.inputUnit]
1431
+ * Unit of the input size.
1432
+ * @default ByteUnit.Byte
1433
+ *
1434
+ * @param [options.outputUnit]
1435
+ * Target unit. When 'auto', picks the largest unit with value ≥ 1.
1436
+ * @default 'auto'
1437
+ *
1438
+ * @param [options.decimals]
1439
+ * Number of decimal places to keep in the formatted value.
1440
+ * @default 1
1441
+ *
1442
+ * @returns
1443
+ * Formatted value with unit and the original size in bytes.
1444
+ *
1445
+ * @example
1446
+ * // 1.0 MB
1447
+ * formatter.formatBytes(1048576);
1448
+ *
1449
+ * @example
1450
+ * // 512.00 KB
1451
+ * formatter.formatBytes(512, {
1452
+ * inputUnit: ByteUnit.Kilobyte,
1453
+ * outputUnit: ByteUnit.Kilobyte,
1454
+ * decimals: 2,
1455
+ * });
1456
+ */
1457
+ formatBytes(size: number, options?: FormatBytesOptions): FormattedBytes;
1458
+ }
1459
+ declare class UnitFormatterControllerImpl implements UnitFormatterController {
1460
+ formatBytes(size: number, options?: FormatBytesOptions): FormattedBytes;
1461
+ }
1462
+ //#endregion
1463
+ //#region src/l10n/l10n.d.ts
1464
+ type L10nResources = Readonly<Record<string, Readonly<Record<string, unknown>>>>;
1465
+ //#endregion
1466
+ //#region src/l10n/define-l10n-resource.d.ts
1467
+ type L10nDeepMerge<TLeft, TRight> = TLeft extends Record<string, unknown> ? TRight extends Record<string, unknown> ? { readonly [TKey in keyof TLeft | keyof TRight]: TKey extends keyof TRight ? TKey extends keyof TLeft ? L10nDeepMerge<TLeft[TKey], TRight[TKey]> : TRight[TKey] : TKey extends keyof TLeft ? TLeft[TKey] : never; } : TRight : TRight;
1468
+ declare class L10nResource<TResources extends L10nResources> {
1469
+ readonly resources: TResources;
1470
+ constructor(resources: TResources);
1471
+ extend<const TExtension extends L10nResources>(options: {
1472
+ resources: TExtension;
1473
+ }): L10nResource<L10nDeepMerge<TResources, TExtension>>;
1474
+ }
1475
+ declare function defineL10nResource<const TResources extends L10nResources>(options: {
1476
+ resources: TResources;
1477
+ }): L10nResource<TResources>;
1478
+ //#endregion
1479
+ //#region src/l10n/resources.d.ts
1480
+ declare const CoreL10nResource: L10nResource<{
1481
+ readonly en: {
1482
+ readonly core: {
1483
+ common: {
1484
+ actions: {
1485
+ save: string;
1486
+ cancel: string;
1487
+ delete: string;
1488
+ confirm: string;
1489
+ close: string;
1490
+ back: string;
1491
+ next: string;
1492
+ };
1493
+ date_time: {
1494
+ relative: {
1495
+ today: string;
1496
+ tomorrow: string;
1497
+ yesterday: string;
1498
+ };
1499
+ interval: {
1500
+ second: {
1501
+ one: string;
1502
+ few: string;
1503
+ many: string;
1504
+ other: string;
1505
+ };
1506
+ minute: {
1507
+ one: string;
1508
+ few: string;
1509
+ many: string;
1510
+ other: string;
1511
+ };
1512
+ hour: {
1513
+ one: string;
1514
+ few: string;
1515
+ many: string;
1516
+ other: string;
1517
+ };
1518
+ day: {
1519
+ one: string;
1520
+ few: string;
1521
+ many: string;
1522
+ other: string;
1523
+ };
1524
+ week: {
1525
+ one: string;
1526
+ few: string;
1527
+ many: string;
1528
+ other: string;
1529
+ };
1530
+ month: {
1531
+ one: string;
1532
+ few: string;
1533
+ many: string;
1534
+ other: string;
1535
+ };
1536
+ year: {
1537
+ one: string;
1538
+ few: string;
1539
+ many: string;
1540
+ other: string;
1541
+ };
1542
+ };
1543
+ weekday: {
1544
+ monday: string;
1545
+ tuesday: string;
1546
+ wednesday: string;
1547
+ thursday: string;
1548
+ friday: string;
1549
+ saturday: string;
1550
+ sunday: string;
1551
+ };
1552
+ month: {
1553
+ january: string;
1554
+ february: string;
1555
+ march: string;
1556
+ april: string;
1557
+ may: string;
1558
+ june: string;
1559
+ july: string;
1560
+ august: string;
1561
+ september: string;
1562
+ october: string;
1563
+ november: string;
1564
+ december: string;
1565
+ };
1566
+ };
1567
+ validation: {
1568
+ opening_hours: {
1569
+ time_required: string;
1570
+ time_range_incomplete: string;
1571
+ };
1572
+ };
1573
+ };
1574
+ };
1575
+ };
1576
+ readonly sk: {
1577
+ readonly core: {
1578
+ common: {
1579
+ actions: {
1580
+ save: string;
1581
+ cancel: string;
1582
+ delete: string;
1583
+ confirm: string;
1584
+ close: string;
1585
+ back: string;
1586
+ next: string;
1587
+ };
1588
+ date_time: {
1589
+ relative: {
1590
+ today: string;
1591
+ tomorrow: string;
1592
+ yesterday: string;
1593
+ };
1594
+ interval: {
1595
+ second: {
1596
+ one: string;
1597
+ few: string;
1598
+ many: string;
1599
+ other: string;
1600
+ };
1601
+ minute: {
1602
+ one: string;
1603
+ few: string;
1604
+ many: string;
1605
+ other: string;
1606
+ };
1607
+ hour: {
1608
+ one: string;
1609
+ few: string;
1610
+ many: string;
1611
+ other: string;
1612
+ };
1613
+ day: {
1614
+ one: string;
1615
+ few: string;
1616
+ many: string;
1617
+ other: string;
1618
+ };
1619
+ week: {
1620
+ one: string;
1621
+ few: string;
1622
+ many: string;
1623
+ other: string;
1624
+ };
1625
+ month: {
1626
+ one: string;
1627
+ few: string;
1628
+ many: string;
1629
+ other: string;
1630
+ };
1631
+ year: {
1632
+ one: string;
1633
+ few: string;
1634
+ many: string;
1635
+ other: string;
1636
+ };
1637
+ };
1638
+ weekday: {
1639
+ monday: string;
1640
+ tuesday: string;
1641
+ wednesday: string;
1642
+ thursday: string;
1643
+ friday: string;
1644
+ saturday: string;
1645
+ sunday: string;
1646
+ };
1647
+ month: {
1648
+ january: string;
1649
+ february: string;
1650
+ march: string;
1651
+ april: string;
1652
+ may: string;
1653
+ june: string;
1654
+ july: string;
1655
+ august: string;
1656
+ september: string;
1657
+ october: string;
1658
+ november: string;
1659
+ december: string;
1660
+ };
1661
+ };
1662
+ validation: {
1663
+ opening_hours: {
1664
+ time_required: string;
1665
+ time_range_incomplete: string;
1666
+ };
1667
+ };
1668
+ };
1669
+ };
1670
+ };
1671
+ readonly cs: {
1672
+ readonly core: {
1673
+ common: {
1674
+ actions: {
1675
+ save: string;
1676
+ cancel: string;
1677
+ delete: string;
1678
+ confirm: string;
1679
+ close: string;
1680
+ back: string;
1681
+ next: string;
1682
+ };
1683
+ date_time: {
1684
+ relative: {
1685
+ today: string;
1686
+ tomorrow: string;
1687
+ yesterday: string;
1688
+ };
1689
+ interval: {
1690
+ second: {
1691
+ one: string;
1692
+ few: string;
1693
+ many: string;
1694
+ other: string;
1695
+ };
1696
+ minute: {
1697
+ one: string;
1698
+ few: string;
1699
+ many: string;
1700
+ other: string;
1701
+ };
1702
+ hour: {
1703
+ one: string;
1704
+ few: string;
1705
+ many: string;
1706
+ other: string;
1707
+ };
1708
+ day: {
1709
+ one: string;
1710
+ few: string;
1711
+ many: string;
1712
+ other: string;
1713
+ };
1714
+ week: {
1715
+ one: string;
1716
+ few: string;
1717
+ many: string;
1718
+ other: string;
1719
+ };
1720
+ month: {
1721
+ one: string;
1722
+ few: string;
1723
+ many: string;
1724
+ other: string;
1725
+ };
1726
+ year: {
1727
+ one: string;
1728
+ few: string;
1729
+ many: string;
1730
+ other: string;
1731
+ };
1732
+ };
1733
+ weekday: {
1734
+ monday: string;
1735
+ tuesday: string;
1736
+ wednesday: string;
1737
+ thursday: string;
1738
+ friday: string;
1739
+ saturday: string;
1740
+ sunday: string;
1741
+ };
1742
+ month: {
1743
+ january: string;
1744
+ february: string;
1745
+ march: string;
1746
+ april: string;
1747
+ may: string;
1748
+ june: string;
1749
+ july: string;
1750
+ august: string;
1751
+ september: string;
1752
+ october: string;
1753
+ november: string;
1754
+ december: string;
1755
+ };
1756
+ };
1757
+ validation: {
1758
+ opening_hours: {
1759
+ time_required: string;
1760
+ time_range_incomplete: string;
1761
+ };
1762
+ };
1763
+ };
1764
+ };
1765
+ };
1766
+ }>;
1767
+ declare const CoreL10n: {
1768
+ readonly Core: {
1769
+ readonly Common: {
1770
+ readonly Actions: {
1771
+ readonly Close: "core.common.actions.close";
1772
+ readonly Save: "core.common.actions.save";
1773
+ readonly Cancel: "core.common.actions.cancel";
1774
+ readonly Delete: "core.common.actions.delete";
1775
+ readonly Confirm: "core.common.actions.confirm";
1776
+ readonly Back: "core.common.actions.back";
1777
+ readonly Next: "core.common.actions.next";
1778
+ };
1779
+ readonly DateTime: {
1780
+ readonly Month: {
1781
+ readonly January: "core.common.date_time.month.january";
1782
+ readonly February: "core.common.date_time.month.february";
1783
+ readonly March: "core.common.date_time.month.march";
1784
+ readonly April: "core.common.date_time.month.april";
1785
+ readonly May: "core.common.date_time.month.may";
1786
+ readonly June: "core.common.date_time.month.june";
1787
+ readonly July: "core.common.date_time.month.july";
1788
+ readonly August: "core.common.date_time.month.august";
1789
+ readonly September: "core.common.date_time.month.september";
1790
+ readonly October: "core.common.date_time.month.october";
1791
+ readonly November: "core.common.date_time.month.november";
1792
+ readonly December: "core.common.date_time.month.december";
1793
+ };
1794
+ readonly Relative: {
1795
+ readonly Today: "core.common.date_time.relative.today";
1796
+ readonly Tomorrow: "core.common.date_time.relative.tomorrow";
1797
+ readonly Yesterday: "core.common.date_time.relative.yesterday";
1798
+ };
1799
+ readonly Interval: {
1800
+ readonly Day: {
1801
+ readonly One: "core.common.date_time.interval.day.one";
1802
+ readonly Few: "core.common.date_time.interval.day.few";
1803
+ readonly Many: "core.common.date_time.interval.day.many";
1804
+ readonly Other: "core.common.date_time.interval.day.other";
1805
+ };
1806
+ readonly Second: {
1807
+ readonly One: "core.common.date_time.interval.second.one";
1808
+ readonly Few: "core.common.date_time.interval.second.few";
1809
+ readonly Many: "core.common.date_time.interval.second.many";
1810
+ readonly Other: "core.common.date_time.interval.second.other";
1811
+ };
1812
+ readonly Minute: {
1813
+ readonly One: "core.common.date_time.interval.minute.one";
1814
+ readonly Few: "core.common.date_time.interval.minute.few";
1815
+ readonly Many: "core.common.date_time.interval.minute.many";
1816
+ readonly Other: "core.common.date_time.interval.minute.other";
1817
+ };
1818
+ readonly Hour: {
1819
+ readonly One: "core.common.date_time.interval.hour.one";
1820
+ readonly Few: "core.common.date_time.interval.hour.few";
1821
+ readonly Many: "core.common.date_time.interval.hour.many";
1822
+ readonly Other: "core.common.date_time.interval.hour.other";
1823
+ };
1824
+ readonly Week: {
1825
+ readonly One: "core.common.date_time.interval.week.one";
1826
+ readonly Few: "core.common.date_time.interval.week.few";
1827
+ readonly Many: "core.common.date_time.interval.week.many";
1828
+ readonly Other: "core.common.date_time.interval.week.other";
1829
+ };
1830
+ readonly Month: {
1831
+ readonly One: "core.common.date_time.interval.month.one";
1832
+ readonly Few: "core.common.date_time.interval.month.few";
1833
+ readonly Many: "core.common.date_time.interval.month.many";
1834
+ readonly Other: "core.common.date_time.interval.month.other";
1835
+ };
1836
+ readonly Year: {
1837
+ readonly One: "core.common.date_time.interval.year.one";
1838
+ readonly Few: "core.common.date_time.interval.year.few";
1839
+ readonly Many: "core.common.date_time.interval.year.many";
1840
+ readonly Other: "core.common.date_time.interval.year.other";
1841
+ };
1842
+ };
1843
+ readonly Weekday: {
1844
+ readonly Monday: "core.common.date_time.weekday.monday";
1845
+ readonly Tuesday: "core.common.date_time.weekday.tuesday";
1846
+ readonly Wednesday: "core.common.date_time.weekday.wednesday";
1847
+ readonly Thursday: "core.common.date_time.weekday.thursday";
1848
+ readonly Friday: "core.common.date_time.weekday.friday";
1849
+ readonly Saturday: "core.common.date_time.weekday.saturday";
1850
+ readonly Sunday: "core.common.date_time.weekday.sunday";
1851
+ };
1852
+ };
1853
+ readonly Validation: {
1854
+ readonly OpeningHours: {
1855
+ readonly TimeRequired: "core.common.validation.opening_hours.time_required";
1856
+ readonly TimeRangeIncomplete: "core.common.validation.opening_hours.time_range_incomplete";
1857
+ };
1858
+ };
1859
+ };
1860
+ };
1861
+ };
1862
+ //#endregion
1863
+ //#region src/l10n/define-l10n.d.ts
1864
+ type L10nLocaleResource = Readonly<Record<string, unknown>>;
1865
+ type L10nUnionKeys<TValue> = TValue extends TValue ? keyof TValue : never;
1866
+ type L10nUnionValue<TValue, TKey extends PropertyKey> = TValue extends TValue ? TKey extends keyof TValue ? TValue[TKey] : never : never;
1867
+ type L10nChildResource<TResource, TKey extends PropertyKey> = Extract<L10nUnionValue<TResource, TKey>, L10nLocaleResource>;
1868
+ type L10nKeyTree<TResource, TPrefix extends string = ''> = { readonly [TKey in L10nUnionKeys<TResource> & string as L10nPascalCase<TKey>]: [L10nChildResource<TResource, TKey>] extends [never] ? L10nJoin<TPrefix, TKey> : L10nKeyTree<L10nChildResource<TResource, TKey>, L10nJoin<TPrefix, TKey>>; };
1869
+ type L10nJoin<TPrefix extends string, TKey extends string> = TPrefix extends '' ? TKey : `${TPrefix}.${TKey}`;
1870
+ type L10nPascalCase<TValue extends string, TCapitalizeNext extends boolean = true> = TValue extends `${infer TCharacter}${infer TRest}` ? TCharacter extends '_' | '-' | ' ' ? L10nPascalCase<TRest, true> : `${TCapitalizeNext extends true ? Uppercase<TCharacter> : TCharacter}${L10nPascalCase<TRest, false>}` : '';
1871
+ declare function defineL10n<const TResources extends L10nResources>(resource: L10nResource<TResources>): L10nKeyTree<TResources[keyof TResources]>;
1872
+ //#endregion
1873
+ //#region src/foundation/identity.d.ts
1874
+ type Identity = string | number | symbol;
1875
+ //#endregion
1876
+ //#region src/foundation/equatable.d.ts
1877
+ interface Equatable {
1878
+ equals(other: unknown): boolean;
1879
+ }
1880
+ //#endregion
1881
+ //#region src/foundation/hashable.d.ts
1882
+ interface Hashable {
1883
+ hash(): Identity;
1884
+ }
1885
+ //#endregion
1886
+ //#region src/localization/localizable-text.d.ts
1887
+ declare class LocalizableText implements JSONSerializable {
1888
+ values: {
1889
+ [lang: string]: string;
1890
+ };
1891
+ constructor(LocalizableTexts: {
1892
+ [lang: string]: string;
1893
+ });
1894
+ getLocalized(lang: string): string | null;
1895
+ toJSON(): any;
1896
+ }
1897
+ //#endregion
1898
+ //#region src/operation/async-operation.d.ts
1899
+ interface AsyncOperation<Input, Output, Options = undefined> {
1900
+ execute(input: Input, options?: Options): Promise<Output>;
1901
+ }
1902
+ //#endregion
1903
+ //#region src/operation/operation.d.ts
1904
+ interface Operation<Input, Output, Options = undefined> {
1905
+ execute(input: Input, options?: Options): Output;
1906
+ }
1907
+ //#endregion
1908
+ //#region src/security/hash.d.ts
1909
+ /**
1910
+ * Generates a hash for a given input string.
1911
+ *
1912
+ * @param input - The input string to hash.
1913
+ * @param salt - The number of salt rounds to use. Default is 10.
1914
+ * @returns A promise that resolves to the hashed string.
1915
+ */
1916
+ declare function makeHash(input: string, salt?: number): Promise<string>;
1917
+ /**
1918
+ * Compares a candidate string with a hashed string.
1919
+ *
1920
+ * @param candidate - The candidate string to compare.
1921
+ * @param hashed - The hashed string to compare against.
1922
+ * @returns A promise that resolves to a boolean indicating if the candidate matches the hash.
1923
+ */
1924
+ declare function compareHash(candidate: string, hashed: string): Promise<boolean>;
1925
+ //#endregion
1926
+ //#region src/validation/validation-schema-i18n-params.d.ts
1927
+ type ValidationSchemaI18nParams = {
1928
+ i18n: {
1929
+ key: string;
1930
+ values?: Record<string, unknown>;
1931
+ };
1932
+ };
1933
+ //#endregion
1934
+ //#region src/validation/validation-schemas.d.ts
1935
+ declare const UUIDSchema: z.ZodUUID;
1936
+ declare const DateTimeSchema: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<DateTime, string>>;
1937
+ declare const ObjectIdSchema: z.ZodPipe<z.ZodString, z.ZodTransform<ObjectId, string>>;
1938
+ type UUIDDto = z.input<typeof UUIDSchema>;
1939
+ type DateTimeDto = z.input<typeof DateTimeSchema>;
1940
+ type ObjectIdDto = z.input<typeof ObjectIdSchema>;
1941
+ declare const LongitudeSchema: z.ZodNumber;
1942
+ declare const LatitudeSchema: z.ZodNumber;
1943
+ type LongitudeDto = z.input<typeof LongitudeSchema>;
1944
+ type LatitudeDto = z.input<typeof LatitudeSchema>;
1945
+ declare const CoordinatesSchema: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
1946
+ type CoordinatesDto = z.input<typeof CoordinatesSchema>;
1947
+ declare const BBoxSchema: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
1948
+ type BBoxDto = z.input<typeof BBoxSchema>;
1949
+ declare const PointGeometrySchema: z.ZodPipe<z.ZodObject<{
1950
+ type: z.ZodLiteral<"Point">;
1951
+ coordinates: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
1952
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
1953
+ }, z.core.$strip>, z.ZodTransform<Point, {
1954
+ type: "Point";
1955
+ coordinates: Coordinates;
1956
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
1957
+ }>>;
1958
+ type PointGeometryDto = z.input<typeof PointGeometrySchema>;
1959
+ declare const MultiPointGeometrySchema: z.ZodPipe<z.ZodObject<{
1960
+ type: z.ZodLiteral<"MultiPoint">;
1961
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
1962
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
1963
+ }, z.core.$strip>, z.ZodTransform<MultiPoint, {
1964
+ type: "MultiPoint";
1965
+ coordinates: Coordinates[];
1966
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
1967
+ }>>;
1968
+ type MultiPointGeometryDto = z.input<typeof MultiPointGeometrySchema>;
1969
+ declare const LineStringGeometrySchema: z.ZodPipe<z.ZodObject<{
1970
+ type: z.ZodLiteral<"LineString">;
1971
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
1972
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
1973
+ }, z.core.$strip>, z.ZodTransform<LineString, {
1974
+ type: "LineString";
1975
+ coordinates: Coordinates[];
1976
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
1977
+ }>>;
1978
+ type LineStringGeometryDto = z.input<typeof LineStringGeometrySchema>;
1979
+ declare const MultiLineStringGeometrySchema: z.ZodPipe<z.ZodObject<{
1980
+ type: z.ZodLiteral<"MultiLineString">;
1981
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
1982
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
1983
+ }, z.core.$strip>, z.ZodTransform<MultiLineString, {
1984
+ type: "MultiLineString";
1985
+ coordinates: Coordinates[][];
1986
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
1987
+ }>>;
1988
+ type MultiLineStringGeometryDto = z.input<typeof MultiLineStringGeometrySchema>;
1989
+ declare const PolygonGeometrySchema: z.ZodPipe<z.ZodObject<{
1990
+ type: z.ZodLiteral<"Polygon">;
1991
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
1992
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
1993
+ }, z.core.$strip>, z.ZodTransform<Polygon, {
1994
+ type: "Polygon";
1995
+ coordinates: Coordinates[][];
1996
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
1997
+ }>>;
1998
+ type PolygonGeometryDto = z.input<typeof PolygonGeometrySchema>;
1999
+ declare const MultiPolygonGeometrySchema: z.ZodPipe<z.ZodObject<{
2000
+ type: z.ZodLiteral<"MultiPolygon">;
2001
+ coordinates: z.ZodArray<z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>>;
2002
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2003
+ }, z.core.$strip>, z.ZodTransform<MultiPolygon, {
2004
+ type: "MultiPolygon";
2005
+ coordinates: Coordinates[][][];
2006
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2007
+ }>>;
2008
+ type MultiPolygonGeometryDto = z.input<typeof MultiPolygonGeometrySchema>;
2009
+ declare const GeometrySchema: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
2010
+ type: z.ZodLiteral<"Point">;
2011
+ coordinates: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
2012
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2013
+ }, z.core.$strip>, z.ZodTransform<Point, {
2014
+ type: "Point";
2015
+ coordinates: Coordinates;
2016
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2017
+ }>>, z.ZodPipe<z.ZodObject<{
2018
+ type: z.ZodLiteral<"MultiPoint">;
2019
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2020
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2021
+ }, z.core.$strip>, z.ZodTransform<MultiPoint, {
2022
+ type: "MultiPoint";
2023
+ coordinates: Coordinates[];
2024
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2025
+ }>>, z.ZodPipe<z.ZodObject<{
2026
+ type: z.ZodLiteral<"LineString">;
2027
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2028
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2029
+ }, z.core.$strip>, z.ZodTransform<LineString, {
2030
+ type: "LineString";
2031
+ coordinates: Coordinates[];
2032
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2033
+ }>>, z.ZodPipe<z.ZodObject<{
2034
+ type: z.ZodLiteral<"MultiLineString">;
2035
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2036
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2037
+ }, z.core.$strip>, z.ZodTransform<MultiLineString, {
2038
+ type: "MultiLineString";
2039
+ coordinates: Coordinates[][];
2040
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2041
+ }>>, z.ZodPipe<z.ZodObject<{
2042
+ type: z.ZodLiteral<"Polygon">;
2043
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2044
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2045
+ }, z.core.$strip>, z.ZodTransform<Polygon, {
2046
+ type: "Polygon";
2047
+ coordinates: Coordinates[][];
2048
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2049
+ }>>, z.ZodPipe<z.ZodObject<{
2050
+ type: z.ZodLiteral<"MultiPolygon">;
2051
+ coordinates: z.ZodArray<z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>>;
2052
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2053
+ }, z.core.$strip>, z.ZodTransform<MultiPolygon, {
2054
+ type: "MultiPolygon";
2055
+ coordinates: Coordinates[][][];
2056
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2057
+ }>>]>;
2058
+ type GeometryDto = z.input<typeof GeometrySchema>;
2059
+ declare const OpeningHourIntervalSchema: z.ZodObject<{
2060
+ open: z.ZodString;
2061
+ close: z.ZodString;
2062
+ }, z.core.$strip>;
2063
+ declare const OpeningHourSchema: z.ZodPipe<z.ZodObject<{
2064
+ day: z.ZodNumber;
2065
+ intervals: z.ZodDefault<z.ZodArray<z.ZodObject<{
2066
+ open: z.ZodString;
2067
+ close: z.ZodString;
2068
+ }, z.core.$strip>>>;
2069
+ }, z.core.$strip>, z.ZodTransform<OpeningHour, {
2070
+ day: number;
2071
+ intervals: {
2072
+ open: string;
2073
+ close: string;
2074
+ }[];
2075
+ }>>;
2076
+ declare const OpeningHoursSchema: z.ZodArray<z.ZodPipe<z.ZodObject<{
2077
+ day: z.ZodNumber;
2078
+ intervals: z.ZodDefault<z.ZodArray<z.ZodObject<{
2079
+ open: z.ZodString;
2080
+ close: z.ZodString;
2081
+ }, z.core.$strip>>>;
2082
+ }, z.core.$strip>, z.ZodTransform<OpeningHour, {
2083
+ day: number;
2084
+ intervals: {
2085
+ open: string;
2086
+ close: string;
2087
+ }[];
2088
+ }>>>;
2089
+ type OpeningHourIntervalDto = z.input<typeof OpeningHourIntervalSchema>;
2090
+ type OpeningHourDto = z.input<typeof OpeningHourSchema>;
2091
+ type OpeningHoursDto = z.input<typeof OpeningHoursSchema>;
2092
+ declare const ContactsSchema: z.ZodPipe<z.ZodObject<{
2093
+ email: z.ZodNullable<z.ZodOptional<z.ZodEmail>>;
2094
+ fb: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2095
+ ig: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2096
+ phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2097
+ web: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2098
+ }, z.core.$strip>, z.ZodTransform<Contacts, {
2099
+ email?: string | null | undefined;
2100
+ fb?: string | null | undefined;
2101
+ ig?: string | null | undefined;
2102
+ phone?: string | null | undefined;
2103
+ web?: string | null | undefined;
2104
+ }>>;
2105
+ type ContactsDto = z.input<typeof ContactsSchema>;
2106
+ declare const AddressSchema: z.ZodPipe<z.ZodObject<{
2107
+ streetLine1: z.ZodString;
2108
+ streetLine2: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2109
+ postalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2110
+ city: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2111
+ state: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2112
+ country: z.ZodString;
2113
+ countryCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2114
+ }, z.core.$strip>, z.ZodTransform<Address, {
2115
+ streetLine1: string;
2116
+ country: string;
2117
+ streetLine2?: string | null | undefined;
2118
+ postalCode?: string | null | undefined;
2119
+ city?: string | null | undefined;
2120
+ state?: string | null | undefined;
2121
+ countryCode?: string | null | undefined;
2122
+ }>>;
2123
+ type AddressDto = z.input<typeof AddressSchema>;
2124
+ declare const ValidationSchemas: {
2125
+ UUID: z.ZodUUID;
2126
+ DateTime: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<DateTime, string>>;
2127
+ ObjectId: z.ZodPipe<z.ZodString, z.ZodTransform<ObjectId, string>>;
2128
+ Longitude: z.ZodNumber;
2129
+ Latitude: z.ZodNumber;
2130
+ Coordinates: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
2131
+ BBox: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
2132
+ PointGeometry: z.ZodPipe<z.ZodObject<{
2133
+ type: z.ZodLiteral<"Point">;
2134
+ coordinates: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
2135
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2136
+ }, z.core.$strip>, z.ZodTransform<Point, {
2137
+ type: "Point";
2138
+ coordinates: Coordinates;
2139
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2140
+ }>>;
2141
+ MultiPointGeometry: z.ZodPipe<z.ZodObject<{
2142
+ type: z.ZodLiteral<"MultiPoint">;
2143
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2144
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2145
+ }, z.core.$strip>, z.ZodTransform<MultiPoint, {
2146
+ type: "MultiPoint";
2147
+ coordinates: Coordinates[];
2148
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2149
+ }>>;
2150
+ LineStringGeometry: z.ZodPipe<z.ZodObject<{
2151
+ type: z.ZodLiteral<"LineString">;
2152
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2153
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2154
+ }, z.core.$strip>, z.ZodTransform<LineString, {
2155
+ type: "LineString";
2156
+ coordinates: Coordinates[];
2157
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2158
+ }>>;
2159
+ MultiLineStringGeometry: z.ZodPipe<z.ZodObject<{
2160
+ type: z.ZodLiteral<"MultiLineString">;
2161
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2162
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2163
+ }, z.core.$strip>, z.ZodTransform<MultiLineString, {
2164
+ type: "MultiLineString";
2165
+ coordinates: Coordinates[][];
2166
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2167
+ }>>;
2168
+ PolygonGeometry: z.ZodPipe<z.ZodObject<{
2169
+ type: z.ZodLiteral<"Polygon">;
2170
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2171
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2172
+ }, z.core.$strip>, z.ZodTransform<Polygon, {
2173
+ type: "Polygon";
2174
+ coordinates: Coordinates[][];
2175
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2176
+ }>>;
2177
+ MultiPolygonGeometry: z.ZodPipe<z.ZodObject<{
2178
+ type: z.ZodLiteral<"MultiPolygon">;
2179
+ coordinates: z.ZodArray<z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>>;
2180
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2181
+ }, z.core.$strip>, z.ZodTransform<MultiPolygon, {
2182
+ type: "MultiPolygon";
2183
+ coordinates: Coordinates[][][];
2184
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2185
+ }>>;
2186
+ Geometry: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
2187
+ type: z.ZodLiteral<"Point">;
2188
+ coordinates: z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>;
2189
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2190
+ }, z.core.$strip>, z.ZodTransform<Point, {
2191
+ type: "Point";
2192
+ coordinates: Coordinates;
2193
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2194
+ }>>, z.ZodPipe<z.ZodObject<{
2195
+ type: z.ZodLiteral<"MultiPoint">;
2196
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2197
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2198
+ }, z.core.$strip>, z.ZodTransform<MultiPoint, {
2199
+ type: "MultiPoint";
2200
+ coordinates: Coordinates[];
2201
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2202
+ }>>, z.ZodPipe<z.ZodObject<{
2203
+ type: z.ZodLiteral<"LineString">;
2204
+ coordinates: z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>;
2205
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2206
+ }, z.core.$strip>, z.ZodTransform<LineString, {
2207
+ type: "LineString";
2208
+ coordinates: Coordinates[];
2209
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2210
+ }>>, z.ZodPipe<z.ZodObject<{
2211
+ type: z.ZodLiteral<"MultiLineString">;
2212
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2213
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2214
+ }, z.core.$strip>, z.ZodTransform<MultiLineString, {
2215
+ type: "MultiLineString";
2216
+ coordinates: Coordinates[][];
2217
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2218
+ }>>, z.ZodPipe<z.ZodObject<{
2219
+ type: z.ZodLiteral<"Polygon">;
2220
+ coordinates: z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>;
2221
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2222
+ }, z.core.$strip>, z.ZodTransform<Polygon, {
2223
+ type: "Polygon";
2224
+ coordinates: Coordinates[][];
2225
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2226
+ }>>, z.ZodPipe<z.ZodObject<{
2227
+ type: z.ZodLiteral<"MultiPolygon">;
2228
+ coordinates: z.ZodArray<z.ZodArray<z.ZodArray<z.ZodPipe<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTransform<Coordinates, [number, number]>>>>>;
2229
+ bbox: z.ZodOptional<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
2230
+ }, z.core.$strip>, z.ZodTransform<MultiPolygon, {
2231
+ type: "MultiPolygon";
2232
+ coordinates: Coordinates[][][];
2233
+ bbox?: [number, number, number, number] | [number, number, number, number, number, number] | undefined;
2234
+ }>>]>;
2235
+ OpeningHour: z.ZodPipe<z.ZodObject<{
2236
+ day: z.ZodNumber;
2237
+ intervals: z.ZodDefault<z.ZodArray<z.ZodObject<{
2238
+ open: z.ZodString;
2239
+ close: z.ZodString;
2240
+ }, z.core.$strip>>>;
2241
+ }, z.core.$strip>, z.ZodTransform<OpeningHour, {
2242
+ day: number;
2243
+ intervals: {
2244
+ open: string;
2245
+ close: string;
2246
+ }[];
2247
+ }>>;
2248
+ OpeningHours: z.ZodArray<z.ZodPipe<z.ZodObject<{
2249
+ day: z.ZodNumber;
2250
+ intervals: z.ZodDefault<z.ZodArray<z.ZodObject<{
2251
+ open: z.ZodString;
2252
+ close: z.ZodString;
2253
+ }, z.core.$strip>>>;
2254
+ }, z.core.$strip>, z.ZodTransform<OpeningHour, {
2255
+ day: number;
2256
+ intervals: {
2257
+ open: string;
2258
+ close: string;
2259
+ }[];
2260
+ }>>>;
2261
+ Contacts: z.ZodPipe<z.ZodObject<{
2262
+ email: z.ZodNullable<z.ZodOptional<z.ZodEmail>>;
2263
+ fb: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2264
+ ig: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2265
+ phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2266
+ web: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2267
+ }, z.core.$strip>, z.ZodTransform<Contacts, {
2268
+ email?: string | null | undefined;
2269
+ fb?: string | null | undefined;
2270
+ ig?: string | null | undefined;
2271
+ phone?: string | null | undefined;
2272
+ web?: string | null | undefined;
2273
+ }>>;
2274
+ Address: z.ZodPipe<z.ZodObject<{
2275
+ streetLine1: z.ZodString;
2276
+ streetLine2: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2277
+ postalCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2278
+ city: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2279
+ state: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2280
+ country: z.ZodString;
2281
+ countryCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
2282
+ }, z.core.$strip>, z.ZodTransform<Address, {
2283
+ streetLine1: string;
2284
+ country: string;
2285
+ streetLine2?: string | null | undefined;
2286
+ postalCode?: string | null | undefined;
2287
+ city?: string | null | undefined;
2288
+ state?: string | null | undefined;
2289
+ countryCode?: string | null | undefined;
2290
+ }>>;
2291
+ };
2292
+ //#endregion
2293
+ //#region src/index.d.ts
2294
+ declare function coreAssembly(): Assembly[];
2295
+ //#endregion
2296
+ export { Address, AddressDto, Assembly, AssemblyContainer, AsyncConverter, AsyncOperation, Awaitable, BBox, BBoxDto, ByteUnit, CanceledError, Contacts, ContactsDto, type Container, ConversionError, Converter, Coordinates, CoordinatesDto, CoreL10n, CoreL10nResource, CoreSymbols, DateFormat, DateTime, DateTimeDto, DeepPartial, DeepRequired, DeviceType, DistanceUnit, type E_ALREADY_LOCKED, type E_CANCELED, type E_TIMEOUT, Empty, Equatable, FormatBytesOptions, FormattedBytes, GeoJsonObject, GeoJsonType, GeoJsonTypes, Geometry, GeometryDto, Hashable, Identity, JSONObject, JSONPrimitive, JSONSerializable, JSONValue, L10nResource, L10nResources, LatitudeDto, LineString, LineStringGeometryDto, LocalizableText, LongitudeDto, MultiLineString, MultiLineStringGeometryDto, MultiPoint, MultiPointGeometryDto, MultiPolygon, MultiPolygonGeometryDto, Mutex, type MutexInterface, NetworkError, NonUndefined, OSType, ObjectFilterOptions, ObjectId, ObjectIdDto, OpeningHour, OpeningHourDto, OpeningHourInterval, OpeningHourIntervalDto, OpeningHoursDto, Operation, Optional, OptionalPartial, OptionalValue, Point, PointGeometryDto, Polygon, PolygonGeometryDto, Primitive, PushNotificationStatus, Query, ScopeController, Semaphore, type SemaphoreInterface, TimeInterval, TimeoutError, UUIDDto, UnitFormatterController, UnitFormatterControllerImpl, UnknownError, ValidationSchemaI18nParams, ValidationSchemas, WeightUnit, ZonedDateTime, capitalized, compareHash, coreAssembly, defineL10n, defineL10nResource, delay, emptyOrUndefinedStringToNull, filterObject, ignoreError, ignoreErrorAsync, ignoreErrorOptionalAsync, isDefined, isDefinedAndNotNull, isEmptyObject, isError, isJSONPrimitive, isJSONSerializable, isNonEmptyObject, isNonEmptyString, isNotNull, isNullOrEmpty, isObject, isPlainObject, isPrimitive, makeHash, mapToEnum, optional, tryAcquire, withTimeout };