@planecloud/config 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,4348 @@
1
+ import { z } from "zod";
2
+ export declare const AppConfigSchema: z.ZodObject<{
3
+ app: z.ZodObject<{
4
+ name: z.ZodString;
5
+ version: z.ZodString;
6
+ description: z.ZodOptional<z.ZodString>;
7
+ environment: z.ZodDefault<z.ZodOptional<z.ZodEnum<["development", "staging", "production"]>>>;
8
+ debug: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
9
+ timezone: z.ZodDefault<z.ZodOptional<z.ZodString>>;
10
+ locale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ timezone: string;
13
+ name: string;
14
+ environment: "development" | "staging" | "production";
15
+ debug: boolean;
16
+ version: string;
17
+ locale: string;
18
+ description?: string | undefined;
19
+ }, {
20
+ name: string;
21
+ version: string;
22
+ timezone?: string | undefined;
23
+ environment?: "development" | "staging" | "production" | undefined;
24
+ debug?: boolean | undefined;
25
+ description?: string | undefined;
26
+ locale?: string | undefined;
27
+ }>;
28
+ server: z.ZodObject<{
29
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
30
+ host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
31
+ gracefulShutdownTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
32
+ keepAliveTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
33
+ headersTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ host: string;
36
+ port: number;
37
+ gracefulShutdownTimeout: number;
38
+ keepAliveTimeout: number;
39
+ headersTimeout: number;
40
+ }, {
41
+ host?: string | undefined;
42
+ port?: number | undefined;
43
+ gracefulShutdownTimeout?: number | undefined;
44
+ keepAliveTimeout?: number | undefined;
45
+ headersTimeout?: number | undefined;
46
+ }>;
47
+ database: z.ZodOptional<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
48
+ host: z.ZodString;
49
+ port: z.ZodNumber;
50
+ database: z.ZodString;
51
+ username: z.ZodString;
52
+ password: z.ZodString;
53
+ ssl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
54
+ sslMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["disable", "require", "prefer", "verify-ca", "verify-full"]>>>;
55
+ connectionTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
56
+ idleTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
+ maxConnections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
58
+ minConnections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
59
+ acquireTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
60
+ createTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
61
+ destroyTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
62
+ reapIntervalMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
63
+ createRetryIntervalMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
64
+ logging: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
65
+ timezone: z.ZodDefault<z.ZodOptional<z.ZodString>>;
66
+ charset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
67
+ collation: z.ZodOptional<z.ZodString>;
68
+ } & {
69
+ type: z.ZodLiteral<"postgres">;
70
+ searchPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
71
+ pool: z.ZodOptional<z.ZodObject<{
72
+ min: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
73
+ max: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
74
+ idleTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
75
+ acquireTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ acquireTimeoutMillis: number;
78
+ min: number;
79
+ max: number;
80
+ idleTimeoutMillis: number;
81
+ }, {
82
+ acquireTimeoutMillis?: number | undefined;
83
+ min?: number | undefined;
84
+ max?: number | undefined;
85
+ idleTimeoutMillis?: number | undefined;
86
+ }>>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ host: string;
89
+ port: number;
90
+ database: string;
91
+ username: string;
92
+ password: string;
93
+ ssl: boolean;
94
+ sslMode: "disable" | "require" | "prefer" | "verify-ca" | "verify-full";
95
+ connectionTimeout: number;
96
+ idleTimeout: number;
97
+ maxConnections: number;
98
+ minConnections: number;
99
+ acquireTimeoutMillis: number;
100
+ createTimeoutMillis: number;
101
+ destroyTimeoutMillis: number;
102
+ reapIntervalMillis: number;
103
+ createRetryIntervalMillis: number;
104
+ logging: boolean;
105
+ timezone: string;
106
+ charset: string;
107
+ type: "postgres";
108
+ searchPath: string;
109
+ collation?: string | undefined;
110
+ pool?: {
111
+ acquireTimeoutMillis: number;
112
+ min: number;
113
+ max: number;
114
+ idleTimeoutMillis: number;
115
+ } | undefined;
116
+ }, {
117
+ host: string;
118
+ port: number;
119
+ database: string;
120
+ username: string;
121
+ password: string;
122
+ type: "postgres";
123
+ ssl?: boolean | undefined;
124
+ sslMode?: "disable" | "require" | "prefer" | "verify-ca" | "verify-full" | undefined;
125
+ connectionTimeout?: number | undefined;
126
+ idleTimeout?: number | undefined;
127
+ maxConnections?: number | undefined;
128
+ minConnections?: number | undefined;
129
+ acquireTimeoutMillis?: number | undefined;
130
+ createTimeoutMillis?: number | undefined;
131
+ destroyTimeoutMillis?: number | undefined;
132
+ reapIntervalMillis?: number | undefined;
133
+ createRetryIntervalMillis?: number | undefined;
134
+ logging?: boolean | undefined;
135
+ timezone?: string | undefined;
136
+ charset?: string | undefined;
137
+ collation?: string | undefined;
138
+ searchPath?: string | undefined;
139
+ pool?: {
140
+ acquireTimeoutMillis?: number | undefined;
141
+ min?: number | undefined;
142
+ max?: number | undefined;
143
+ idleTimeoutMillis?: number | undefined;
144
+ } | undefined;
145
+ }>, z.ZodObject<{
146
+ host: z.ZodString;
147
+ port: z.ZodNumber;
148
+ database: z.ZodString;
149
+ username: z.ZodString;
150
+ password: z.ZodString;
151
+ ssl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
152
+ sslMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["disable", "require", "prefer", "verify-ca", "verify-full"]>>>;
153
+ connectionTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
154
+ idleTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
155
+ maxConnections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
156
+ minConnections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
157
+ acquireTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
158
+ createTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
159
+ destroyTimeoutMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
160
+ reapIntervalMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
161
+ createRetryIntervalMillis: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
162
+ logging: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
163
+ timezone: z.ZodDefault<z.ZodOptional<z.ZodString>>;
164
+ } & {
165
+ type: z.ZodLiteral<"mysql">;
166
+ charset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
167
+ collation: z.ZodDefault<z.ZodOptional<z.ZodString>>;
168
+ acquireTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
169
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
170
+ reconnect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
171
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
172
+ }, "strip", z.ZodTypeAny, {
173
+ host: string;
174
+ port: number;
175
+ database: string;
176
+ username: string;
177
+ password: string;
178
+ ssl: boolean;
179
+ sslMode: "disable" | "require" | "prefer" | "verify-ca" | "verify-full";
180
+ connectionTimeout: number;
181
+ idleTimeout: number;
182
+ maxConnections: number;
183
+ minConnections: number;
184
+ acquireTimeoutMillis: number;
185
+ createTimeoutMillis: number;
186
+ destroyTimeoutMillis: number;
187
+ reapIntervalMillis: number;
188
+ createRetryIntervalMillis: number;
189
+ logging: boolean;
190
+ timezone: string;
191
+ charset: string;
192
+ collation: string;
193
+ type: "mysql";
194
+ acquireTimeout: number;
195
+ timeout: number;
196
+ reconnect: boolean;
197
+ flags?: string[] | undefined;
198
+ }, {
199
+ host: string;
200
+ port: number;
201
+ database: string;
202
+ username: string;
203
+ password: string;
204
+ type: "mysql";
205
+ ssl?: boolean | undefined;
206
+ sslMode?: "disable" | "require" | "prefer" | "verify-ca" | "verify-full" | undefined;
207
+ connectionTimeout?: number | undefined;
208
+ idleTimeout?: number | undefined;
209
+ maxConnections?: number | undefined;
210
+ minConnections?: number | undefined;
211
+ acquireTimeoutMillis?: number | undefined;
212
+ createTimeoutMillis?: number | undefined;
213
+ destroyTimeoutMillis?: number | undefined;
214
+ reapIntervalMillis?: number | undefined;
215
+ createRetryIntervalMillis?: number | undefined;
216
+ logging?: boolean | undefined;
217
+ timezone?: string | undefined;
218
+ charset?: string | undefined;
219
+ collation?: string | undefined;
220
+ acquireTimeout?: number | undefined;
221
+ timeout?: number | undefined;
222
+ reconnect?: boolean | undefined;
223
+ flags?: string[] | undefined;
224
+ }>, z.ZodObject<{
225
+ type: z.ZodLiteral<"mongodb">;
226
+ url: z.ZodString;
227
+ database: z.ZodString;
228
+ options: z.ZodOptional<z.ZodObject<{
229
+ maxPoolSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
230
+ minPoolSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
231
+ maxIdleTimeMS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
232
+ serverSelectionTimeoutMS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
233
+ socketTimeoutMS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
234
+ connectTimeoutMS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
235
+ heartbeatFrequencyMS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
236
+ retryWrites: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
237
+ retryReads: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
238
+ compressors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
239
+ zlibCompressionLevel: z.ZodOptional<z.ZodNumber>;
240
+ }, "strip", z.ZodTypeAny, {
241
+ maxPoolSize: number;
242
+ minPoolSize: number;
243
+ maxIdleTimeMS: number;
244
+ serverSelectionTimeoutMS: number;
245
+ socketTimeoutMS: number;
246
+ connectTimeoutMS: number;
247
+ heartbeatFrequencyMS: number;
248
+ retryWrites: boolean;
249
+ retryReads: boolean;
250
+ compressors?: string[] | undefined;
251
+ zlibCompressionLevel?: number | undefined;
252
+ }, {
253
+ maxPoolSize?: number | undefined;
254
+ minPoolSize?: number | undefined;
255
+ maxIdleTimeMS?: number | undefined;
256
+ serverSelectionTimeoutMS?: number | undefined;
257
+ socketTimeoutMS?: number | undefined;
258
+ connectTimeoutMS?: number | undefined;
259
+ heartbeatFrequencyMS?: number | undefined;
260
+ retryWrites?: boolean | undefined;
261
+ retryReads?: boolean | undefined;
262
+ compressors?: string[] | undefined;
263
+ zlibCompressionLevel?: number | undefined;
264
+ }>>;
265
+ auth: z.ZodOptional<z.ZodObject<{
266
+ username: z.ZodOptional<z.ZodString>;
267
+ password: z.ZodOptional<z.ZodString>;
268
+ authSource: z.ZodOptional<z.ZodString>;
269
+ authMechanism: z.ZodOptional<z.ZodEnum<["SCRAM-SHA-1", "SCRAM-SHA-256", "MONGODB-CR", "MONGODB-AWS"]>>;
270
+ }, "strip", z.ZodTypeAny, {
271
+ username?: string | undefined;
272
+ password?: string | undefined;
273
+ authSource?: string | undefined;
274
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
275
+ }, {
276
+ username?: string | undefined;
277
+ password?: string | undefined;
278
+ authSource?: string | undefined;
279
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
280
+ }>>;
281
+ }, "strip", z.ZodTypeAny, {
282
+ database: string;
283
+ type: "mongodb";
284
+ url: string;
285
+ options?: {
286
+ maxPoolSize: number;
287
+ minPoolSize: number;
288
+ maxIdleTimeMS: number;
289
+ serverSelectionTimeoutMS: number;
290
+ socketTimeoutMS: number;
291
+ connectTimeoutMS: number;
292
+ heartbeatFrequencyMS: number;
293
+ retryWrites: boolean;
294
+ retryReads: boolean;
295
+ compressors?: string[] | undefined;
296
+ zlibCompressionLevel?: number | undefined;
297
+ } | undefined;
298
+ auth?: {
299
+ username?: string | undefined;
300
+ password?: string | undefined;
301
+ authSource?: string | undefined;
302
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
303
+ } | undefined;
304
+ }, {
305
+ database: string;
306
+ type: "mongodb";
307
+ url: string;
308
+ options?: {
309
+ maxPoolSize?: number | undefined;
310
+ minPoolSize?: number | undefined;
311
+ maxIdleTimeMS?: number | undefined;
312
+ serverSelectionTimeoutMS?: number | undefined;
313
+ socketTimeoutMS?: number | undefined;
314
+ connectTimeoutMS?: number | undefined;
315
+ heartbeatFrequencyMS?: number | undefined;
316
+ retryWrites?: boolean | undefined;
317
+ retryReads?: boolean | undefined;
318
+ compressors?: string[] | undefined;
319
+ zlibCompressionLevel?: number | undefined;
320
+ } | undefined;
321
+ auth?: {
322
+ username?: string | undefined;
323
+ password?: string | undefined;
324
+ authSource?: string | undefined;
325
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
326
+ } | undefined;
327
+ }>]>>;
328
+ redis: z.ZodOptional<z.ZodObject<{
329
+ host: z.ZodString;
330
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
331
+ password: z.ZodOptional<z.ZodString>;
332
+ db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
333
+ username: z.ZodOptional<z.ZodString>;
334
+ name: z.ZodDefault<z.ZodOptional<z.ZodString>>;
335
+ connectTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
336
+ commandTimeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
337
+ retryDelayOnFailover: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
338
+ maxRetriesPerRequest: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
339
+ lazyConnect: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
340
+ keepAlive: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
341
+ family: z.ZodDefault<z.ZodOptional<z.ZodEnum<["IPv4", "IPv6"]>>>;
342
+ tls: z.ZodOptional<z.ZodObject<{
343
+ host: z.ZodOptional<z.ZodString>;
344
+ port: z.ZodOptional<z.ZodNumber>;
345
+ rejectUnauthorized: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
346
+ servername: z.ZodOptional<z.ZodString>;
347
+ checkServerIdentity: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
348
+ ca: z.ZodOptional<z.ZodString>;
349
+ cert: z.ZodOptional<z.ZodString>;
350
+ key: z.ZodOptional<z.ZodString>;
351
+ passphrase: z.ZodOptional<z.ZodString>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ rejectUnauthorized: boolean;
354
+ host?: string | undefined;
355
+ port?: number | undefined;
356
+ servername?: string | undefined;
357
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
358
+ ca?: string | undefined;
359
+ cert?: string | undefined;
360
+ key?: string | undefined;
361
+ passphrase?: string | undefined;
362
+ }, {
363
+ host?: string | undefined;
364
+ port?: number | undefined;
365
+ rejectUnauthorized?: boolean | undefined;
366
+ servername?: string | undefined;
367
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
368
+ ca?: string | undefined;
369
+ cert?: string | undefined;
370
+ key?: string | undefined;
371
+ passphrase?: string | undefined;
372
+ }>>;
373
+ sentinel: z.ZodOptional<z.ZodObject<{
374
+ sentinels: z.ZodArray<z.ZodObject<{
375
+ host: z.ZodString;
376
+ port: z.ZodNumber;
377
+ }, "strip", z.ZodTypeAny, {
378
+ host: string;
379
+ port: number;
380
+ }, {
381
+ host: string;
382
+ port: number;
383
+ }>, "many">;
384
+ name: z.ZodString;
385
+ password: z.ZodOptional<z.ZodString>;
386
+ username: z.ZodOptional<z.ZodString>;
387
+ }, "strip", z.ZodTypeAny, {
388
+ name: string;
389
+ sentinels: {
390
+ host: string;
391
+ port: number;
392
+ }[];
393
+ username?: string | undefined;
394
+ password?: string | undefined;
395
+ }, {
396
+ name: string;
397
+ sentinels: {
398
+ host: string;
399
+ port: number;
400
+ }[];
401
+ username?: string | undefined;
402
+ password?: string | undefined;
403
+ }>>;
404
+ cluster: z.ZodOptional<z.ZodObject<{
405
+ nodes: z.ZodArray<z.ZodObject<{
406
+ host: z.ZodString;
407
+ port: z.ZodNumber;
408
+ }, "strip", z.ZodTypeAny, {
409
+ host: string;
410
+ port: number;
411
+ }, {
412
+ host: string;
413
+ port: number;
414
+ }>, "many">;
415
+ options: z.ZodOptional<z.ZodObject<{
416
+ redisOptions: z.ZodOptional<z.ZodAny>;
417
+ maxRedirections: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
418
+ retryDelayOnFailover: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
419
+ useSlave: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
420
+ randomize: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
421
+ removeNodeOnCount: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
422
+ promoteSlaveOnFailover: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
423
+ enableReadyCheck: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
424
+ maxRetryAttemptsPerRequest: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
425
+ }, "strip", z.ZodTypeAny, {
426
+ retryDelayOnFailover: number;
427
+ maxRedirections: number;
428
+ useSlave: boolean;
429
+ randomize: boolean;
430
+ removeNodeOnCount: boolean;
431
+ promoteSlaveOnFailover: boolean;
432
+ enableReadyCheck: boolean;
433
+ maxRetryAttemptsPerRequest: number;
434
+ redisOptions?: any;
435
+ }, {
436
+ retryDelayOnFailover?: number | undefined;
437
+ redisOptions?: any;
438
+ maxRedirections?: number | undefined;
439
+ useSlave?: boolean | undefined;
440
+ randomize?: boolean | undefined;
441
+ removeNodeOnCount?: boolean | undefined;
442
+ promoteSlaveOnFailover?: boolean | undefined;
443
+ enableReadyCheck?: boolean | undefined;
444
+ maxRetryAttemptsPerRequest?: number | undefined;
445
+ }>>;
446
+ }, "strip", z.ZodTypeAny, {
447
+ nodes: {
448
+ host: string;
449
+ port: number;
450
+ }[];
451
+ options?: {
452
+ retryDelayOnFailover: number;
453
+ maxRedirections: number;
454
+ useSlave: boolean;
455
+ randomize: boolean;
456
+ removeNodeOnCount: boolean;
457
+ promoteSlaveOnFailover: boolean;
458
+ enableReadyCheck: boolean;
459
+ maxRetryAttemptsPerRequest: number;
460
+ redisOptions?: any;
461
+ } | undefined;
462
+ }, {
463
+ nodes: {
464
+ host: string;
465
+ port: number;
466
+ }[];
467
+ options?: {
468
+ retryDelayOnFailover?: number | undefined;
469
+ redisOptions?: any;
470
+ maxRedirections?: number | undefined;
471
+ useSlave?: boolean | undefined;
472
+ randomize?: boolean | undefined;
473
+ removeNodeOnCount?: boolean | undefined;
474
+ promoteSlaveOnFailover?: boolean | undefined;
475
+ enableReadyCheck?: boolean | undefined;
476
+ maxRetryAttemptsPerRequest?: number | undefined;
477
+ } | undefined;
478
+ }>>;
479
+ }, "strip", z.ZodTypeAny, {
480
+ host: string;
481
+ port: number;
482
+ db: number;
483
+ name: string;
484
+ connectTimeout: number;
485
+ commandTimeout: number;
486
+ retryDelayOnFailover: number;
487
+ maxRetriesPerRequest: number;
488
+ lazyConnect: boolean;
489
+ keepAlive: number;
490
+ family: "IPv4" | "IPv6";
491
+ username?: string | undefined;
492
+ password?: string | undefined;
493
+ tls?: {
494
+ rejectUnauthorized: boolean;
495
+ host?: string | undefined;
496
+ port?: number | undefined;
497
+ servername?: string | undefined;
498
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
499
+ ca?: string | undefined;
500
+ cert?: string | undefined;
501
+ key?: string | undefined;
502
+ passphrase?: string | undefined;
503
+ } | undefined;
504
+ sentinel?: {
505
+ name: string;
506
+ sentinels: {
507
+ host: string;
508
+ port: number;
509
+ }[];
510
+ username?: string | undefined;
511
+ password?: string | undefined;
512
+ } | undefined;
513
+ cluster?: {
514
+ nodes: {
515
+ host: string;
516
+ port: number;
517
+ }[];
518
+ options?: {
519
+ retryDelayOnFailover: number;
520
+ maxRedirections: number;
521
+ useSlave: boolean;
522
+ randomize: boolean;
523
+ removeNodeOnCount: boolean;
524
+ promoteSlaveOnFailover: boolean;
525
+ enableReadyCheck: boolean;
526
+ maxRetryAttemptsPerRequest: number;
527
+ redisOptions?: any;
528
+ } | undefined;
529
+ } | undefined;
530
+ }, {
531
+ host: string;
532
+ port?: number | undefined;
533
+ username?: string | undefined;
534
+ password?: string | undefined;
535
+ db?: number | undefined;
536
+ name?: string | undefined;
537
+ connectTimeout?: number | undefined;
538
+ commandTimeout?: number | undefined;
539
+ retryDelayOnFailover?: number | undefined;
540
+ maxRetriesPerRequest?: number | undefined;
541
+ lazyConnect?: boolean | undefined;
542
+ keepAlive?: number | undefined;
543
+ family?: "IPv4" | "IPv6" | undefined;
544
+ tls?: {
545
+ host?: string | undefined;
546
+ port?: number | undefined;
547
+ rejectUnauthorized?: boolean | undefined;
548
+ servername?: string | undefined;
549
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
550
+ ca?: string | undefined;
551
+ cert?: string | undefined;
552
+ key?: string | undefined;
553
+ passphrase?: string | undefined;
554
+ } | undefined;
555
+ sentinel?: {
556
+ name: string;
557
+ sentinels: {
558
+ host: string;
559
+ port: number;
560
+ }[];
561
+ username?: string | undefined;
562
+ password?: string | undefined;
563
+ } | undefined;
564
+ cluster?: {
565
+ nodes: {
566
+ host: string;
567
+ port: number;
568
+ }[];
569
+ options?: {
570
+ retryDelayOnFailover?: number | undefined;
571
+ redisOptions?: any;
572
+ maxRedirections?: number | undefined;
573
+ useSlave?: boolean | undefined;
574
+ randomize?: boolean | undefined;
575
+ removeNodeOnCount?: boolean | undefined;
576
+ promoteSlaveOnFailover?: boolean | undefined;
577
+ enableReadyCheck?: boolean | undefined;
578
+ maxRetryAttemptsPerRequest?: number | undefined;
579
+ } | undefined;
580
+ } | undefined;
581
+ }>>;
582
+ temporal: z.ZodOptional<z.ZodObject<{
583
+ address: z.ZodString;
584
+ namespace: z.ZodDefault<z.ZodString>;
585
+ taskQueue: z.ZodDefault<z.ZodString>;
586
+ connection: z.ZodOptional<z.ZodObject<{
587
+ tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
588
+ certPath: z.ZodOptional<z.ZodString>;
589
+ keyPath: z.ZodOptional<z.ZodString>;
590
+ caPath: z.ZodOptional<z.ZodString>;
591
+ serverNameOverride: z.ZodOptional<z.ZodString>;
592
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
593
+ }, "strip", z.ZodTypeAny, {
594
+ tls: boolean;
595
+ certPath?: string | undefined;
596
+ keyPath?: string | undefined;
597
+ caPath?: string | undefined;
598
+ serverNameOverride?: string | undefined;
599
+ metadata?: Record<string, string> | undefined;
600
+ }, {
601
+ tls?: boolean | undefined;
602
+ certPath?: string | undefined;
603
+ keyPath?: string | undefined;
604
+ caPath?: string | undefined;
605
+ serverNameOverride?: string | undefined;
606
+ metadata?: Record<string, string> | undefined;
607
+ }>>;
608
+ workflows: z.ZodOptional<z.ZodObject<{
609
+ defaultExecutionTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
610
+ defaultTaskTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
611
+ maxConcurrentWorkflowTaskPolls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
612
+ maxConcurrentActivityTaskPolls: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
613
+ maxConcurrentWorkflowTaskExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
614
+ maxConcurrentActivityTaskExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
615
+ }, "strip", z.ZodTypeAny, {
616
+ defaultExecutionTimeoutMs: number;
617
+ defaultTaskTimeoutMs: number;
618
+ maxConcurrentWorkflowTaskPolls: number;
619
+ maxConcurrentActivityTaskPolls: number;
620
+ maxConcurrentWorkflowTaskExecutions: number;
621
+ maxConcurrentActivityTaskExecutions: number;
622
+ }, {
623
+ defaultExecutionTimeoutMs?: number | undefined;
624
+ defaultTaskTimeoutMs?: number | undefined;
625
+ maxConcurrentWorkflowTaskPolls?: number | undefined;
626
+ maxConcurrentActivityTaskPolls?: number | undefined;
627
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
628
+ maxConcurrentActivityTaskExecutions?: number | undefined;
629
+ }>>;
630
+ activities: z.ZodOptional<z.ZodObject<{
631
+ defaultStartToCloseTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
632
+ defaultScheduleToCloseTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
633
+ defaultHeartbeatTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
634
+ defaultRetryPolicy: z.ZodOptional<z.ZodObject<{
635
+ initialInterval: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
636
+ backoffCoefficient: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
637
+ maximumInterval: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
638
+ maximumAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
639
+ nonRetryableErrorTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
640
+ }, "strip", z.ZodTypeAny, {
641
+ initialInterval: number;
642
+ backoffCoefficient: number;
643
+ maximumInterval: number;
644
+ maximumAttempts: number;
645
+ nonRetryableErrorTypes?: string[] | undefined;
646
+ }, {
647
+ initialInterval?: number | undefined;
648
+ backoffCoefficient?: number | undefined;
649
+ maximumInterval?: number | undefined;
650
+ maximumAttempts?: number | undefined;
651
+ nonRetryableErrorTypes?: string[] | undefined;
652
+ }>>;
653
+ }, "strip", z.ZodTypeAny, {
654
+ defaultStartToCloseTimeoutMs: number;
655
+ defaultScheduleToCloseTimeoutMs: number;
656
+ defaultHeartbeatTimeoutMs: number;
657
+ defaultRetryPolicy?: {
658
+ initialInterval: number;
659
+ backoffCoefficient: number;
660
+ maximumInterval: number;
661
+ maximumAttempts: number;
662
+ nonRetryableErrorTypes?: string[] | undefined;
663
+ } | undefined;
664
+ }, {
665
+ defaultStartToCloseTimeoutMs?: number | undefined;
666
+ defaultScheduleToCloseTimeoutMs?: number | undefined;
667
+ defaultHeartbeatTimeoutMs?: number | undefined;
668
+ defaultRetryPolicy?: {
669
+ initialInterval?: number | undefined;
670
+ backoffCoefficient?: number | undefined;
671
+ maximumInterval?: number | undefined;
672
+ maximumAttempts?: number | undefined;
673
+ nonRetryableErrorTypes?: string[] | undefined;
674
+ } | undefined;
675
+ }>>;
676
+ workers: z.ZodOptional<z.ZodArray<z.ZodObject<{
677
+ taskQueue: z.ZodString;
678
+ workflowsPath: z.ZodString;
679
+ activitiesPath: z.ZodOptional<z.ZodString>;
680
+ maxConcurrentWorkflowTaskExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
681
+ maxConcurrentActivityTaskExecutions: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
682
+ stickyQueueScheduleToStartTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
683
+ stickyQueueSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
684
+ enableSessionWorker: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
685
+ sessionTimeoutMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
686
+ disabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
687
+ }, "strip", z.ZodTypeAny, {
688
+ taskQueue: string;
689
+ maxConcurrentWorkflowTaskExecutions: number;
690
+ maxConcurrentActivityTaskExecutions: number;
691
+ workflowsPath: string;
692
+ stickyQueueScheduleToStartTimeoutMs: number;
693
+ stickyQueueSize: number;
694
+ enableSessionWorker: boolean;
695
+ sessionTimeoutMs: number;
696
+ disabled: boolean;
697
+ activitiesPath?: string | undefined;
698
+ }, {
699
+ taskQueue: string;
700
+ workflowsPath: string;
701
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
702
+ maxConcurrentActivityTaskExecutions?: number | undefined;
703
+ activitiesPath?: string | undefined;
704
+ stickyQueueScheduleToStartTimeoutMs?: number | undefined;
705
+ stickyQueueSize?: number | undefined;
706
+ enableSessionWorker?: boolean | undefined;
707
+ sessionTimeoutMs?: number | undefined;
708
+ disabled?: boolean | undefined;
709
+ }>, "many">>;
710
+ logging: z.ZodOptional<z.ZodObject<{
711
+ level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["TRACE", "DEBUG", "INFO", "WARN", "ERROR"]>>>;
712
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "pretty"]>>>;
713
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
714
+ }, "strip", z.ZodTypeAny, {
715
+ level: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR";
716
+ format: "json" | "pretty";
717
+ metadata?: Record<string, any> | undefined;
718
+ }, {
719
+ metadata?: Record<string, any> | undefined;
720
+ level?: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
721
+ format?: "json" | "pretty" | undefined;
722
+ }>>;
723
+ metrics: z.ZodOptional<z.ZodObject<{
724
+ prometheus: z.ZodOptional<z.ZodObject<{
725
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
726
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
727
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
728
+ }, "strip", z.ZodTypeAny, {
729
+ port: number;
730
+ path: string;
731
+ prefix: string;
732
+ }, {
733
+ port?: number | undefined;
734
+ path?: string | undefined;
735
+ prefix?: string | undefined;
736
+ }>>;
737
+ statsd: z.ZodOptional<z.ZodObject<{
738
+ host: z.ZodString;
739
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
740
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
741
+ globalTags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
742
+ }, "strip", z.ZodTypeAny, {
743
+ host: string;
744
+ port: number;
745
+ prefix: string;
746
+ globalTags?: Record<string, string> | undefined;
747
+ }, {
748
+ host: string;
749
+ port?: number | undefined;
750
+ prefix?: string | undefined;
751
+ globalTags?: Record<string, string> | undefined;
752
+ }>>;
753
+ datadog: z.ZodOptional<z.ZodObject<{
754
+ apiKey: z.ZodString;
755
+ host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
756
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
757
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
758
+ globalTags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
759
+ }, "strip", z.ZodTypeAny, {
760
+ host: string;
761
+ port: number;
762
+ prefix: string;
763
+ apiKey: string;
764
+ globalTags?: Record<string, string> | undefined;
765
+ }, {
766
+ apiKey: string;
767
+ host?: string | undefined;
768
+ port?: number | undefined;
769
+ prefix?: string | undefined;
770
+ globalTags?: Record<string, string> | undefined;
771
+ }>>;
772
+ }, "strip", z.ZodTypeAny, {
773
+ prometheus?: {
774
+ port: number;
775
+ path: string;
776
+ prefix: string;
777
+ } | undefined;
778
+ statsd?: {
779
+ host: string;
780
+ port: number;
781
+ prefix: string;
782
+ globalTags?: Record<string, string> | undefined;
783
+ } | undefined;
784
+ datadog?: {
785
+ host: string;
786
+ port: number;
787
+ prefix: string;
788
+ apiKey: string;
789
+ globalTags?: Record<string, string> | undefined;
790
+ } | undefined;
791
+ }, {
792
+ prometheus?: {
793
+ port?: number | undefined;
794
+ path?: string | undefined;
795
+ prefix?: string | undefined;
796
+ } | undefined;
797
+ statsd?: {
798
+ host: string;
799
+ port?: number | undefined;
800
+ prefix?: string | undefined;
801
+ globalTags?: Record<string, string> | undefined;
802
+ } | undefined;
803
+ datadog?: {
804
+ apiKey: string;
805
+ host?: string | undefined;
806
+ port?: number | undefined;
807
+ prefix?: string | undefined;
808
+ globalTags?: Record<string, string> | undefined;
809
+ } | undefined;
810
+ }>>;
811
+ tracing: z.ZodOptional<z.ZodObject<{
812
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
813
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["jaeger", "zipkin", "opentelemetry"]>>>;
814
+ jaeger: z.ZodOptional<z.ZodObject<{
815
+ endpoint: z.ZodDefault<z.ZodOptional<z.ZodString>>;
816
+ serviceName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
817
+ }, "strip", z.ZodTypeAny, {
818
+ endpoint: string;
819
+ serviceName: string;
820
+ }, {
821
+ endpoint?: string | undefined;
822
+ serviceName?: string | undefined;
823
+ }>>;
824
+ zipkin: z.ZodOptional<z.ZodObject<{
825
+ url: z.ZodString;
826
+ serviceName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
827
+ }, "strip", z.ZodTypeAny, {
828
+ url: string;
829
+ serviceName: string;
830
+ }, {
831
+ url: string;
832
+ serviceName?: string | undefined;
833
+ }>>;
834
+ opentelemetry: z.ZodOptional<z.ZodObject<{
835
+ serviceName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
836
+ serviceVersion: z.ZodDefault<z.ZodOptional<z.ZodString>>;
837
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
838
+ environment: z.ZodOptional<z.ZodObject<{
839
+ name: z.ZodDefault<z.ZodOptional<z.ZodString>>;
840
+ namespace: z.ZodOptional<z.ZodString>;
841
+ }, "strip", z.ZodTypeAny, {
842
+ name: string;
843
+ namespace?: string | undefined;
844
+ }, {
845
+ name?: string | undefined;
846
+ namespace?: string | undefined;
847
+ }>>;
848
+ }, "strip", z.ZodTypeAny, {
849
+ serviceName: string;
850
+ serviceVersion: string;
851
+ headers?: Record<string, string> | undefined;
852
+ environment?: {
853
+ name: string;
854
+ namespace?: string | undefined;
855
+ } | undefined;
856
+ }, {
857
+ serviceName?: string | undefined;
858
+ serviceVersion?: string | undefined;
859
+ headers?: Record<string, string> | undefined;
860
+ environment?: {
861
+ name?: string | undefined;
862
+ namespace?: string | undefined;
863
+ } | undefined;
864
+ }>>;
865
+ }, "strip", z.ZodTypeAny, {
866
+ enabled: boolean;
867
+ provider: "jaeger" | "zipkin" | "opentelemetry";
868
+ jaeger?: {
869
+ endpoint: string;
870
+ serviceName: string;
871
+ } | undefined;
872
+ zipkin?: {
873
+ url: string;
874
+ serviceName: string;
875
+ } | undefined;
876
+ opentelemetry?: {
877
+ serviceName: string;
878
+ serviceVersion: string;
879
+ headers?: Record<string, string> | undefined;
880
+ environment?: {
881
+ name: string;
882
+ namespace?: string | undefined;
883
+ } | undefined;
884
+ } | undefined;
885
+ }, {
886
+ enabled?: boolean | undefined;
887
+ jaeger?: {
888
+ endpoint?: string | undefined;
889
+ serviceName?: string | undefined;
890
+ } | undefined;
891
+ zipkin?: {
892
+ url: string;
893
+ serviceName?: string | undefined;
894
+ } | undefined;
895
+ opentelemetry?: {
896
+ serviceName?: string | undefined;
897
+ serviceVersion?: string | undefined;
898
+ headers?: Record<string, string> | undefined;
899
+ environment?: {
900
+ name?: string | undefined;
901
+ namespace?: string | undefined;
902
+ } | undefined;
903
+ } | undefined;
904
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
905
+ }>>;
906
+ }, "strip", z.ZodTypeAny, {
907
+ address: string;
908
+ namespace: string;
909
+ taskQueue: string;
910
+ logging?: {
911
+ level: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR";
912
+ format: "json" | "pretty";
913
+ metadata?: Record<string, any> | undefined;
914
+ } | undefined;
915
+ connection?: {
916
+ tls: boolean;
917
+ certPath?: string | undefined;
918
+ keyPath?: string | undefined;
919
+ caPath?: string | undefined;
920
+ serverNameOverride?: string | undefined;
921
+ metadata?: Record<string, string> | undefined;
922
+ } | undefined;
923
+ workflows?: {
924
+ defaultExecutionTimeoutMs: number;
925
+ defaultTaskTimeoutMs: number;
926
+ maxConcurrentWorkflowTaskPolls: number;
927
+ maxConcurrentActivityTaskPolls: number;
928
+ maxConcurrentWorkflowTaskExecutions: number;
929
+ maxConcurrentActivityTaskExecutions: number;
930
+ } | undefined;
931
+ activities?: {
932
+ defaultStartToCloseTimeoutMs: number;
933
+ defaultScheduleToCloseTimeoutMs: number;
934
+ defaultHeartbeatTimeoutMs: number;
935
+ defaultRetryPolicy?: {
936
+ initialInterval: number;
937
+ backoffCoefficient: number;
938
+ maximumInterval: number;
939
+ maximumAttempts: number;
940
+ nonRetryableErrorTypes?: string[] | undefined;
941
+ } | undefined;
942
+ } | undefined;
943
+ workers?: {
944
+ taskQueue: string;
945
+ maxConcurrentWorkflowTaskExecutions: number;
946
+ maxConcurrentActivityTaskExecutions: number;
947
+ workflowsPath: string;
948
+ stickyQueueScheduleToStartTimeoutMs: number;
949
+ stickyQueueSize: number;
950
+ enableSessionWorker: boolean;
951
+ sessionTimeoutMs: number;
952
+ disabled: boolean;
953
+ activitiesPath?: string | undefined;
954
+ }[] | undefined;
955
+ metrics?: {
956
+ prometheus?: {
957
+ port: number;
958
+ path: string;
959
+ prefix: string;
960
+ } | undefined;
961
+ statsd?: {
962
+ host: string;
963
+ port: number;
964
+ prefix: string;
965
+ globalTags?: Record<string, string> | undefined;
966
+ } | undefined;
967
+ datadog?: {
968
+ host: string;
969
+ port: number;
970
+ prefix: string;
971
+ apiKey: string;
972
+ globalTags?: Record<string, string> | undefined;
973
+ } | undefined;
974
+ } | undefined;
975
+ tracing?: {
976
+ enabled: boolean;
977
+ provider: "jaeger" | "zipkin" | "opentelemetry";
978
+ jaeger?: {
979
+ endpoint: string;
980
+ serviceName: string;
981
+ } | undefined;
982
+ zipkin?: {
983
+ url: string;
984
+ serviceName: string;
985
+ } | undefined;
986
+ opentelemetry?: {
987
+ serviceName: string;
988
+ serviceVersion: string;
989
+ headers?: Record<string, string> | undefined;
990
+ environment?: {
991
+ name: string;
992
+ namespace?: string | undefined;
993
+ } | undefined;
994
+ } | undefined;
995
+ } | undefined;
996
+ }, {
997
+ address: string;
998
+ logging?: {
999
+ metadata?: Record<string, any> | undefined;
1000
+ level?: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
1001
+ format?: "json" | "pretty" | undefined;
1002
+ } | undefined;
1003
+ namespace?: string | undefined;
1004
+ taskQueue?: string | undefined;
1005
+ connection?: {
1006
+ tls?: boolean | undefined;
1007
+ certPath?: string | undefined;
1008
+ keyPath?: string | undefined;
1009
+ caPath?: string | undefined;
1010
+ serverNameOverride?: string | undefined;
1011
+ metadata?: Record<string, string> | undefined;
1012
+ } | undefined;
1013
+ workflows?: {
1014
+ defaultExecutionTimeoutMs?: number | undefined;
1015
+ defaultTaskTimeoutMs?: number | undefined;
1016
+ maxConcurrentWorkflowTaskPolls?: number | undefined;
1017
+ maxConcurrentActivityTaskPolls?: number | undefined;
1018
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
1019
+ maxConcurrentActivityTaskExecutions?: number | undefined;
1020
+ } | undefined;
1021
+ activities?: {
1022
+ defaultStartToCloseTimeoutMs?: number | undefined;
1023
+ defaultScheduleToCloseTimeoutMs?: number | undefined;
1024
+ defaultHeartbeatTimeoutMs?: number | undefined;
1025
+ defaultRetryPolicy?: {
1026
+ initialInterval?: number | undefined;
1027
+ backoffCoefficient?: number | undefined;
1028
+ maximumInterval?: number | undefined;
1029
+ maximumAttempts?: number | undefined;
1030
+ nonRetryableErrorTypes?: string[] | undefined;
1031
+ } | undefined;
1032
+ } | undefined;
1033
+ workers?: {
1034
+ taskQueue: string;
1035
+ workflowsPath: string;
1036
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
1037
+ maxConcurrentActivityTaskExecutions?: number | undefined;
1038
+ activitiesPath?: string | undefined;
1039
+ stickyQueueScheduleToStartTimeoutMs?: number | undefined;
1040
+ stickyQueueSize?: number | undefined;
1041
+ enableSessionWorker?: boolean | undefined;
1042
+ sessionTimeoutMs?: number | undefined;
1043
+ disabled?: boolean | undefined;
1044
+ }[] | undefined;
1045
+ metrics?: {
1046
+ prometheus?: {
1047
+ port?: number | undefined;
1048
+ path?: string | undefined;
1049
+ prefix?: string | undefined;
1050
+ } | undefined;
1051
+ statsd?: {
1052
+ host: string;
1053
+ port?: number | undefined;
1054
+ prefix?: string | undefined;
1055
+ globalTags?: Record<string, string> | undefined;
1056
+ } | undefined;
1057
+ datadog?: {
1058
+ apiKey: string;
1059
+ host?: string | undefined;
1060
+ port?: number | undefined;
1061
+ prefix?: string | undefined;
1062
+ globalTags?: Record<string, string> | undefined;
1063
+ } | undefined;
1064
+ } | undefined;
1065
+ tracing?: {
1066
+ enabled?: boolean | undefined;
1067
+ jaeger?: {
1068
+ endpoint?: string | undefined;
1069
+ serviceName?: string | undefined;
1070
+ } | undefined;
1071
+ zipkin?: {
1072
+ url: string;
1073
+ serviceName?: string | undefined;
1074
+ } | undefined;
1075
+ opentelemetry?: {
1076
+ serviceName?: string | undefined;
1077
+ serviceVersion?: string | undefined;
1078
+ headers?: Record<string, string> | undefined;
1079
+ environment?: {
1080
+ name?: string | undefined;
1081
+ namespace?: string | undefined;
1082
+ } | undefined;
1083
+ } | undefined;
1084
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
1085
+ } | undefined;
1086
+ }>>;
1087
+ api: z.ZodOptional<z.ZodObject<{
1088
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1089
+ host: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1090
+ cors: z.ZodOptional<z.ZodObject<{
1091
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1092
+ origin: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodBoolean]>>>;
1093
+ credentials: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1094
+ methods: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1095
+ allowedHeaders: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1096
+ exposedHeaders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1097
+ maxAge: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1098
+ }, "strip", z.ZodTypeAny, {
1099
+ enabled: boolean;
1100
+ origin: string | boolean | string[];
1101
+ credentials: boolean;
1102
+ methods: string[];
1103
+ allowedHeaders: string[];
1104
+ maxAge: number;
1105
+ exposedHeaders?: string[] | undefined;
1106
+ }, {
1107
+ enabled?: boolean | undefined;
1108
+ origin?: string | boolean | string[] | undefined;
1109
+ credentials?: boolean | undefined;
1110
+ methods?: string[] | undefined;
1111
+ allowedHeaders?: string[] | undefined;
1112
+ exposedHeaders?: string[] | undefined;
1113
+ maxAge?: number | undefined;
1114
+ }>>;
1115
+ rateLimit: z.ZodOptional<z.ZodObject<{
1116
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1117
+ windowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1118
+ max: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1119
+ message: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1120
+ standardHeaders: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1121
+ legacyHeaders: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1122
+ skipSuccessfulRequests: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1123
+ skipFailedRequests: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1124
+ }, "strip", z.ZodTypeAny, {
1125
+ message: string;
1126
+ max: number;
1127
+ enabled: boolean;
1128
+ windowMs: number;
1129
+ standardHeaders: boolean;
1130
+ legacyHeaders: boolean;
1131
+ skipSuccessfulRequests: boolean;
1132
+ skipFailedRequests: boolean;
1133
+ }, {
1134
+ message?: string | undefined;
1135
+ max?: number | undefined;
1136
+ enabled?: boolean | undefined;
1137
+ windowMs?: number | undefined;
1138
+ standardHeaders?: boolean | undefined;
1139
+ legacyHeaders?: boolean | undefined;
1140
+ skipSuccessfulRequests?: boolean | undefined;
1141
+ skipFailedRequests?: boolean | undefined;
1142
+ }>>;
1143
+ compression: z.ZodOptional<z.ZodObject<{
1144
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1145
+ level: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1146
+ threshold: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1147
+ }, "strip", z.ZodTypeAny, {
1148
+ level: number;
1149
+ enabled: boolean;
1150
+ threshold: number;
1151
+ }, {
1152
+ level?: number | undefined;
1153
+ enabled?: boolean | undefined;
1154
+ threshold?: number | undefined;
1155
+ }>>;
1156
+ helmet: z.ZodOptional<z.ZodObject<{
1157
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1158
+ contentSecurityPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1159
+ crossOriginEmbedderPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1160
+ crossOriginOpenerPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1161
+ crossOriginResourcePolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1162
+ dnsPrefetchControl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1163
+ frameguard: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1164
+ hidePoweredBy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1165
+ hsts: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1166
+ ieNoOpen: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1167
+ noSniff: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1168
+ originAgentCluster: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1169
+ permittedCrossDomainPolicies: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1170
+ referrerPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1171
+ xssFilter: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1172
+ }, "strip", z.ZodTypeAny, {
1173
+ enabled: boolean;
1174
+ contentSecurityPolicy: boolean;
1175
+ crossOriginEmbedderPolicy: boolean;
1176
+ crossOriginOpenerPolicy: boolean;
1177
+ crossOriginResourcePolicy: boolean;
1178
+ dnsPrefetchControl: boolean;
1179
+ frameguard: boolean;
1180
+ hidePoweredBy: boolean;
1181
+ hsts: boolean;
1182
+ ieNoOpen: boolean;
1183
+ noSniff: boolean;
1184
+ originAgentCluster: boolean;
1185
+ permittedCrossDomainPolicies: boolean;
1186
+ referrerPolicy: boolean;
1187
+ xssFilter: boolean;
1188
+ }, {
1189
+ enabled?: boolean | undefined;
1190
+ contentSecurityPolicy?: boolean | undefined;
1191
+ crossOriginEmbedderPolicy?: boolean | undefined;
1192
+ crossOriginOpenerPolicy?: boolean | undefined;
1193
+ crossOriginResourcePolicy?: boolean | undefined;
1194
+ dnsPrefetchControl?: boolean | undefined;
1195
+ frameguard?: boolean | undefined;
1196
+ hidePoweredBy?: boolean | undefined;
1197
+ hsts?: boolean | undefined;
1198
+ ieNoOpen?: boolean | undefined;
1199
+ noSniff?: boolean | undefined;
1200
+ originAgentCluster?: boolean | undefined;
1201
+ permittedCrossDomainPolicies?: boolean | undefined;
1202
+ referrerPolicy?: boolean | undefined;
1203
+ xssFilter?: boolean | undefined;
1204
+ }>>;
1205
+ logging: z.ZodOptional<z.ZodObject<{
1206
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1207
+ level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["fatal", "error", "warn", "info", "debug", "trace"]>>>;
1208
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "pretty"]>>>;
1209
+ colorize: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1210
+ timestamp: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1211
+ prettyPrint: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1212
+ }, "strip", z.ZodTypeAny, {
1213
+ level: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
1214
+ format: "json" | "pretty";
1215
+ enabled: boolean;
1216
+ colorize: boolean;
1217
+ timestamp: boolean;
1218
+ prettyPrint: boolean;
1219
+ }, {
1220
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
1221
+ format?: "json" | "pretty" | undefined;
1222
+ enabled?: boolean | undefined;
1223
+ colorize?: boolean | undefined;
1224
+ timestamp?: boolean | undefined;
1225
+ prettyPrint?: boolean | undefined;
1226
+ }>>;
1227
+ health: z.ZodOptional<z.ZodObject<{
1228
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1229
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1230
+ detailed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1231
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
1232
+ name: z.ZodString;
1233
+ type: z.ZodEnum<["http", "tcp", "database", "redis", "custom"]>;
1234
+ target: z.ZodString;
1235
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1236
+ interval: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1237
+ retries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1238
+ critical: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1239
+ }, "strip", z.ZodTypeAny, {
1240
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1241
+ timeout: number;
1242
+ name: string;
1243
+ target: string;
1244
+ interval: number;
1245
+ retries: number;
1246
+ critical: boolean;
1247
+ }, {
1248
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1249
+ name: string;
1250
+ target: string;
1251
+ timeout?: number | undefined;
1252
+ interval?: number | undefined;
1253
+ retries?: number | undefined;
1254
+ critical?: boolean | undefined;
1255
+ }>, "many">>;
1256
+ }, "strip", z.ZodTypeAny, {
1257
+ path: string;
1258
+ enabled: boolean;
1259
+ detailed: boolean;
1260
+ checks?: {
1261
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1262
+ timeout: number;
1263
+ name: string;
1264
+ target: string;
1265
+ interval: number;
1266
+ retries: number;
1267
+ critical: boolean;
1268
+ }[] | undefined;
1269
+ }, {
1270
+ path?: string | undefined;
1271
+ enabled?: boolean | undefined;
1272
+ detailed?: boolean | undefined;
1273
+ checks?: {
1274
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1275
+ name: string;
1276
+ target: string;
1277
+ timeout?: number | undefined;
1278
+ interval?: number | undefined;
1279
+ retries?: number | undefined;
1280
+ critical?: boolean | undefined;
1281
+ }[] | undefined;
1282
+ }>>;
1283
+ metrics: z.ZodOptional<z.ZodObject<{
1284
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1285
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1286
+ port: z.ZodOptional<z.ZodNumber>;
1287
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1288
+ includeDefaultMetrics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1289
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1290
+ }, "strip", z.ZodTypeAny, {
1291
+ path: string;
1292
+ prefix: string;
1293
+ enabled: boolean;
1294
+ includeDefaultMetrics: boolean;
1295
+ port?: number | undefined;
1296
+ labels?: Record<string, string> | undefined;
1297
+ }, {
1298
+ port?: number | undefined;
1299
+ path?: string | undefined;
1300
+ prefix?: string | undefined;
1301
+ enabled?: boolean | undefined;
1302
+ labels?: Record<string, string> | undefined;
1303
+ includeDefaultMetrics?: boolean | undefined;
1304
+ }>>;
1305
+ swagger: z.ZodOptional<z.ZodObject<{
1306
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1307
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1308
+ title: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1309
+ description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1310
+ version: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1311
+ servers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1312
+ url: z.ZodString;
1313
+ description: z.ZodOptional<z.ZodString>;
1314
+ }, "strip", z.ZodTypeAny, {
1315
+ url: string;
1316
+ description?: string | undefined;
1317
+ }, {
1318
+ url: string;
1319
+ description?: string | undefined;
1320
+ }>, "many">>;
1321
+ security: z.ZodOptional<z.ZodArray<z.ZodObject<{
1322
+ type: z.ZodString;
1323
+ scheme: z.ZodString;
1324
+ bearerFormat: z.ZodOptional<z.ZodString>;
1325
+ }, "strip", z.ZodTypeAny, {
1326
+ type: string;
1327
+ scheme: string;
1328
+ bearerFormat?: string | undefined;
1329
+ }, {
1330
+ type: string;
1331
+ scheme: string;
1332
+ bearerFormat?: string | undefined;
1333
+ }>, "many">>;
1334
+ }, "strip", z.ZodTypeAny, {
1335
+ path: string;
1336
+ enabled: boolean;
1337
+ title: string;
1338
+ description: string;
1339
+ version: string;
1340
+ servers?: {
1341
+ url: string;
1342
+ description?: string | undefined;
1343
+ }[] | undefined;
1344
+ security?: {
1345
+ type: string;
1346
+ scheme: string;
1347
+ bearerFormat?: string | undefined;
1348
+ }[] | undefined;
1349
+ }, {
1350
+ path?: string | undefined;
1351
+ enabled?: boolean | undefined;
1352
+ title?: string | undefined;
1353
+ description?: string | undefined;
1354
+ version?: string | undefined;
1355
+ servers?: {
1356
+ url: string;
1357
+ description?: string | undefined;
1358
+ }[] | undefined;
1359
+ security?: {
1360
+ type: string;
1361
+ scheme: string;
1362
+ bearerFormat?: string | undefined;
1363
+ }[] | undefined;
1364
+ }>>;
1365
+ middleware: z.ZodOptional<z.ZodArray<z.ZodObject<{
1366
+ name: z.ZodString;
1367
+ path: z.ZodOptional<z.ZodString>;
1368
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
1369
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1370
+ }, "strip", z.ZodTypeAny, {
1371
+ name: string;
1372
+ enabled: boolean;
1373
+ path?: string | undefined;
1374
+ options?: Record<string, any> | undefined;
1375
+ }, {
1376
+ name: string;
1377
+ path?: string | undefined;
1378
+ options?: Record<string, any> | undefined;
1379
+ enabled?: boolean | undefined;
1380
+ }>, "many">>;
1381
+ static: z.ZodOptional<z.ZodArray<z.ZodObject<{
1382
+ path: z.ZodString;
1383
+ directory: z.ZodString;
1384
+ options: z.ZodOptional<z.ZodObject<{
1385
+ maxAge: z.ZodOptional<z.ZodNumber>;
1386
+ immutable: z.ZodOptional<z.ZodBoolean>;
1387
+ extensions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1388
+ setHeaders: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
1389
+ }, "strip", z.ZodTypeAny, {
1390
+ maxAge?: number | undefined;
1391
+ immutable?: boolean | undefined;
1392
+ extensions?: string[] | undefined;
1393
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1394
+ }, {
1395
+ maxAge?: number | undefined;
1396
+ immutable?: boolean | undefined;
1397
+ extensions?: string[] | undefined;
1398
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1399
+ }>>;
1400
+ }, "strip", z.ZodTypeAny, {
1401
+ path: string;
1402
+ directory: string;
1403
+ options?: {
1404
+ maxAge?: number | undefined;
1405
+ immutable?: boolean | undefined;
1406
+ extensions?: string[] | undefined;
1407
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1408
+ } | undefined;
1409
+ }, {
1410
+ path: string;
1411
+ directory: string;
1412
+ options?: {
1413
+ maxAge?: number | undefined;
1414
+ immutable?: boolean | undefined;
1415
+ extensions?: string[] | undefined;
1416
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1417
+ } | undefined;
1418
+ }>, "many">>;
1419
+ proxy: z.ZodOptional<z.ZodArray<z.ZodObject<{
1420
+ path: z.ZodString;
1421
+ target: z.ZodString;
1422
+ changeOrigin: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1423
+ secure: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1424
+ ws: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1425
+ pathRewrite: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1426
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1427
+ }, "strip", z.ZodTypeAny, {
1428
+ path: string;
1429
+ target: string;
1430
+ changeOrigin: boolean;
1431
+ secure: boolean;
1432
+ ws: boolean;
1433
+ headers?: Record<string, string> | undefined;
1434
+ pathRewrite?: Record<string, string> | undefined;
1435
+ }, {
1436
+ path: string;
1437
+ target: string;
1438
+ headers?: Record<string, string> | undefined;
1439
+ changeOrigin?: boolean | undefined;
1440
+ secure?: boolean | undefined;
1441
+ ws?: boolean | undefined;
1442
+ pathRewrite?: Record<string, string> | undefined;
1443
+ }>, "many">>;
1444
+ }, "strip", z.ZodTypeAny, {
1445
+ host: string;
1446
+ port: number;
1447
+ logging?: {
1448
+ level: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
1449
+ format: "json" | "pretty";
1450
+ enabled: boolean;
1451
+ colorize: boolean;
1452
+ timestamp: boolean;
1453
+ prettyPrint: boolean;
1454
+ } | undefined;
1455
+ metrics?: {
1456
+ path: string;
1457
+ prefix: string;
1458
+ enabled: boolean;
1459
+ includeDefaultMetrics: boolean;
1460
+ port?: number | undefined;
1461
+ labels?: Record<string, string> | undefined;
1462
+ } | undefined;
1463
+ cors?: {
1464
+ enabled: boolean;
1465
+ origin: string | boolean | string[];
1466
+ credentials: boolean;
1467
+ methods: string[];
1468
+ allowedHeaders: string[];
1469
+ maxAge: number;
1470
+ exposedHeaders?: string[] | undefined;
1471
+ } | undefined;
1472
+ rateLimit?: {
1473
+ message: string;
1474
+ max: number;
1475
+ enabled: boolean;
1476
+ windowMs: number;
1477
+ standardHeaders: boolean;
1478
+ legacyHeaders: boolean;
1479
+ skipSuccessfulRequests: boolean;
1480
+ skipFailedRequests: boolean;
1481
+ } | undefined;
1482
+ compression?: {
1483
+ level: number;
1484
+ enabled: boolean;
1485
+ threshold: number;
1486
+ } | undefined;
1487
+ helmet?: {
1488
+ enabled: boolean;
1489
+ contentSecurityPolicy: boolean;
1490
+ crossOriginEmbedderPolicy: boolean;
1491
+ crossOriginOpenerPolicy: boolean;
1492
+ crossOriginResourcePolicy: boolean;
1493
+ dnsPrefetchControl: boolean;
1494
+ frameguard: boolean;
1495
+ hidePoweredBy: boolean;
1496
+ hsts: boolean;
1497
+ ieNoOpen: boolean;
1498
+ noSniff: boolean;
1499
+ originAgentCluster: boolean;
1500
+ permittedCrossDomainPolicies: boolean;
1501
+ referrerPolicy: boolean;
1502
+ xssFilter: boolean;
1503
+ } | undefined;
1504
+ health?: {
1505
+ path: string;
1506
+ enabled: boolean;
1507
+ detailed: boolean;
1508
+ checks?: {
1509
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1510
+ timeout: number;
1511
+ name: string;
1512
+ target: string;
1513
+ interval: number;
1514
+ retries: number;
1515
+ critical: boolean;
1516
+ }[] | undefined;
1517
+ } | undefined;
1518
+ swagger?: {
1519
+ path: string;
1520
+ enabled: boolean;
1521
+ title: string;
1522
+ description: string;
1523
+ version: string;
1524
+ servers?: {
1525
+ url: string;
1526
+ description?: string | undefined;
1527
+ }[] | undefined;
1528
+ security?: {
1529
+ type: string;
1530
+ scheme: string;
1531
+ bearerFormat?: string | undefined;
1532
+ }[] | undefined;
1533
+ } | undefined;
1534
+ middleware?: {
1535
+ name: string;
1536
+ enabled: boolean;
1537
+ path?: string | undefined;
1538
+ options?: Record<string, any> | undefined;
1539
+ }[] | undefined;
1540
+ static?: {
1541
+ path: string;
1542
+ directory: string;
1543
+ options?: {
1544
+ maxAge?: number | undefined;
1545
+ immutable?: boolean | undefined;
1546
+ extensions?: string[] | undefined;
1547
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1548
+ } | undefined;
1549
+ }[] | undefined;
1550
+ proxy?: {
1551
+ path: string;
1552
+ target: string;
1553
+ changeOrigin: boolean;
1554
+ secure: boolean;
1555
+ ws: boolean;
1556
+ headers?: Record<string, string> | undefined;
1557
+ pathRewrite?: Record<string, string> | undefined;
1558
+ }[] | undefined;
1559
+ }, {
1560
+ host?: string | undefined;
1561
+ port?: number | undefined;
1562
+ logging?: {
1563
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
1564
+ format?: "json" | "pretty" | undefined;
1565
+ enabled?: boolean | undefined;
1566
+ colorize?: boolean | undefined;
1567
+ timestamp?: boolean | undefined;
1568
+ prettyPrint?: boolean | undefined;
1569
+ } | undefined;
1570
+ metrics?: {
1571
+ port?: number | undefined;
1572
+ path?: string | undefined;
1573
+ prefix?: string | undefined;
1574
+ enabled?: boolean | undefined;
1575
+ labels?: Record<string, string> | undefined;
1576
+ includeDefaultMetrics?: boolean | undefined;
1577
+ } | undefined;
1578
+ cors?: {
1579
+ enabled?: boolean | undefined;
1580
+ origin?: string | boolean | string[] | undefined;
1581
+ credentials?: boolean | undefined;
1582
+ methods?: string[] | undefined;
1583
+ allowedHeaders?: string[] | undefined;
1584
+ exposedHeaders?: string[] | undefined;
1585
+ maxAge?: number | undefined;
1586
+ } | undefined;
1587
+ rateLimit?: {
1588
+ message?: string | undefined;
1589
+ max?: number | undefined;
1590
+ enabled?: boolean | undefined;
1591
+ windowMs?: number | undefined;
1592
+ standardHeaders?: boolean | undefined;
1593
+ legacyHeaders?: boolean | undefined;
1594
+ skipSuccessfulRequests?: boolean | undefined;
1595
+ skipFailedRequests?: boolean | undefined;
1596
+ } | undefined;
1597
+ compression?: {
1598
+ level?: number | undefined;
1599
+ enabled?: boolean | undefined;
1600
+ threshold?: number | undefined;
1601
+ } | undefined;
1602
+ helmet?: {
1603
+ enabled?: boolean | undefined;
1604
+ contentSecurityPolicy?: boolean | undefined;
1605
+ crossOriginEmbedderPolicy?: boolean | undefined;
1606
+ crossOriginOpenerPolicy?: boolean | undefined;
1607
+ crossOriginResourcePolicy?: boolean | undefined;
1608
+ dnsPrefetchControl?: boolean | undefined;
1609
+ frameguard?: boolean | undefined;
1610
+ hidePoweredBy?: boolean | undefined;
1611
+ hsts?: boolean | undefined;
1612
+ ieNoOpen?: boolean | undefined;
1613
+ noSniff?: boolean | undefined;
1614
+ originAgentCluster?: boolean | undefined;
1615
+ permittedCrossDomainPolicies?: boolean | undefined;
1616
+ referrerPolicy?: boolean | undefined;
1617
+ xssFilter?: boolean | undefined;
1618
+ } | undefined;
1619
+ health?: {
1620
+ path?: string | undefined;
1621
+ enabled?: boolean | undefined;
1622
+ detailed?: boolean | undefined;
1623
+ checks?: {
1624
+ type: "database" | "custom" | "http" | "tcp" | "redis";
1625
+ name: string;
1626
+ target: string;
1627
+ timeout?: number | undefined;
1628
+ interval?: number | undefined;
1629
+ retries?: number | undefined;
1630
+ critical?: boolean | undefined;
1631
+ }[] | undefined;
1632
+ } | undefined;
1633
+ swagger?: {
1634
+ path?: string | undefined;
1635
+ enabled?: boolean | undefined;
1636
+ title?: string | undefined;
1637
+ description?: string | undefined;
1638
+ version?: string | undefined;
1639
+ servers?: {
1640
+ url: string;
1641
+ description?: string | undefined;
1642
+ }[] | undefined;
1643
+ security?: {
1644
+ type: string;
1645
+ scheme: string;
1646
+ bearerFormat?: string | undefined;
1647
+ }[] | undefined;
1648
+ } | undefined;
1649
+ middleware?: {
1650
+ name: string;
1651
+ path?: string | undefined;
1652
+ options?: Record<string, any> | undefined;
1653
+ enabled?: boolean | undefined;
1654
+ }[] | undefined;
1655
+ static?: {
1656
+ path: string;
1657
+ directory: string;
1658
+ options?: {
1659
+ maxAge?: number | undefined;
1660
+ immutable?: boolean | undefined;
1661
+ extensions?: string[] | undefined;
1662
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
1663
+ } | undefined;
1664
+ }[] | undefined;
1665
+ proxy?: {
1666
+ path: string;
1667
+ target: string;
1668
+ headers?: Record<string, string> | undefined;
1669
+ changeOrigin?: boolean | undefined;
1670
+ secure?: boolean | undefined;
1671
+ ws?: boolean | undefined;
1672
+ pathRewrite?: Record<string, string> | undefined;
1673
+ }[] | undefined;
1674
+ }>>;
1675
+ security: z.ZodOptional<z.ZodObject<{
1676
+ jwt: z.ZodOptional<z.ZodObject<{
1677
+ secret: z.ZodString;
1678
+ expiresIn: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1679
+ refreshExpiresIn: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1680
+ issuer: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1681
+ audience: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1682
+ algorithm: z.ZodDefault<z.ZodOptional<z.ZodEnum<["HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512"]>>>;
1683
+ publicKey: z.ZodOptional<z.ZodString>;
1684
+ privateKey: z.ZodOptional<z.ZodString>;
1685
+ passphrase: z.ZodOptional<z.ZodString>;
1686
+ }, "strip", z.ZodTypeAny, {
1687
+ secret: string;
1688
+ expiresIn: string;
1689
+ refreshExpiresIn: string;
1690
+ issuer: string;
1691
+ audience: string;
1692
+ algorithm: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512";
1693
+ passphrase?: string | undefined;
1694
+ publicKey?: string | undefined;
1695
+ privateKey?: string | undefined;
1696
+ }, {
1697
+ secret: string;
1698
+ passphrase?: string | undefined;
1699
+ expiresIn?: string | undefined;
1700
+ refreshExpiresIn?: string | undefined;
1701
+ issuer?: string | undefined;
1702
+ audience?: string | undefined;
1703
+ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | undefined;
1704
+ publicKey?: string | undefined;
1705
+ privateKey?: string | undefined;
1706
+ }>>;
1707
+ password: z.ZodOptional<z.ZodObject<{
1708
+ minLength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1709
+ maxLength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1710
+ requireUppercase: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1711
+ requireLowercase: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1712
+ requireNumbers: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1713
+ requireSpecialChars: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1714
+ saltRounds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1715
+ pepper: z.ZodOptional<z.ZodString>;
1716
+ }, "strip", z.ZodTypeAny, {
1717
+ minLength: number;
1718
+ maxLength: number;
1719
+ requireUppercase: boolean;
1720
+ requireLowercase: boolean;
1721
+ requireNumbers: boolean;
1722
+ requireSpecialChars: boolean;
1723
+ saltRounds: number;
1724
+ pepper?: string | undefined;
1725
+ }, {
1726
+ minLength?: number | undefined;
1727
+ maxLength?: number | undefined;
1728
+ requireUppercase?: boolean | undefined;
1729
+ requireLowercase?: boolean | undefined;
1730
+ requireNumbers?: boolean | undefined;
1731
+ requireSpecialChars?: boolean | undefined;
1732
+ saltRounds?: number | undefined;
1733
+ pepper?: string | undefined;
1734
+ }>>;
1735
+ session: z.ZodOptional<z.ZodObject<{
1736
+ secret: z.ZodString;
1737
+ resave: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1738
+ saveUninitialized: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1739
+ rolling: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1740
+ name: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1741
+ cookie: z.ZodOptional<z.ZodObject<{
1742
+ secure: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1743
+ httpOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1744
+ maxAge: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1745
+ sameSite: z.ZodDefault<z.ZodOptional<z.ZodEnum<["lax", "strict", "none"]>>>;
1746
+ domain: z.ZodOptional<z.ZodString>;
1747
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1748
+ }, "strip", z.ZodTypeAny, {
1749
+ path: string;
1750
+ maxAge: number;
1751
+ secure: boolean;
1752
+ httpOnly: boolean;
1753
+ sameSite: "strict" | "lax" | "none";
1754
+ domain?: string | undefined;
1755
+ }, {
1756
+ path?: string | undefined;
1757
+ maxAge?: number | undefined;
1758
+ secure?: boolean | undefined;
1759
+ httpOnly?: boolean | undefined;
1760
+ sameSite?: "strict" | "lax" | "none" | undefined;
1761
+ domain?: string | undefined;
1762
+ }>>;
1763
+ store: z.ZodDefault<z.ZodOptional<z.ZodEnum<["memory", "redis", "database"]>>>;
1764
+ redis: z.ZodOptional<z.ZodObject<{
1765
+ host: z.ZodString;
1766
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1767
+ password: z.ZodOptional<z.ZodString>;
1768
+ db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1769
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1770
+ ttl: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1771
+ }, "strip", z.ZodTypeAny, {
1772
+ host: string;
1773
+ port: number;
1774
+ db: number;
1775
+ prefix: string;
1776
+ ttl: number;
1777
+ password?: string | undefined;
1778
+ }, {
1779
+ host: string;
1780
+ port?: number | undefined;
1781
+ password?: string | undefined;
1782
+ db?: number | undefined;
1783
+ prefix?: string | undefined;
1784
+ ttl?: number | undefined;
1785
+ }>>;
1786
+ }, "strip", z.ZodTypeAny, {
1787
+ name: string;
1788
+ secret: string;
1789
+ resave: boolean;
1790
+ saveUninitialized: boolean;
1791
+ rolling: boolean;
1792
+ store: "database" | "redis" | "memory";
1793
+ redis?: {
1794
+ host: string;
1795
+ port: number;
1796
+ db: number;
1797
+ prefix: string;
1798
+ ttl: number;
1799
+ password?: string | undefined;
1800
+ } | undefined;
1801
+ cookie?: {
1802
+ path: string;
1803
+ maxAge: number;
1804
+ secure: boolean;
1805
+ httpOnly: boolean;
1806
+ sameSite: "strict" | "lax" | "none";
1807
+ domain?: string | undefined;
1808
+ } | undefined;
1809
+ }, {
1810
+ secret: string;
1811
+ name?: string | undefined;
1812
+ redis?: {
1813
+ host: string;
1814
+ port?: number | undefined;
1815
+ password?: string | undefined;
1816
+ db?: number | undefined;
1817
+ prefix?: string | undefined;
1818
+ ttl?: number | undefined;
1819
+ } | undefined;
1820
+ resave?: boolean | undefined;
1821
+ saveUninitialized?: boolean | undefined;
1822
+ rolling?: boolean | undefined;
1823
+ cookie?: {
1824
+ path?: string | undefined;
1825
+ maxAge?: number | undefined;
1826
+ secure?: boolean | undefined;
1827
+ httpOnly?: boolean | undefined;
1828
+ sameSite?: "strict" | "lax" | "none" | undefined;
1829
+ domain?: string | undefined;
1830
+ } | undefined;
1831
+ store?: "database" | "redis" | "memory" | undefined;
1832
+ }>>;
1833
+ encryption: z.ZodOptional<z.ZodObject<{
1834
+ algorithm: z.ZodDefault<z.ZodOptional<z.ZodEnum<["aes-256-gcm", "aes-256-cbc", "aes-192-gcm", "aes-192-cbc"]>>>;
1835
+ key: z.ZodString;
1836
+ ivLength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1837
+ tagLength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1838
+ }, "strip", z.ZodTypeAny, {
1839
+ key: string;
1840
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc";
1841
+ ivLength: number;
1842
+ tagLength: number;
1843
+ }, {
1844
+ key: string;
1845
+ algorithm?: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc" | undefined;
1846
+ ivLength?: number | undefined;
1847
+ tagLength?: number | undefined;
1848
+ }>>;
1849
+ apiKeys: z.ZodOptional<z.ZodObject<{
1850
+ headerName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1851
+ queryParam: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1852
+ length: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1853
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1854
+ hashing: z.ZodDefault<z.ZodOptional<z.ZodEnum<["sha256", "sha512"]>>>;
1855
+ }, "strip", z.ZodTypeAny, {
1856
+ length: number;
1857
+ prefix: string;
1858
+ headerName: string;
1859
+ queryParam: string;
1860
+ hashing: "sha256" | "sha512";
1861
+ }, {
1862
+ length?: number | undefined;
1863
+ prefix?: string | undefined;
1864
+ headerName?: string | undefined;
1865
+ queryParam?: string | undefined;
1866
+ hashing?: "sha256" | "sha512" | undefined;
1867
+ }>>;
1868
+ rateLimit: z.ZodOptional<z.ZodObject<{
1869
+ windowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1870
+ max: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1871
+ message: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1872
+ standardHeaders: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1873
+ legacyHeaders: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1874
+ skipSuccessfulRequests: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1875
+ skipFailedRequests: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1876
+ keyGenerator: z.ZodOptional<z.ZodString>;
1877
+ skip: z.ZodOptional<z.ZodString>;
1878
+ onLimitReached: z.ZodOptional<z.ZodString>;
1879
+ }, "strip", z.ZodTypeAny, {
1880
+ message: string;
1881
+ max: number;
1882
+ windowMs: number;
1883
+ standardHeaders: boolean;
1884
+ legacyHeaders: boolean;
1885
+ skipSuccessfulRequests: boolean;
1886
+ skipFailedRequests: boolean;
1887
+ keyGenerator?: string | undefined;
1888
+ skip?: string | undefined;
1889
+ onLimitReached?: string | undefined;
1890
+ }, {
1891
+ message?: string | undefined;
1892
+ max?: number | undefined;
1893
+ windowMs?: number | undefined;
1894
+ standardHeaders?: boolean | undefined;
1895
+ legacyHeaders?: boolean | undefined;
1896
+ skipSuccessfulRequests?: boolean | undefined;
1897
+ skipFailedRequests?: boolean | undefined;
1898
+ keyGenerator?: string | undefined;
1899
+ skip?: string | undefined;
1900
+ onLimitReached?: string | undefined;
1901
+ }>>;
1902
+ cors: z.ZodOptional<z.ZodObject<{
1903
+ origin: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodBoolean]>>>;
1904
+ credentials: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1905
+ methods: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1906
+ allowedHeaders: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1907
+ exposedHeaders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1908
+ maxAge: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1909
+ preflightContinue: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1910
+ optionsSuccessStatus: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1911
+ }, "strip", z.ZodTypeAny, {
1912
+ origin: string | boolean | string[];
1913
+ credentials: boolean;
1914
+ methods: string[];
1915
+ allowedHeaders: string[];
1916
+ maxAge: number;
1917
+ preflightContinue: boolean;
1918
+ optionsSuccessStatus: number;
1919
+ exposedHeaders?: string[] | undefined;
1920
+ }, {
1921
+ origin?: string | boolean | string[] | undefined;
1922
+ credentials?: boolean | undefined;
1923
+ methods?: string[] | undefined;
1924
+ allowedHeaders?: string[] | undefined;
1925
+ exposedHeaders?: string[] | undefined;
1926
+ maxAge?: number | undefined;
1927
+ preflightContinue?: boolean | undefined;
1928
+ optionsSuccessStatus?: number | undefined;
1929
+ }>>;
1930
+ helmet: z.ZodOptional<z.ZodObject<{
1931
+ contentSecurityPolicy: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1932
+ directives: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
1933
+ reportOnly: z.ZodOptional<z.ZodBoolean>;
1934
+ }, "strip", z.ZodTypeAny, {
1935
+ directives?: Record<string, string | string[]> | undefined;
1936
+ reportOnly?: boolean | undefined;
1937
+ }, {
1938
+ directives?: Record<string, string | string[]> | undefined;
1939
+ reportOnly?: boolean | undefined;
1940
+ }>]>>>;
1941
+ crossOriginEmbedderPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1942
+ crossOriginOpenerPolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1943
+ crossOriginResourcePolicy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1944
+ dnsPrefetchControl: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1945
+ frameguard: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1946
+ action: z.ZodEnum<["deny", "sameorigin", "allow-from"]>;
1947
+ domain: z.ZodOptional<z.ZodString>;
1948
+ }, "strip", z.ZodTypeAny, {
1949
+ action: "deny" | "sameorigin" | "allow-from";
1950
+ domain?: string | undefined;
1951
+ }, {
1952
+ action: "deny" | "sameorigin" | "allow-from";
1953
+ domain?: string | undefined;
1954
+ }>]>>>;
1955
+ hidePoweredBy: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1956
+ hsts: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1957
+ maxAge: z.ZodOptional<z.ZodNumber>;
1958
+ includeSubDomains: z.ZodOptional<z.ZodBoolean>;
1959
+ preload: z.ZodOptional<z.ZodBoolean>;
1960
+ }, "strip", z.ZodTypeAny, {
1961
+ maxAge?: number | undefined;
1962
+ includeSubDomains?: boolean | undefined;
1963
+ preload?: boolean | undefined;
1964
+ }, {
1965
+ maxAge?: number | undefined;
1966
+ includeSubDomains?: boolean | undefined;
1967
+ preload?: boolean | undefined;
1968
+ }>]>>>;
1969
+ ieNoOpen: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1970
+ noSniff: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1971
+ originAgentCluster: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1972
+ permittedCrossDomainPolicies: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1973
+ referrerPolicy: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
1974
+ policy: z.ZodOptional<z.ZodEnum<["no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]>>;
1975
+ }, "strip", z.ZodTypeAny, {
1976
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
1977
+ }, {
1978
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
1979
+ }>]>>>;
1980
+ xssFilter: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1981
+ }, "strip", z.ZodTypeAny, {
1982
+ contentSecurityPolicy: boolean | {
1983
+ directives?: Record<string, string | string[]> | undefined;
1984
+ reportOnly?: boolean | undefined;
1985
+ };
1986
+ crossOriginEmbedderPolicy: boolean;
1987
+ crossOriginOpenerPolicy: boolean;
1988
+ crossOriginResourcePolicy: boolean;
1989
+ dnsPrefetchControl: boolean;
1990
+ frameguard: boolean | {
1991
+ action: "deny" | "sameorigin" | "allow-from";
1992
+ domain?: string | undefined;
1993
+ };
1994
+ hidePoweredBy: boolean;
1995
+ hsts: boolean | {
1996
+ maxAge?: number | undefined;
1997
+ includeSubDomains?: boolean | undefined;
1998
+ preload?: boolean | undefined;
1999
+ };
2000
+ ieNoOpen: boolean;
2001
+ noSniff: boolean;
2002
+ originAgentCluster: boolean;
2003
+ permittedCrossDomainPolicies: boolean;
2004
+ referrerPolicy: boolean | {
2005
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
2006
+ };
2007
+ xssFilter: boolean;
2008
+ }, {
2009
+ contentSecurityPolicy?: boolean | {
2010
+ directives?: Record<string, string | string[]> | undefined;
2011
+ reportOnly?: boolean | undefined;
2012
+ } | undefined;
2013
+ crossOriginEmbedderPolicy?: boolean | undefined;
2014
+ crossOriginOpenerPolicy?: boolean | undefined;
2015
+ crossOriginResourcePolicy?: boolean | undefined;
2016
+ dnsPrefetchControl?: boolean | undefined;
2017
+ frameguard?: boolean | {
2018
+ action: "deny" | "sameorigin" | "allow-from";
2019
+ domain?: string | undefined;
2020
+ } | undefined;
2021
+ hidePoweredBy?: boolean | undefined;
2022
+ hsts?: boolean | {
2023
+ maxAge?: number | undefined;
2024
+ includeSubDomains?: boolean | undefined;
2025
+ preload?: boolean | undefined;
2026
+ } | undefined;
2027
+ ieNoOpen?: boolean | undefined;
2028
+ noSniff?: boolean | undefined;
2029
+ originAgentCluster?: boolean | undefined;
2030
+ permittedCrossDomainPolicies?: boolean | undefined;
2031
+ referrerPolicy?: boolean | {
2032
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
2033
+ } | undefined;
2034
+ xssFilter?: boolean | undefined;
2035
+ }>>;
2036
+ audit: z.ZodOptional<z.ZodObject<{
2037
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2038
+ logLevel: z.ZodDefault<z.ZodOptional<z.ZodEnum<["info", "warn", "error"]>>>;
2039
+ events: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["login", "logout", "password_change", "profile_update", "api_access", "admin_action", "security_violation", "data_access", "permission_change"]>, "many">>>;
2040
+ storage: z.ZodDefault<z.ZodOptional<z.ZodEnum<["file", "database", "elasticsearch"]>>>;
2041
+ file: z.ZodOptional<z.ZodObject<{
2042
+ path: z.ZodString;
2043
+ rotation: z.ZodDefault<z.ZodOptional<z.ZodEnum<["daily", "weekly", "monthly"]>>>;
2044
+ maxFiles: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2045
+ maxSize: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2046
+ }, "strip", z.ZodTypeAny, {
2047
+ path: string;
2048
+ rotation: "daily" | "weekly" | "monthly";
2049
+ maxFiles: number;
2050
+ maxSize: string;
2051
+ }, {
2052
+ path: string;
2053
+ rotation?: "daily" | "weekly" | "monthly" | undefined;
2054
+ maxFiles?: number | undefined;
2055
+ maxSize?: string | undefined;
2056
+ }>>;
2057
+ retention: z.ZodOptional<z.ZodObject<{
2058
+ days: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2059
+ maxSize: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2060
+ }, "strip", z.ZodTypeAny, {
2061
+ maxSize: string;
2062
+ days: number;
2063
+ }, {
2064
+ maxSize?: string | undefined;
2065
+ days?: number | undefined;
2066
+ }>>;
2067
+ }, "strip", z.ZodTypeAny, {
2068
+ enabled: boolean;
2069
+ logLevel: "error" | "warn" | "info";
2070
+ events: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[];
2071
+ storage: "database" | "file" | "elasticsearch";
2072
+ file?: {
2073
+ path: string;
2074
+ rotation: "daily" | "weekly" | "monthly";
2075
+ maxFiles: number;
2076
+ maxSize: string;
2077
+ } | undefined;
2078
+ retention?: {
2079
+ maxSize: string;
2080
+ days: number;
2081
+ } | undefined;
2082
+ }, {
2083
+ enabled?: boolean | undefined;
2084
+ logLevel?: "error" | "warn" | "info" | undefined;
2085
+ events?: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[] | undefined;
2086
+ file?: {
2087
+ path: string;
2088
+ rotation?: "daily" | "weekly" | "monthly" | undefined;
2089
+ maxFiles?: number | undefined;
2090
+ maxSize?: string | undefined;
2091
+ } | undefined;
2092
+ storage?: "database" | "file" | "elasticsearch" | undefined;
2093
+ retention?: {
2094
+ maxSize?: string | undefined;
2095
+ days?: number | undefined;
2096
+ } | undefined;
2097
+ }>>;
2098
+ authentication: z.ZodOptional<z.ZodObject<{
2099
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
2100
+ name: z.ZodString;
2101
+ type: z.ZodEnum<["local", "oauth2", "saml", "ldap"]>;
2102
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2103
+ config: z.ZodRecord<z.ZodString, z.ZodAny>;
2104
+ }, "strip", z.ZodTypeAny, {
2105
+ type: "local" | "oauth2" | "saml" | "ldap";
2106
+ name: string;
2107
+ enabled: boolean;
2108
+ config: Record<string, any>;
2109
+ }, {
2110
+ type: "local" | "oauth2" | "saml" | "ldap";
2111
+ name: string;
2112
+ config: Record<string, any>;
2113
+ enabled?: boolean | undefined;
2114
+ }>, "many">>;
2115
+ twoFactor: z.ZodOptional<z.ZodObject<{
2116
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2117
+ issuer: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2118
+ window: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2119
+ providers: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodEnum<["totp", "sms", "email"]>, "many">>>;
2120
+ backupCodes: z.ZodOptional<z.ZodObject<{
2121
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2122
+ count: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2123
+ length: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2124
+ }, "strip", z.ZodTypeAny, {
2125
+ length: number;
2126
+ enabled: boolean;
2127
+ count: number;
2128
+ }, {
2129
+ length?: number | undefined;
2130
+ enabled?: boolean | undefined;
2131
+ count?: number | undefined;
2132
+ }>>;
2133
+ }, "strip", z.ZodTypeAny, {
2134
+ enabled: boolean;
2135
+ issuer: string;
2136
+ providers: ("totp" | "sms" | "email")[];
2137
+ window: number;
2138
+ backupCodes?: {
2139
+ length: number;
2140
+ enabled: boolean;
2141
+ count: number;
2142
+ } | undefined;
2143
+ }, {
2144
+ enabled?: boolean | undefined;
2145
+ issuer?: string | undefined;
2146
+ providers?: ("totp" | "sms" | "email")[] | undefined;
2147
+ window?: number | undefined;
2148
+ backupCodes?: {
2149
+ length?: number | undefined;
2150
+ enabled?: boolean | undefined;
2151
+ count?: number | undefined;
2152
+ } | undefined;
2153
+ }>>;
2154
+ }, "strip", z.ZodTypeAny, {
2155
+ providers?: {
2156
+ type: "local" | "oauth2" | "saml" | "ldap";
2157
+ name: string;
2158
+ enabled: boolean;
2159
+ config: Record<string, any>;
2160
+ }[] | undefined;
2161
+ twoFactor?: {
2162
+ enabled: boolean;
2163
+ issuer: string;
2164
+ providers: ("totp" | "sms" | "email")[];
2165
+ window: number;
2166
+ backupCodes?: {
2167
+ length: number;
2168
+ enabled: boolean;
2169
+ count: number;
2170
+ } | undefined;
2171
+ } | undefined;
2172
+ }, {
2173
+ providers?: {
2174
+ type: "local" | "oauth2" | "saml" | "ldap";
2175
+ name: string;
2176
+ config: Record<string, any>;
2177
+ enabled?: boolean | undefined;
2178
+ }[] | undefined;
2179
+ twoFactor?: {
2180
+ enabled?: boolean | undefined;
2181
+ issuer?: string | undefined;
2182
+ providers?: ("totp" | "sms" | "email")[] | undefined;
2183
+ window?: number | undefined;
2184
+ backupCodes?: {
2185
+ length?: number | undefined;
2186
+ enabled?: boolean | undefined;
2187
+ count?: number | undefined;
2188
+ } | undefined;
2189
+ } | undefined;
2190
+ }>>;
2191
+ }, "strip", z.ZodTypeAny, {
2192
+ password?: {
2193
+ minLength: number;
2194
+ maxLength: number;
2195
+ requireUppercase: boolean;
2196
+ requireLowercase: boolean;
2197
+ requireNumbers: boolean;
2198
+ requireSpecialChars: boolean;
2199
+ saltRounds: number;
2200
+ pepper?: string | undefined;
2201
+ } | undefined;
2202
+ cors?: {
2203
+ origin: string | boolean | string[];
2204
+ credentials: boolean;
2205
+ methods: string[];
2206
+ allowedHeaders: string[];
2207
+ maxAge: number;
2208
+ preflightContinue: boolean;
2209
+ optionsSuccessStatus: number;
2210
+ exposedHeaders?: string[] | undefined;
2211
+ } | undefined;
2212
+ rateLimit?: {
2213
+ message: string;
2214
+ max: number;
2215
+ windowMs: number;
2216
+ standardHeaders: boolean;
2217
+ legacyHeaders: boolean;
2218
+ skipSuccessfulRequests: boolean;
2219
+ skipFailedRequests: boolean;
2220
+ keyGenerator?: string | undefined;
2221
+ skip?: string | undefined;
2222
+ onLimitReached?: string | undefined;
2223
+ } | undefined;
2224
+ helmet?: {
2225
+ contentSecurityPolicy: boolean | {
2226
+ directives?: Record<string, string | string[]> | undefined;
2227
+ reportOnly?: boolean | undefined;
2228
+ };
2229
+ crossOriginEmbedderPolicy: boolean;
2230
+ crossOriginOpenerPolicy: boolean;
2231
+ crossOriginResourcePolicy: boolean;
2232
+ dnsPrefetchControl: boolean;
2233
+ frameguard: boolean | {
2234
+ action: "deny" | "sameorigin" | "allow-from";
2235
+ domain?: string | undefined;
2236
+ };
2237
+ hidePoweredBy: boolean;
2238
+ hsts: boolean | {
2239
+ maxAge?: number | undefined;
2240
+ includeSubDomains?: boolean | undefined;
2241
+ preload?: boolean | undefined;
2242
+ };
2243
+ ieNoOpen: boolean;
2244
+ noSniff: boolean;
2245
+ originAgentCluster: boolean;
2246
+ permittedCrossDomainPolicies: boolean;
2247
+ referrerPolicy: boolean | {
2248
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
2249
+ };
2250
+ xssFilter: boolean;
2251
+ } | undefined;
2252
+ jwt?: {
2253
+ secret: string;
2254
+ expiresIn: string;
2255
+ refreshExpiresIn: string;
2256
+ issuer: string;
2257
+ audience: string;
2258
+ algorithm: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512";
2259
+ passphrase?: string | undefined;
2260
+ publicKey?: string | undefined;
2261
+ privateKey?: string | undefined;
2262
+ } | undefined;
2263
+ session?: {
2264
+ name: string;
2265
+ secret: string;
2266
+ resave: boolean;
2267
+ saveUninitialized: boolean;
2268
+ rolling: boolean;
2269
+ store: "database" | "redis" | "memory";
2270
+ redis?: {
2271
+ host: string;
2272
+ port: number;
2273
+ db: number;
2274
+ prefix: string;
2275
+ ttl: number;
2276
+ password?: string | undefined;
2277
+ } | undefined;
2278
+ cookie?: {
2279
+ path: string;
2280
+ maxAge: number;
2281
+ secure: boolean;
2282
+ httpOnly: boolean;
2283
+ sameSite: "strict" | "lax" | "none";
2284
+ domain?: string | undefined;
2285
+ } | undefined;
2286
+ } | undefined;
2287
+ encryption?: {
2288
+ key: string;
2289
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc";
2290
+ ivLength: number;
2291
+ tagLength: number;
2292
+ } | undefined;
2293
+ apiKeys?: {
2294
+ length: number;
2295
+ prefix: string;
2296
+ headerName: string;
2297
+ queryParam: string;
2298
+ hashing: "sha256" | "sha512";
2299
+ } | undefined;
2300
+ audit?: {
2301
+ enabled: boolean;
2302
+ logLevel: "error" | "warn" | "info";
2303
+ events: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[];
2304
+ storage: "database" | "file" | "elasticsearch";
2305
+ file?: {
2306
+ path: string;
2307
+ rotation: "daily" | "weekly" | "monthly";
2308
+ maxFiles: number;
2309
+ maxSize: string;
2310
+ } | undefined;
2311
+ retention?: {
2312
+ maxSize: string;
2313
+ days: number;
2314
+ } | undefined;
2315
+ } | undefined;
2316
+ authentication?: {
2317
+ providers?: {
2318
+ type: "local" | "oauth2" | "saml" | "ldap";
2319
+ name: string;
2320
+ enabled: boolean;
2321
+ config: Record<string, any>;
2322
+ }[] | undefined;
2323
+ twoFactor?: {
2324
+ enabled: boolean;
2325
+ issuer: string;
2326
+ providers: ("totp" | "sms" | "email")[];
2327
+ window: number;
2328
+ backupCodes?: {
2329
+ length: number;
2330
+ enabled: boolean;
2331
+ count: number;
2332
+ } | undefined;
2333
+ } | undefined;
2334
+ } | undefined;
2335
+ }, {
2336
+ password?: {
2337
+ minLength?: number | undefined;
2338
+ maxLength?: number | undefined;
2339
+ requireUppercase?: boolean | undefined;
2340
+ requireLowercase?: boolean | undefined;
2341
+ requireNumbers?: boolean | undefined;
2342
+ requireSpecialChars?: boolean | undefined;
2343
+ saltRounds?: number | undefined;
2344
+ pepper?: string | undefined;
2345
+ } | undefined;
2346
+ cors?: {
2347
+ origin?: string | boolean | string[] | undefined;
2348
+ credentials?: boolean | undefined;
2349
+ methods?: string[] | undefined;
2350
+ allowedHeaders?: string[] | undefined;
2351
+ exposedHeaders?: string[] | undefined;
2352
+ maxAge?: number | undefined;
2353
+ preflightContinue?: boolean | undefined;
2354
+ optionsSuccessStatus?: number | undefined;
2355
+ } | undefined;
2356
+ rateLimit?: {
2357
+ message?: string | undefined;
2358
+ max?: number | undefined;
2359
+ windowMs?: number | undefined;
2360
+ standardHeaders?: boolean | undefined;
2361
+ legacyHeaders?: boolean | undefined;
2362
+ skipSuccessfulRequests?: boolean | undefined;
2363
+ skipFailedRequests?: boolean | undefined;
2364
+ keyGenerator?: string | undefined;
2365
+ skip?: string | undefined;
2366
+ onLimitReached?: string | undefined;
2367
+ } | undefined;
2368
+ helmet?: {
2369
+ contentSecurityPolicy?: boolean | {
2370
+ directives?: Record<string, string | string[]> | undefined;
2371
+ reportOnly?: boolean | undefined;
2372
+ } | undefined;
2373
+ crossOriginEmbedderPolicy?: boolean | undefined;
2374
+ crossOriginOpenerPolicy?: boolean | undefined;
2375
+ crossOriginResourcePolicy?: boolean | undefined;
2376
+ dnsPrefetchControl?: boolean | undefined;
2377
+ frameguard?: boolean | {
2378
+ action: "deny" | "sameorigin" | "allow-from";
2379
+ domain?: string | undefined;
2380
+ } | undefined;
2381
+ hidePoweredBy?: boolean | undefined;
2382
+ hsts?: boolean | {
2383
+ maxAge?: number | undefined;
2384
+ includeSubDomains?: boolean | undefined;
2385
+ preload?: boolean | undefined;
2386
+ } | undefined;
2387
+ ieNoOpen?: boolean | undefined;
2388
+ noSniff?: boolean | undefined;
2389
+ originAgentCluster?: boolean | undefined;
2390
+ permittedCrossDomainPolicies?: boolean | undefined;
2391
+ referrerPolicy?: boolean | {
2392
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
2393
+ } | undefined;
2394
+ xssFilter?: boolean | undefined;
2395
+ } | undefined;
2396
+ jwt?: {
2397
+ secret: string;
2398
+ passphrase?: string | undefined;
2399
+ expiresIn?: string | undefined;
2400
+ refreshExpiresIn?: string | undefined;
2401
+ issuer?: string | undefined;
2402
+ audience?: string | undefined;
2403
+ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | undefined;
2404
+ publicKey?: string | undefined;
2405
+ privateKey?: string | undefined;
2406
+ } | undefined;
2407
+ session?: {
2408
+ secret: string;
2409
+ name?: string | undefined;
2410
+ redis?: {
2411
+ host: string;
2412
+ port?: number | undefined;
2413
+ password?: string | undefined;
2414
+ db?: number | undefined;
2415
+ prefix?: string | undefined;
2416
+ ttl?: number | undefined;
2417
+ } | undefined;
2418
+ resave?: boolean | undefined;
2419
+ saveUninitialized?: boolean | undefined;
2420
+ rolling?: boolean | undefined;
2421
+ cookie?: {
2422
+ path?: string | undefined;
2423
+ maxAge?: number | undefined;
2424
+ secure?: boolean | undefined;
2425
+ httpOnly?: boolean | undefined;
2426
+ sameSite?: "strict" | "lax" | "none" | undefined;
2427
+ domain?: string | undefined;
2428
+ } | undefined;
2429
+ store?: "database" | "redis" | "memory" | undefined;
2430
+ } | undefined;
2431
+ encryption?: {
2432
+ key: string;
2433
+ algorithm?: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc" | undefined;
2434
+ ivLength?: number | undefined;
2435
+ tagLength?: number | undefined;
2436
+ } | undefined;
2437
+ apiKeys?: {
2438
+ length?: number | undefined;
2439
+ prefix?: string | undefined;
2440
+ headerName?: string | undefined;
2441
+ queryParam?: string | undefined;
2442
+ hashing?: "sha256" | "sha512" | undefined;
2443
+ } | undefined;
2444
+ audit?: {
2445
+ enabled?: boolean | undefined;
2446
+ logLevel?: "error" | "warn" | "info" | undefined;
2447
+ events?: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[] | undefined;
2448
+ file?: {
2449
+ path: string;
2450
+ rotation?: "daily" | "weekly" | "monthly" | undefined;
2451
+ maxFiles?: number | undefined;
2452
+ maxSize?: string | undefined;
2453
+ } | undefined;
2454
+ storage?: "database" | "file" | "elasticsearch" | undefined;
2455
+ retention?: {
2456
+ maxSize?: string | undefined;
2457
+ days?: number | undefined;
2458
+ } | undefined;
2459
+ } | undefined;
2460
+ authentication?: {
2461
+ providers?: {
2462
+ type: "local" | "oauth2" | "saml" | "ldap";
2463
+ name: string;
2464
+ config: Record<string, any>;
2465
+ enabled?: boolean | undefined;
2466
+ }[] | undefined;
2467
+ twoFactor?: {
2468
+ enabled?: boolean | undefined;
2469
+ issuer?: string | undefined;
2470
+ providers?: ("totp" | "sms" | "email")[] | undefined;
2471
+ window?: number | undefined;
2472
+ backupCodes?: {
2473
+ length?: number | undefined;
2474
+ enabled?: boolean | undefined;
2475
+ count?: number | undefined;
2476
+ } | undefined;
2477
+ } | undefined;
2478
+ } | undefined;
2479
+ }>>;
2480
+ logging: z.ZodObject<{
2481
+ level: z.ZodDefault<z.ZodOptional<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>>;
2482
+ format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["json", "pretty"]>>>;
2483
+ colorize: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2484
+ timestamp: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2485
+ prettyPrint: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2486
+ file: z.ZodOptional<z.ZodObject<{
2487
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2488
+ filename: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2489
+ directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2490
+ maxSize: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2491
+ maxFiles: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2492
+ datePattern: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2493
+ zippedArchive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2494
+ }, "strip", z.ZodTypeAny, {
2495
+ enabled: boolean;
2496
+ directory: string;
2497
+ maxFiles: number;
2498
+ maxSize: string;
2499
+ filename: string;
2500
+ datePattern: string;
2501
+ zippedArchive: boolean;
2502
+ }, {
2503
+ enabled?: boolean | undefined;
2504
+ directory?: string | undefined;
2505
+ maxFiles?: number | undefined;
2506
+ maxSize?: string | undefined;
2507
+ filename?: string | undefined;
2508
+ datePattern?: string | undefined;
2509
+ zippedArchive?: boolean | undefined;
2510
+ }>>;
2511
+ console: z.ZodOptional<z.ZodObject<{
2512
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2513
+ level: z.ZodOptional<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
2514
+ }, "strip", z.ZodTypeAny, {
2515
+ enabled: boolean;
2516
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
2517
+ }, {
2518
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
2519
+ enabled?: boolean | undefined;
2520
+ }>>;
2521
+ }, "strip", z.ZodTypeAny, {
2522
+ level: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
2523
+ format: "json" | "pretty";
2524
+ colorize: boolean;
2525
+ timestamp: boolean;
2526
+ prettyPrint: boolean;
2527
+ file?: {
2528
+ enabled: boolean;
2529
+ directory: string;
2530
+ maxFiles: number;
2531
+ maxSize: string;
2532
+ filename: string;
2533
+ datePattern: string;
2534
+ zippedArchive: boolean;
2535
+ } | undefined;
2536
+ console?: {
2537
+ enabled: boolean;
2538
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
2539
+ } | undefined;
2540
+ }, {
2541
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
2542
+ format?: "json" | "pretty" | undefined;
2543
+ colorize?: boolean | undefined;
2544
+ timestamp?: boolean | undefined;
2545
+ prettyPrint?: boolean | undefined;
2546
+ file?: {
2547
+ enabled?: boolean | undefined;
2548
+ directory?: string | undefined;
2549
+ maxFiles?: number | undefined;
2550
+ maxSize?: string | undefined;
2551
+ filename?: string | undefined;
2552
+ datePattern?: string | undefined;
2553
+ zippedArchive?: boolean | undefined;
2554
+ } | undefined;
2555
+ console?: {
2556
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
2557
+ enabled?: boolean | undefined;
2558
+ } | undefined;
2559
+ }>;
2560
+ monitoring: z.ZodObject<{
2561
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2562
+ metrics: z.ZodOptional<z.ZodObject<{
2563
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2564
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2565
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2566
+ prefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2567
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2568
+ collectDefaultMetrics: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2569
+ }, "strip", z.ZodTypeAny, {
2570
+ port: number;
2571
+ path: string;
2572
+ prefix: string;
2573
+ enabled: boolean;
2574
+ collectDefaultMetrics: boolean;
2575
+ labels?: Record<string, string> | undefined;
2576
+ }, {
2577
+ port?: number | undefined;
2578
+ path?: string | undefined;
2579
+ prefix?: string | undefined;
2580
+ enabled?: boolean | undefined;
2581
+ labels?: Record<string, string> | undefined;
2582
+ collectDefaultMetrics?: boolean | undefined;
2583
+ }>>;
2584
+ tracing: z.ZodOptional<z.ZodObject<{
2585
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2586
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["jaeger", "zipkin", "opentelemetry"]>>>;
2587
+ serviceName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2588
+ serviceVersion: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2589
+ jaeger: z.ZodOptional<z.ZodObject<{
2590
+ endpoint: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2591
+ }, "strip", z.ZodTypeAny, {
2592
+ endpoint: string;
2593
+ }, {
2594
+ endpoint?: string | undefined;
2595
+ }>>;
2596
+ zipkin: z.ZodOptional<z.ZodObject<{
2597
+ url: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2598
+ }, "strip", z.ZodTypeAny, {
2599
+ url: string;
2600
+ }, {
2601
+ url?: string | undefined;
2602
+ }>>;
2603
+ opentelemetry: z.ZodOptional<z.ZodObject<{
2604
+ endpoint: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2605
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2606
+ }, "strip", z.ZodTypeAny, {
2607
+ endpoint: string;
2608
+ headers?: Record<string, string> | undefined;
2609
+ }, {
2610
+ endpoint?: string | undefined;
2611
+ headers?: Record<string, string> | undefined;
2612
+ }>>;
2613
+ }, "strip", z.ZodTypeAny, {
2614
+ enabled: boolean;
2615
+ provider: "jaeger" | "zipkin" | "opentelemetry";
2616
+ serviceName: string;
2617
+ serviceVersion: string;
2618
+ jaeger?: {
2619
+ endpoint: string;
2620
+ } | undefined;
2621
+ zipkin?: {
2622
+ url: string;
2623
+ } | undefined;
2624
+ opentelemetry?: {
2625
+ endpoint: string;
2626
+ headers?: Record<string, string> | undefined;
2627
+ } | undefined;
2628
+ }, {
2629
+ enabled?: boolean | undefined;
2630
+ jaeger?: {
2631
+ endpoint?: string | undefined;
2632
+ } | undefined;
2633
+ zipkin?: {
2634
+ url?: string | undefined;
2635
+ } | undefined;
2636
+ opentelemetry?: {
2637
+ endpoint?: string | undefined;
2638
+ headers?: Record<string, string> | undefined;
2639
+ } | undefined;
2640
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
2641
+ serviceName?: string | undefined;
2642
+ serviceVersion?: string | undefined;
2643
+ }>>;
2644
+ health: z.ZodOptional<z.ZodObject<{
2645
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2646
+ path: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2647
+ detailed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2648
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
2649
+ name: z.ZodString;
2650
+ type: z.ZodEnum<["http", "tcp", "database", "redis", "custom"]>;
2651
+ target: z.ZodString;
2652
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2653
+ interval: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2654
+ retries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2655
+ critical: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2656
+ }, "strip", z.ZodTypeAny, {
2657
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2658
+ timeout: number;
2659
+ name: string;
2660
+ target: string;
2661
+ interval: number;
2662
+ retries: number;
2663
+ critical: boolean;
2664
+ }, {
2665
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2666
+ name: string;
2667
+ target: string;
2668
+ timeout?: number | undefined;
2669
+ interval?: number | undefined;
2670
+ retries?: number | undefined;
2671
+ critical?: boolean | undefined;
2672
+ }>, "many">>;
2673
+ }, "strip", z.ZodTypeAny, {
2674
+ path: string;
2675
+ enabled: boolean;
2676
+ detailed: boolean;
2677
+ checks?: {
2678
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2679
+ timeout: number;
2680
+ name: string;
2681
+ target: string;
2682
+ interval: number;
2683
+ retries: number;
2684
+ critical: boolean;
2685
+ }[] | undefined;
2686
+ }, {
2687
+ path?: string | undefined;
2688
+ enabled?: boolean | undefined;
2689
+ detailed?: boolean | undefined;
2690
+ checks?: {
2691
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2692
+ name: string;
2693
+ target: string;
2694
+ timeout?: number | undefined;
2695
+ interval?: number | undefined;
2696
+ retries?: number | undefined;
2697
+ critical?: boolean | undefined;
2698
+ }[] | undefined;
2699
+ }>>;
2700
+ }, "strip", z.ZodTypeAny, {
2701
+ enabled: boolean;
2702
+ metrics?: {
2703
+ port: number;
2704
+ path: string;
2705
+ prefix: string;
2706
+ enabled: boolean;
2707
+ collectDefaultMetrics: boolean;
2708
+ labels?: Record<string, string> | undefined;
2709
+ } | undefined;
2710
+ tracing?: {
2711
+ enabled: boolean;
2712
+ provider: "jaeger" | "zipkin" | "opentelemetry";
2713
+ serviceName: string;
2714
+ serviceVersion: string;
2715
+ jaeger?: {
2716
+ endpoint: string;
2717
+ } | undefined;
2718
+ zipkin?: {
2719
+ url: string;
2720
+ } | undefined;
2721
+ opentelemetry?: {
2722
+ endpoint: string;
2723
+ headers?: Record<string, string> | undefined;
2724
+ } | undefined;
2725
+ } | undefined;
2726
+ health?: {
2727
+ path: string;
2728
+ enabled: boolean;
2729
+ detailed: boolean;
2730
+ checks?: {
2731
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2732
+ timeout: number;
2733
+ name: string;
2734
+ target: string;
2735
+ interval: number;
2736
+ retries: number;
2737
+ critical: boolean;
2738
+ }[] | undefined;
2739
+ } | undefined;
2740
+ }, {
2741
+ metrics?: {
2742
+ port?: number | undefined;
2743
+ path?: string | undefined;
2744
+ prefix?: string | undefined;
2745
+ enabled?: boolean | undefined;
2746
+ labels?: Record<string, string> | undefined;
2747
+ collectDefaultMetrics?: boolean | undefined;
2748
+ } | undefined;
2749
+ enabled?: boolean | undefined;
2750
+ tracing?: {
2751
+ enabled?: boolean | undefined;
2752
+ jaeger?: {
2753
+ endpoint?: string | undefined;
2754
+ } | undefined;
2755
+ zipkin?: {
2756
+ url?: string | undefined;
2757
+ } | undefined;
2758
+ opentelemetry?: {
2759
+ endpoint?: string | undefined;
2760
+ headers?: Record<string, string> | undefined;
2761
+ } | undefined;
2762
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
2763
+ serviceName?: string | undefined;
2764
+ serviceVersion?: string | undefined;
2765
+ } | undefined;
2766
+ health?: {
2767
+ path?: string | undefined;
2768
+ enabled?: boolean | undefined;
2769
+ detailed?: boolean | undefined;
2770
+ checks?: {
2771
+ type: "database" | "custom" | "http" | "tcp" | "redis";
2772
+ name: string;
2773
+ target: string;
2774
+ timeout?: number | undefined;
2775
+ interval?: number | undefined;
2776
+ retries?: number | undefined;
2777
+ critical?: boolean | undefined;
2778
+ }[] | undefined;
2779
+ } | undefined;
2780
+ }>;
2781
+ storage: z.ZodOptional<z.ZodObject<{
2782
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["local", "s3", "gcs", "azure"]>>>;
2783
+ local: z.ZodOptional<z.ZodObject<{
2784
+ directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2785
+ maxFileSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2786
+ allowedTypes: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
2787
+ }, "strip", z.ZodTypeAny, {
2788
+ directory: string;
2789
+ maxFileSize: number;
2790
+ allowedTypes: string[];
2791
+ }, {
2792
+ directory?: string | undefined;
2793
+ maxFileSize?: number | undefined;
2794
+ allowedTypes?: string[] | undefined;
2795
+ }>>;
2796
+ s3: z.ZodOptional<z.ZodObject<{
2797
+ bucket: z.ZodString;
2798
+ region: z.ZodString;
2799
+ accessKeyId: z.ZodString;
2800
+ secretAccessKey: z.ZodString;
2801
+ endpoint: z.ZodOptional<z.ZodString>;
2802
+ forcePathStyle: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2803
+ signatureVersion: z.ZodDefault<z.ZodOptional<z.ZodEnum<["v2", "v4"]>>>;
2804
+ }, "strip", z.ZodTypeAny, {
2805
+ bucket: string;
2806
+ region: string;
2807
+ accessKeyId: string;
2808
+ secretAccessKey: string;
2809
+ forcePathStyle: boolean;
2810
+ signatureVersion: "v2" | "v4";
2811
+ endpoint?: string | undefined;
2812
+ }, {
2813
+ bucket: string;
2814
+ region: string;
2815
+ accessKeyId: string;
2816
+ secretAccessKey: string;
2817
+ endpoint?: string | undefined;
2818
+ forcePathStyle?: boolean | undefined;
2819
+ signatureVersion?: "v2" | "v4" | undefined;
2820
+ }>>;
2821
+ gcs: z.ZodOptional<z.ZodObject<{
2822
+ bucket: z.ZodString;
2823
+ projectId: z.ZodString;
2824
+ keyFilename: z.ZodString;
2825
+ }, "strip", z.ZodTypeAny, {
2826
+ bucket: string;
2827
+ projectId: string;
2828
+ keyFilename: string;
2829
+ }, {
2830
+ bucket: string;
2831
+ projectId: string;
2832
+ keyFilename: string;
2833
+ }>>;
2834
+ azure: z.ZodOptional<z.ZodObject<{
2835
+ account: z.ZodString;
2836
+ container: z.ZodString;
2837
+ sasToken: z.ZodString;
2838
+ }, "strip", z.ZodTypeAny, {
2839
+ account: string;
2840
+ container: string;
2841
+ sasToken: string;
2842
+ }, {
2843
+ account: string;
2844
+ container: string;
2845
+ sasToken: string;
2846
+ }>>;
2847
+ }, "strip", z.ZodTypeAny, {
2848
+ type: "local" | "s3" | "gcs" | "azure";
2849
+ local?: {
2850
+ directory: string;
2851
+ maxFileSize: number;
2852
+ allowedTypes: string[];
2853
+ } | undefined;
2854
+ s3?: {
2855
+ bucket: string;
2856
+ region: string;
2857
+ accessKeyId: string;
2858
+ secretAccessKey: string;
2859
+ forcePathStyle: boolean;
2860
+ signatureVersion: "v2" | "v4";
2861
+ endpoint?: string | undefined;
2862
+ } | undefined;
2863
+ gcs?: {
2864
+ bucket: string;
2865
+ projectId: string;
2866
+ keyFilename: string;
2867
+ } | undefined;
2868
+ azure?: {
2869
+ account: string;
2870
+ container: string;
2871
+ sasToken: string;
2872
+ } | undefined;
2873
+ }, {
2874
+ type?: "local" | "s3" | "gcs" | "azure" | undefined;
2875
+ local?: {
2876
+ directory?: string | undefined;
2877
+ maxFileSize?: number | undefined;
2878
+ allowedTypes?: string[] | undefined;
2879
+ } | undefined;
2880
+ s3?: {
2881
+ bucket: string;
2882
+ region: string;
2883
+ accessKeyId: string;
2884
+ secretAccessKey: string;
2885
+ endpoint?: string | undefined;
2886
+ forcePathStyle?: boolean | undefined;
2887
+ signatureVersion?: "v2" | "v4" | undefined;
2888
+ } | undefined;
2889
+ gcs?: {
2890
+ bucket: string;
2891
+ projectId: string;
2892
+ keyFilename: string;
2893
+ } | undefined;
2894
+ azure?: {
2895
+ account: string;
2896
+ container: string;
2897
+ sasToken: string;
2898
+ } | undefined;
2899
+ }>>;
2900
+ email: z.ZodOptional<z.ZodObject<{
2901
+ provider: z.ZodDefault<z.ZodOptional<z.ZodEnum<["smtp", "sendgrid", "ses", "mailgun"]>>>;
2902
+ smtp: z.ZodOptional<z.ZodObject<{
2903
+ host: z.ZodString;
2904
+ port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2905
+ secure: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2906
+ auth: z.ZodObject<{
2907
+ user: z.ZodString;
2908
+ pass: z.ZodString;
2909
+ }, "strip", z.ZodTypeAny, {
2910
+ user: string;
2911
+ pass: string;
2912
+ }, {
2913
+ user: string;
2914
+ pass: string;
2915
+ }>;
2916
+ }, "strip", z.ZodTypeAny, {
2917
+ host: string;
2918
+ port: number;
2919
+ auth: {
2920
+ user: string;
2921
+ pass: string;
2922
+ };
2923
+ secure: boolean;
2924
+ }, {
2925
+ host: string;
2926
+ auth: {
2927
+ user: string;
2928
+ pass: string;
2929
+ };
2930
+ port?: number | undefined;
2931
+ secure?: boolean | undefined;
2932
+ }>>;
2933
+ sendgrid: z.ZodOptional<z.ZodObject<{
2934
+ apiKey: z.ZodString;
2935
+ }, "strip", z.ZodTypeAny, {
2936
+ apiKey: string;
2937
+ }, {
2938
+ apiKey: string;
2939
+ }>>;
2940
+ ses: z.ZodOptional<z.ZodObject<{
2941
+ region: z.ZodString;
2942
+ accessKeyId: z.ZodString;
2943
+ secretAccessKey: z.ZodString;
2944
+ }, "strip", z.ZodTypeAny, {
2945
+ region: string;
2946
+ accessKeyId: string;
2947
+ secretAccessKey: string;
2948
+ }, {
2949
+ region: string;
2950
+ accessKeyId: string;
2951
+ secretAccessKey: string;
2952
+ }>>;
2953
+ mailgun: z.ZodOptional<z.ZodObject<{
2954
+ domain: z.ZodString;
2955
+ apiKey: z.ZodString;
2956
+ }, "strip", z.ZodTypeAny, {
2957
+ apiKey: string;
2958
+ domain: string;
2959
+ }, {
2960
+ apiKey: string;
2961
+ domain: string;
2962
+ }>>;
2963
+ from: z.ZodObject<{
2964
+ name: z.ZodString;
2965
+ email: z.ZodString;
2966
+ }, "strip", z.ZodTypeAny, {
2967
+ name: string;
2968
+ email: string;
2969
+ }, {
2970
+ name: string;
2971
+ email: string;
2972
+ }>;
2973
+ templates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2974
+ }, "strip", z.ZodTypeAny, {
2975
+ provider: "smtp" | "sendgrid" | "ses" | "mailgun";
2976
+ from: {
2977
+ name: string;
2978
+ email: string;
2979
+ };
2980
+ smtp?: {
2981
+ host: string;
2982
+ port: number;
2983
+ auth: {
2984
+ user: string;
2985
+ pass: string;
2986
+ };
2987
+ secure: boolean;
2988
+ } | undefined;
2989
+ sendgrid?: {
2990
+ apiKey: string;
2991
+ } | undefined;
2992
+ ses?: {
2993
+ region: string;
2994
+ accessKeyId: string;
2995
+ secretAccessKey: string;
2996
+ } | undefined;
2997
+ mailgun?: {
2998
+ apiKey: string;
2999
+ domain: string;
3000
+ } | undefined;
3001
+ templates?: Record<string, string> | undefined;
3002
+ }, {
3003
+ from: {
3004
+ name: string;
3005
+ email: string;
3006
+ };
3007
+ provider?: "smtp" | "sendgrid" | "ses" | "mailgun" | undefined;
3008
+ smtp?: {
3009
+ host: string;
3010
+ auth: {
3011
+ user: string;
3012
+ pass: string;
3013
+ };
3014
+ port?: number | undefined;
3015
+ secure?: boolean | undefined;
3016
+ } | undefined;
3017
+ sendgrid?: {
3018
+ apiKey: string;
3019
+ } | undefined;
3020
+ ses?: {
3021
+ region: string;
3022
+ accessKeyId: string;
3023
+ secretAccessKey: string;
3024
+ } | undefined;
3025
+ mailgun?: {
3026
+ apiKey: string;
3027
+ domain: string;
3028
+ } | undefined;
3029
+ templates?: Record<string, string> | undefined;
3030
+ }>>;
3031
+ cache: z.ZodOptional<z.ZodObject<{
3032
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["memory", "redis"]>>>;
3033
+ memory: z.ZodOptional<z.ZodObject<{
3034
+ maxSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3035
+ ttl: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3036
+ checkPeriod: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3037
+ }, "strip", z.ZodTypeAny, {
3038
+ ttl: number;
3039
+ maxSize: number;
3040
+ checkPeriod: number;
3041
+ }, {
3042
+ ttl?: number | undefined;
3043
+ maxSize?: number | undefined;
3044
+ checkPeriod?: number | undefined;
3045
+ }>>;
3046
+ redis: z.ZodOptional<z.ZodObject<{
3047
+ keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3048
+ ttl: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3049
+ maxRetriesPerRequest: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3050
+ }, "strip", z.ZodTypeAny, {
3051
+ maxRetriesPerRequest: number;
3052
+ ttl: number;
3053
+ keyPrefix: string;
3054
+ }, {
3055
+ maxRetriesPerRequest?: number | undefined;
3056
+ ttl?: number | undefined;
3057
+ keyPrefix?: string | undefined;
3058
+ }>>;
3059
+ }, "strip", z.ZodTypeAny, {
3060
+ type: "redis" | "memory";
3061
+ redis?: {
3062
+ maxRetriesPerRequest: number;
3063
+ ttl: number;
3064
+ keyPrefix: string;
3065
+ } | undefined;
3066
+ memory?: {
3067
+ ttl: number;
3068
+ maxSize: number;
3069
+ checkPeriod: number;
3070
+ } | undefined;
3071
+ }, {
3072
+ type?: "redis" | "memory" | undefined;
3073
+ redis?: {
3074
+ maxRetriesPerRequest?: number | undefined;
3075
+ ttl?: number | undefined;
3076
+ keyPrefix?: string | undefined;
3077
+ } | undefined;
3078
+ memory?: {
3079
+ ttl?: number | undefined;
3080
+ maxSize?: number | undefined;
3081
+ checkPeriod?: number | undefined;
3082
+ } | undefined;
3083
+ }>>;
3084
+ }, "strip", z.ZodTypeAny, {
3085
+ logging: {
3086
+ level: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
3087
+ format: "json" | "pretty";
3088
+ colorize: boolean;
3089
+ timestamp: boolean;
3090
+ prettyPrint: boolean;
3091
+ file?: {
3092
+ enabled: boolean;
3093
+ directory: string;
3094
+ maxFiles: number;
3095
+ maxSize: string;
3096
+ filename: string;
3097
+ datePattern: string;
3098
+ zippedArchive: boolean;
3099
+ } | undefined;
3100
+ console?: {
3101
+ enabled: boolean;
3102
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
3103
+ } | undefined;
3104
+ };
3105
+ app: {
3106
+ timezone: string;
3107
+ name: string;
3108
+ environment: "development" | "staging" | "production";
3109
+ debug: boolean;
3110
+ version: string;
3111
+ locale: string;
3112
+ description?: string | undefined;
3113
+ };
3114
+ server: {
3115
+ host: string;
3116
+ port: number;
3117
+ gracefulShutdownTimeout: number;
3118
+ keepAliveTimeout: number;
3119
+ headersTimeout: number;
3120
+ };
3121
+ monitoring: {
3122
+ enabled: boolean;
3123
+ metrics?: {
3124
+ port: number;
3125
+ path: string;
3126
+ prefix: string;
3127
+ enabled: boolean;
3128
+ collectDefaultMetrics: boolean;
3129
+ labels?: Record<string, string> | undefined;
3130
+ } | undefined;
3131
+ tracing?: {
3132
+ enabled: boolean;
3133
+ provider: "jaeger" | "zipkin" | "opentelemetry";
3134
+ serviceName: string;
3135
+ serviceVersion: string;
3136
+ jaeger?: {
3137
+ endpoint: string;
3138
+ } | undefined;
3139
+ zipkin?: {
3140
+ url: string;
3141
+ } | undefined;
3142
+ opentelemetry?: {
3143
+ endpoint: string;
3144
+ headers?: Record<string, string> | undefined;
3145
+ } | undefined;
3146
+ } | undefined;
3147
+ health?: {
3148
+ path: string;
3149
+ enabled: boolean;
3150
+ detailed: boolean;
3151
+ checks?: {
3152
+ type: "database" | "custom" | "http" | "tcp" | "redis";
3153
+ timeout: number;
3154
+ name: string;
3155
+ target: string;
3156
+ interval: number;
3157
+ retries: number;
3158
+ critical: boolean;
3159
+ }[] | undefined;
3160
+ } | undefined;
3161
+ };
3162
+ database?: {
3163
+ host: string;
3164
+ port: number;
3165
+ database: string;
3166
+ username: string;
3167
+ password: string;
3168
+ ssl: boolean;
3169
+ sslMode: "disable" | "require" | "prefer" | "verify-ca" | "verify-full";
3170
+ connectionTimeout: number;
3171
+ idleTimeout: number;
3172
+ maxConnections: number;
3173
+ minConnections: number;
3174
+ acquireTimeoutMillis: number;
3175
+ createTimeoutMillis: number;
3176
+ destroyTimeoutMillis: number;
3177
+ reapIntervalMillis: number;
3178
+ createRetryIntervalMillis: number;
3179
+ logging: boolean;
3180
+ timezone: string;
3181
+ charset: string;
3182
+ type: "postgres";
3183
+ searchPath: string;
3184
+ collation?: string | undefined;
3185
+ pool?: {
3186
+ acquireTimeoutMillis: number;
3187
+ min: number;
3188
+ max: number;
3189
+ idleTimeoutMillis: number;
3190
+ } | undefined;
3191
+ } | {
3192
+ host: string;
3193
+ port: number;
3194
+ database: string;
3195
+ username: string;
3196
+ password: string;
3197
+ ssl: boolean;
3198
+ sslMode: "disable" | "require" | "prefer" | "verify-ca" | "verify-full";
3199
+ connectionTimeout: number;
3200
+ idleTimeout: number;
3201
+ maxConnections: number;
3202
+ minConnections: number;
3203
+ acquireTimeoutMillis: number;
3204
+ createTimeoutMillis: number;
3205
+ destroyTimeoutMillis: number;
3206
+ reapIntervalMillis: number;
3207
+ createRetryIntervalMillis: number;
3208
+ logging: boolean;
3209
+ timezone: string;
3210
+ charset: string;
3211
+ collation: string;
3212
+ type: "mysql";
3213
+ acquireTimeout: number;
3214
+ timeout: number;
3215
+ reconnect: boolean;
3216
+ flags?: string[] | undefined;
3217
+ } | {
3218
+ database: string;
3219
+ type: "mongodb";
3220
+ url: string;
3221
+ options?: {
3222
+ maxPoolSize: number;
3223
+ minPoolSize: number;
3224
+ maxIdleTimeMS: number;
3225
+ serverSelectionTimeoutMS: number;
3226
+ socketTimeoutMS: number;
3227
+ connectTimeoutMS: number;
3228
+ heartbeatFrequencyMS: number;
3229
+ retryWrites: boolean;
3230
+ retryReads: boolean;
3231
+ compressors?: string[] | undefined;
3232
+ zlibCompressionLevel?: number | undefined;
3233
+ } | undefined;
3234
+ auth?: {
3235
+ username?: string | undefined;
3236
+ password?: string | undefined;
3237
+ authSource?: string | undefined;
3238
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
3239
+ } | undefined;
3240
+ } | undefined;
3241
+ redis?: {
3242
+ host: string;
3243
+ port: number;
3244
+ db: number;
3245
+ name: string;
3246
+ connectTimeout: number;
3247
+ commandTimeout: number;
3248
+ retryDelayOnFailover: number;
3249
+ maxRetriesPerRequest: number;
3250
+ lazyConnect: boolean;
3251
+ keepAlive: number;
3252
+ family: "IPv4" | "IPv6";
3253
+ username?: string | undefined;
3254
+ password?: string | undefined;
3255
+ tls?: {
3256
+ rejectUnauthorized: boolean;
3257
+ host?: string | undefined;
3258
+ port?: number | undefined;
3259
+ servername?: string | undefined;
3260
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
3261
+ ca?: string | undefined;
3262
+ cert?: string | undefined;
3263
+ key?: string | undefined;
3264
+ passphrase?: string | undefined;
3265
+ } | undefined;
3266
+ sentinel?: {
3267
+ name: string;
3268
+ sentinels: {
3269
+ host: string;
3270
+ port: number;
3271
+ }[];
3272
+ username?: string | undefined;
3273
+ password?: string | undefined;
3274
+ } | undefined;
3275
+ cluster?: {
3276
+ nodes: {
3277
+ host: string;
3278
+ port: number;
3279
+ }[];
3280
+ options?: {
3281
+ retryDelayOnFailover: number;
3282
+ maxRedirections: number;
3283
+ useSlave: boolean;
3284
+ randomize: boolean;
3285
+ removeNodeOnCount: boolean;
3286
+ promoteSlaveOnFailover: boolean;
3287
+ enableReadyCheck: boolean;
3288
+ maxRetryAttemptsPerRequest: number;
3289
+ redisOptions?: any;
3290
+ } | undefined;
3291
+ } | undefined;
3292
+ } | undefined;
3293
+ security?: {
3294
+ password?: {
3295
+ minLength: number;
3296
+ maxLength: number;
3297
+ requireUppercase: boolean;
3298
+ requireLowercase: boolean;
3299
+ requireNumbers: boolean;
3300
+ requireSpecialChars: boolean;
3301
+ saltRounds: number;
3302
+ pepper?: string | undefined;
3303
+ } | undefined;
3304
+ cors?: {
3305
+ origin: string | boolean | string[];
3306
+ credentials: boolean;
3307
+ methods: string[];
3308
+ allowedHeaders: string[];
3309
+ maxAge: number;
3310
+ preflightContinue: boolean;
3311
+ optionsSuccessStatus: number;
3312
+ exposedHeaders?: string[] | undefined;
3313
+ } | undefined;
3314
+ rateLimit?: {
3315
+ message: string;
3316
+ max: number;
3317
+ windowMs: number;
3318
+ standardHeaders: boolean;
3319
+ legacyHeaders: boolean;
3320
+ skipSuccessfulRequests: boolean;
3321
+ skipFailedRequests: boolean;
3322
+ keyGenerator?: string | undefined;
3323
+ skip?: string | undefined;
3324
+ onLimitReached?: string | undefined;
3325
+ } | undefined;
3326
+ helmet?: {
3327
+ contentSecurityPolicy: boolean | {
3328
+ directives?: Record<string, string | string[]> | undefined;
3329
+ reportOnly?: boolean | undefined;
3330
+ };
3331
+ crossOriginEmbedderPolicy: boolean;
3332
+ crossOriginOpenerPolicy: boolean;
3333
+ crossOriginResourcePolicy: boolean;
3334
+ dnsPrefetchControl: boolean;
3335
+ frameguard: boolean | {
3336
+ action: "deny" | "sameorigin" | "allow-from";
3337
+ domain?: string | undefined;
3338
+ };
3339
+ hidePoweredBy: boolean;
3340
+ hsts: boolean | {
3341
+ maxAge?: number | undefined;
3342
+ includeSubDomains?: boolean | undefined;
3343
+ preload?: boolean | undefined;
3344
+ };
3345
+ ieNoOpen: boolean;
3346
+ noSniff: boolean;
3347
+ originAgentCluster: boolean;
3348
+ permittedCrossDomainPolicies: boolean;
3349
+ referrerPolicy: boolean | {
3350
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
3351
+ };
3352
+ xssFilter: boolean;
3353
+ } | undefined;
3354
+ jwt?: {
3355
+ secret: string;
3356
+ expiresIn: string;
3357
+ refreshExpiresIn: string;
3358
+ issuer: string;
3359
+ audience: string;
3360
+ algorithm: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512";
3361
+ passphrase?: string | undefined;
3362
+ publicKey?: string | undefined;
3363
+ privateKey?: string | undefined;
3364
+ } | undefined;
3365
+ session?: {
3366
+ name: string;
3367
+ secret: string;
3368
+ resave: boolean;
3369
+ saveUninitialized: boolean;
3370
+ rolling: boolean;
3371
+ store: "database" | "redis" | "memory";
3372
+ redis?: {
3373
+ host: string;
3374
+ port: number;
3375
+ db: number;
3376
+ prefix: string;
3377
+ ttl: number;
3378
+ password?: string | undefined;
3379
+ } | undefined;
3380
+ cookie?: {
3381
+ path: string;
3382
+ maxAge: number;
3383
+ secure: boolean;
3384
+ httpOnly: boolean;
3385
+ sameSite: "strict" | "lax" | "none";
3386
+ domain?: string | undefined;
3387
+ } | undefined;
3388
+ } | undefined;
3389
+ encryption?: {
3390
+ key: string;
3391
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc";
3392
+ ivLength: number;
3393
+ tagLength: number;
3394
+ } | undefined;
3395
+ apiKeys?: {
3396
+ length: number;
3397
+ prefix: string;
3398
+ headerName: string;
3399
+ queryParam: string;
3400
+ hashing: "sha256" | "sha512";
3401
+ } | undefined;
3402
+ audit?: {
3403
+ enabled: boolean;
3404
+ logLevel: "error" | "warn" | "info";
3405
+ events: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[];
3406
+ storage: "database" | "file" | "elasticsearch";
3407
+ file?: {
3408
+ path: string;
3409
+ rotation: "daily" | "weekly" | "monthly";
3410
+ maxFiles: number;
3411
+ maxSize: string;
3412
+ } | undefined;
3413
+ retention?: {
3414
+ maxSize: string;
3415
+ days: number;
3416
+ } | undefined;
3417
+ } | undefined;
3418
+ authentication?: {
3419
+ providers?: {
3420
+ type: "local" | "oauth2" | "saml" | "ldap";
3421
+ name: string;
3422
+ enabled: boolean;
3423
+ config: Record<string, any>;
3424
+ }[] | undefined;
3425
+ twoFactor?: {
3426
+ enabled: boolean;
3427
+ issuer: string;
3428
+ providers: ("totp" | "sms" | "email")[];
3429
+ window: number;
3430
+ backupCodes?: {
3431
+ length: number;
3432
+ enabled: boolean;
3433
+ count: number;
3434
+ } | undefined;
3435
+ } | undefined;
3436
+ } | undefined;
3437
+ } | undefined;
3438
+ cache?: {
3439
+ type: "redis" | "memory";
3440
+ redis?: {
3441
+ maxRetriesPerRequest: number;
3442
+ ttl: number;
3443
+ keyPrefix: string;
3444
+ } | undefined;
3445
+ memory?: {
3446
+ ttl: number;
3447
+ maxSize: number;
3448
+ checkPeriod: number;
3449
+ } | undefined;
3450
+ } | undefined;
3451
+ storage?: {
3452
+ type: "local" | "s3" | "gcs" | "azure";
3453
+ local?: {
3454
+ directory: string;
3455
+ maxFileSize: number;
3456
+ allowedTypes: string[];
3457
+ } | undefined;
3458
+ s3?: {
3459
+ bucket: string;
3460
+ region: string;
3461
+ accessKeyId: string;
3462
+ secretAccessKey: string;
3463
+ forcePathStyle: boolean;
3464
+ signatureVersion: "v2" | "v4";
3465
+ endpoint?: string | undefined;
3466
+ } | undefined;
3467
+ gcs?: {
3468
+ bucket: string;
3469
+ projectId: string;
3470
+ keyFilename: string;
3471
+ } | undefined;
3472
+ azure?: {
3473
+ account: string;
3474
+ container: string;
3475
+ sasToken: string;
3476
+ } | undefined;
3477
+ } | undefined;
3478
+ email?: {
3479
+ provider: "smtp" | "sendgrid" | "ses" | "mailgun";
3480
+ from: {
3481
+ name: string;
3482
+ email: string;
3483
+ };
3484
+ smtp?: {
3485
+ host: string;
3486
+ port: number;
3487
+ auth: {
3488
+ user: string;
3489
+ pass: string;
3490
+ };
3491
+ secure: boolean;
3492
+ } | undefined;
3493
+ sendgrid?: {
3494
+ apiKey: string;
3495
+ } | undefined;
3496
+ ses?: {
3497
+ region: string;
3498
+ accessKeyId: string;
3499
+ secretAccessKey: string;
3500
+ } | undefined;
3501
+ mailgun?: {
3502
+ apiKey: string;
3503
+ domain: string;
3504
+ } | undefined;
3505
+ templates?: Record<string, string> | undefined;
3506
+ } | undefined;
3507
+ temporal?: {
3508
+ address: string;
3509
+ namespace: string;
3510
+ taskQueue: string;
3511
+ logging?: {
3512
+ level: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR";
3513
+ format: "json" | "pretty";
3514
+ metadata?: Record<string, any> | undefined;
3515
+ } | undefined;
3516
+ connection?: {
3517
+ tls: boolean;
3518
+ certPath?: string | undefined;
3519
+ keyPath?: string | undefined;
3520
+ caPath?: string | undefined;
3521
+ serverNameOverride?: string | undefined;
3522
+ metadata?: Record<string, string> | undefined;
3523
+ } | undefined;
3524
+ workflows?: {
3525
+ defaultExecutionTimeoutMs: number;
3526
+ defaultTaskTimeoutMs: number;
3527
+ maxConcurrentWorkflowTaskPolls: number;
3528
+ maxConcurrentActivityTaskPolls: number;
3529
+ maxConcurrentWorkflowTaskExecutions: number;
3530
+ maxConcurrentActivityTaskExecutions: number;
3531
+ } | undefined;
3532
+ activities?: {
3533
+ defaultStartToCloseTimeoutMs: number;
3534
+ defaultScheduleToCloseTimeoutMs: number;
3535
+ defaultHeartbeatTimeoutMs: number;
3536
+ defaultRetryPolicy?: {
3537
+ initialInterval: number;
3538
+ backoffCoefficient: number;
3539
+ maximumInterval: number;
3540
+ maximumAttempts: number;
3541
+ nonRetryableErrorTypes?: string[] | undefined;
3542
+ } | undefined;
3543
+ } | undefined;
3544
+ workers?: {
3545
+ taskQueue: string;
3546
+ maxConcurrentWorkflowTaskExecutions: number;
3547
+ maxConcurrentActivityTaskExecutions: number;
3548
+ workflowsPath: string;
3549
+ stickyQueueScheduleToStartTimeoutMs: number;
3550
+ stickyQueueSize: number;
3551
+ enableSessionWorker: boolean;
3552
+ sessionTimeoutMs: number;
3553
+ disabled: boolean;
3554
+ activitiesPath?: string | undefined;
3555
+ }[] | undefined;
3556
+ metrics?: {
3557
+ prometheus?: {
3558
+ port: number;
3559
+ path: string;
3560
+ prefix: string;
3561
+ } | undefined;
3562
+ statsd?: {
3563
+ host: string;
3564
+ port: number;
3565
+ prefix: string;
3566
+ globalTags?: Record<string, string> | undefined;
3567
+ } | undefined;
3568
+ datadog?: {
3569
+ host: string;
3570
+ port: number;
3571
+ prefix: string;
3572
+ apiKey: string;
3573
+ globalTags?: Record<string, string> | undefined;
3574
+ } | undefined;
3575
+ } | undefined;
3576
+ tracing?: {
3577
+ enabled: boolean;
3578
+ provider: "jaeger" | "zipkin" | "opentelemetry";
3579
+ jaeger?: {
3580
+ endpoint: string;
3581
+ serviceName: string;
3582
+ } | undefined;
3583
+ zipkin?: {
3584
+ url: string;
3585
+ serviceName: string;
3586
+ } | undefined;
3587
+ opentelemetry?: {
3588
+ serviceName: string;
3589
+ serviceVersion: string;
3590
+ headers?: Record<string, string> | undefined;
3591
+ environment?: {
3592
+ name: string;
3593
+ namespace?: string | undefined;
3594
+ } | undefined;
3595
+ } | undefined;
3596
+ } | undefined;
3597
+ } | undefined;
3598
+ api?: {
3599
+ host: string;
3600
+ port: number;
3601
+ logging?: {
3602
+ level: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
3603
+ format: "json" | "pretty";
3604
+ enabled: boolean;
3605
+ colorize: boolean;
3606
+ timestamp: boolean;
3607
+ prettyPrint: boolean;
3608
+ } | undefined;
3609
+ metrics?: {
3610
+ path: string;
3611
+ prefix: string;
3612
+ enabled: boolean;
3613
+ includeDefaultMetrics: boolean;
3614
+ port?: number | undefined;
3615
+ labels?: Record<string, string> | undefined;
3616
+ } | undefined;
3617
+ cors?: {
3618
+ enabled: boolean;
3619
+ origin: string | boolean | string[];
3620
+ credentials: boolean;
3621
+ methods: string[];
3622
+ allowedHeaders: string[];
3623
+ maxAge: number;
3624
+ exposedHeaders?: string[] | undefined;
3625
+ } | undefined;
3626
+ rateLimit?: {
3627
+ message: string;
3628
+ max: number;
3629
+ enabled: boolean;
3630
+ windowMs: number;
3631
+ standardHeaders: boolean;
3632
+ legacyHeaders: boolean;
3633
+ skipSuccessfulRequests: boolean;
3634
+ skipFailedRequests: boolean;
3635
+ } | undefined;
3636
+ compression?: {
3637
+ level: number;
3638
+ enabled: boolean;
3639
+ threshold: number;
3640
+ } | undefined;
3641
+ helmet?: {
3642
+ enabled: boolean;
3643
+ contentSecurityPolicy: boolean;
3644
+ crossOriginEmbedderPolicy: boolean;
3645
+ crossOriginOpenerPolicy: boolean;
3646
+ crossOriginResourcePolicy: boolean;
3647
+ dnsPrefetchControl: boolean;
3648
+ frameguard: boolean;
3649
+ hidePoweredBy: boolean;
3650
+ hsts: boolean;
3651
+ ieNoOpen: boolean;
3652
+ noSniff: boolean;
3653
+ originAgentCluster: boolean;
3654
+ permittedCrossDomainPolicies: boolean;
3655
+ referrerPolicy: boolean;
3656
+ xssFilter: boolean;
3657
+ } | undefined;
3658
+ health?: {
3659
+ path: string;
3660
+ enabled: boolean;
3661
+ detailed: boolean;
3662
+ checks?: {
3663
+ type: "database" | "custom" | "http" | "tcp" | "redis";
3664
+ timeout: number;
3665
+ name: string;
3666
+ target: string;
3667
+ interval: number;
3668
+ retries: number;
3669
+ critical: boolean;
3670
+ }[] | undefined;
3671
+ } | undefined;
3672
+ swagger?: {
3673
+ path: string;
3674
+ enabled: boolean;
3675
+ title: string;
3676
+ description: string;
3677
+ version: string;
3678
+ servers?: {
3679
+ url: string;
3680
+ description?: string | undefined;
3681
+ }[] | undefined;
3682
+ security?: {
3683
+ type: string;
3684
+ scheme: string;
3685
+ bearerFormat?: string | undefined;
3686
+ }[] | undefined;
3687
+ } | undefined;
3688
+ middleware?: {
3689
+ name: string;
3690
+ enabled: boolean;
3691
+ path?: string | undefined;
3692
+ options?: Record<string, any> | undefined;
3693
+ }[] | undefined;
3694
+ static?: {
3695
+ path: string;
3696
+ directory: string;
3697
+ options?: {
3698
+ maxAge?: number | undefined;
3699
+ immutable?: boolean | undefined;
3700
+ extensions?: string[] | undefined;
3701
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
3702
+ } | undefined;
3703
+ }[] | undefined;
3704
+ proxy?: {
3705
+ path: string;
3706
+ target: string;
3707
+ changeOrigin: boolean;
3708
+ secure: boolean;
3709
+ ws: boolean;
3710
+ headers?: Record<string, string> | undefined;
3711
+ pathRewrite?: Record<string, string> | undefined;
3712
+ }[] | undefined;
3713
+ } | undefined;
3714
+ }, {
3715
+ logging: {
3716
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
3717
+ format?: "json" | "pretty" | undefined;
3718
+ colorize?: boolean | undefined;
3719
+ timestamp?: boolean | undefined;
3720
+ prettyPrint?: boolean | undefined;
3721
+ file?: {
3722
+ enabled?: boolean | undefined;
3723
+ directory?: string | undefined;
3724
+ maxFiles?: number | undefined;
3725
+ maxSize?: string | undefined;
3726
+ filename?: string | undefined;
3727
+ datePattern?: string | undefined;
3728
+ zippedArchive?: boolean | undefined;
3729
+ } | undefined;
3730
+ console?: {
3731
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
3732
+ enabled?: boolean | undefined;
3733
+ } | undefined;
3734
+ };
3735
+ app: {
3736
+ name: string;
3737
+ version: string;
3738
+ timezone?: string | undefined;
3739
+ environment?: "development" | "staging" | "production" | undefined;
3740
+ debug?: boolean | undefined;
3741
+ description?: string | undefined;
3742
+ locale?: string | undefined;
3743
+ };
3744
+ server: {
3745
+ host?: string | undefined;
3746
+ port?: number | undefined;
3747
+ gracefulShutdownTimeout?: number | undefined;
3748
+ keepAliveTimeout?: number | undefined;
3749
+ headersTimeout?: number | undefined;
3750
+ };
3751
+ monitoring: {
3752
+ metrics?: {
3753
+ port?: number | undefined;
3754
+ path?: string | undefined;
3755
+ prefix?: string | undefined;
3756
+ enabled?: boolean | undefined;
3757
+ labels?: Record<string, string> | undefined;
3758
+ collectDefaultMetrics?: boolean | undefined;
3759
+ } | undefined;
3760
+ enabled?: boolean | undefined;
3761
+ tracing?: {
3762
+ enabled?: boolean | undefined;
3763
+ jaeger?: {
3764
+ endpoint?: string | undefined;
3765
+ } | undefined;
3766
+ zipkin?: {
3767
+ url?: string | undefined;
3768
+ } | undefined;
3769
+ opentelemetry?: {
3770
+ endpoint?: string | undefined;
3771
+ headers?: Record<string, string> | undefined;
3772
+ } | undefined;
3773
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
3774
+ serviceName?: string | undefined;
3775
+ serviceVersion?: string | undefined;
3776
+ } | undefined;
3777
+ health?: {
3778
+ path?: string | undefined;
3779
+ enabled?: boolean | undefined;
3780
+ detailed?: boolean | undefined;
3781
+ checks?: {
3782
+ type: "database" | "custom" | "http" | "tcp" | "redis";
3783
+ name: string;
3784
+ target: string;
3785
+ timeout?: number | undefined;
3786
+ interval?: number | undefined;
3787
+ retries?: number | undefined;
3788
+ critical?: boolean | undefined;
3789
+ }[] | undefined;
3790
+ } | undefined;
3791
+ };
3792
+ database?: {
3793
+ host: string;
3794
+ port: number;
3795
+ database: string;
3796
+ username: string;
3797
+ password: string;
3798
+ type: "postgres";
3799
+ ssl?: boolean | undefined;
3800
+ sslMode?: "disable" | "require" | "prefer" | "verify-ca" | "verify-full" | undefined;
3801
+ connectionTimeout?: number | undefined;
3802
+ idleTimeout?: number | undefined;
3803
+ maxConnections?: number | undefined;
3804
+ minConnections?: number | undefined;
3805
+ acquireTimeoutMillis?: number | undefined;
3806
+ createTimeoutMillis?: number | undefined;
3807
+ destroyTimeoutMillis?: number | undefined;
3808
+ reapIntervalMillis?: number | undefined;
3809
+ createRetryIntervalMillis?: number | undefined;
3810
+ logging?: boolean | undefined;
3811
+ timezone?: string | undefined;
3812
+ charset?: string | undefined;
3813
+ collation?: string | undefined;
3814
+ searchPath?: string | undefined;
3815
+ pool?: {
3816
+ acquireTimeoutMillis?: number | undefined;
3817
+ min?: number | undefined;
3818
+ max?: number | undefined;
3819
+ idleTimeoutMillis?: number | undefined;
3820
+ } | undefined;
3821
+ } | {
3822
+ host: string;
3823
+ port: number;
3824
+ database: string;
3825
+ username: string;
3826
+ password: string;
3827
+ type: "mysql";
3828
+ ssl?: boolean | undefined;
3829
+ sslMode?: "disable" | "require" | "prefer" | "verify-ca" | "verify-full" | undefined;
3830
+ connectionTimeout?: number | undefined;
3831
+ idleTimeout?: number | undefined;
3832
+ maxConnections?: number | undefined;
3833
+ minConnections?: number | undefined;
3834
+ acquireTimeoutMillis?: number | undefined;
3835
+ createTimeoutMillis?: number | undefined;
3836
+ destroyTimeoutMillis?: number | undefined;
3837
+ reapIntervalMillis?: number | undefined;
3838
+ createRetryIntervalMillis?: number | undefined;
3839
+ logging?: boolean | undefined;
3840
+ timezone?: string | undefined;
3841
+ charset?: string | undefined;
3842
+ collation?: string | undefined;
3843
+ acquireTimeout?: number | undefined;
3844
+ timeout?: number | undefined;
3845
+ reconnect?: boolean | undefined;
3846
+ flags?: string[] | undefined;
3847
+ } | {
3848
+ database: string;
3849
+ type: "mongodb";
3850
+ url: string;
3851
+ options?: {
3852
+ maxPoolSize?: number | undefined;
3853
+ minPoolSize?: number | undefined;
3854
+ maxIdleTimeMS?: number | undefined;
3855
+ serverSelectionTimeoutMS?: number | undefined;
3856
+ socketTimeoutMS?: number | undefined;
3857
+ connectTimeoutMS?: number | undefined;
3858
+ heartbeatFrequencyMS?: number | undefined;
3859
+ retryWrites?: boolean | undefined;
3860
+ retryReads?: boolean | undefined;
3861
+ compressors?: string[] | undefined;
3862
+ zlibCompressionLevel?: number | undefined;
3863
+ } | undefined;
3864
+ auth?: {
3865
+ username?: string | undefined;
3866
+ password?: string | undefined;
3867
+ authSource?: string | undefined;
3868
+ authMechanism?: "SCRAM-SHA-1" | "SCRAM-SHA-256" | "MONGODB-CR" | "MONGODB-AWS" | undefined;
3869
+ } | undefined;
3870
+ } | undefined;
3871
+ redis?: {
3872
+ host: string;
3873
+ port?: number | undefined;
3874
+ username?: string | undefined;
3875
+ password?: string | undefined;
3876
+ db?: number | undefined;
3877
+ name?: string | undefined;
3878
+ connectTimeout?: number | undefined;
3879
+ commandTimeout?: number | undefined;
3880
+ retryDelayOnFailover?: number | undefined;
3881
+ maxRetriesPerRequest?: number | undefined;
3882
+ lazyConnect?: boolean | undefined;
3883
+ keepAlive?: number | undefined;
3884
+ family?: "IPv4" | "IPv6" | undefined;
3885
+ tls?: {
3886
+ host?: string | undefined;
3887
+ port?: number | undefined;
3888
+ rejectUnauthorized?: boolean | undefined;
3889
+ servername?: string | undefined;
3890
+ checkServerIdentity?: ((...args: unknown[]) => unknown) | undefined;
3891
+ ca?: string | undefined;
3892
+ cert?: string | undefined;
3893
+ key?: string | undefined;
3894
+ passphrase?: string | undefined;
3895
+ } | undefined;
3896
+ sentinel?: {
3897
+ name: string;
3898
+ sentinels: {
3899
+ host: string;
3900
+ port: number;
3901
+ }[];
3902
+ username?: string | undefined;
3903
+ password?: string | undefined;
3904
+ } | undefined;
3905
+ cluster?: {
3906
+ nodes: {
3907
+ host: string;
3908
+ port: number;
3909
+ }[];
3910
+ options?: {
3911
+ retryDelayOnFailover?: number | undefined;
3912
+ redisOptions?: any;
3913
+ maxRedirections?: number | undefined;
3914
+ useSlave?: boolean | undefined;
3915
+ randomize?: boolean | undefined;
3916
+ removeNodeOnCount?: boolean | undefined;
3917
+ promoteSlaveOnFailover?: boolean | undefined;
3918
+ enableReadyCheck?: boolean | undefined;
3919
+ maxRetryAttemptsPerRequest?: number | undefined;
3920
+ } | undefined;
3921
+ } | undefined;
3922
+ } | undefined;
3923
+ security?: {
3924
+ password?: {
3925
+ minLength?: number | undefined;
3926
+ maxLength?: number | undefined;
3927
+ requireUppercase?: boolean | undefined;
3928
+ requireLowercase?: boolean | undefined;
3929
+ requireNumbers?: boolean | undefined;
3930
+ requireSpecialChars?: boolean | undefined;
3931
+ saltRounds?: number | undefined;
3932
+ pepper?: string | undefined;
3933
+ } | undefined;
3934
+ cors?: {
3935
+ origin?: string | boolean | string[] | undefined;
3936
+ credentials?: boolean | undefined;
3937
+ methods?: string[] | undefined;
3938
+ allowedHeaders?: string[] | undefined;
3939
+ exposedHeaders?: string[] | undefined;
3940
+ maxAge?: number | undefined;
3941
+ preflightContinue?: boolean | undefined;
3942
+ optionsSuccessStatus?: number | undefined;
3943
+ } | undefined;
3944
+ rateLimit?: {
3945
+ message?: string | undefined;
3946
+ max?: number | undefined;
3947
+ windowMs?: number | undefined;
3948
+ standardHeaders?: boolean | undefined;
3949
+ legacyHeaders?: boolean | undefined;
3950
+ skipSuccessfulRequests?: boolean | undefined;
3951
+ skipFailedRequests?: boolean | undefined;
3952
+ keyGenerator?: string | undefined;
3953
+ skip?: string | undefined;
3954
+ onLimitReached?: string | undefined;
3955
+ } | undefined;
3956
+ helmet?: {
3957
+ contentSecurityPolicy?: boolean | {
3958
+ directives?: Record<string, string | string[]> | undefined;
3959
+ reportOnly?: boolean | undefined;
3960
+ } | undefined;
3961
+ crossOriginEmbedderPolicy?: boolean | undefined;
3962
+ crossOriginOpenerPolicy?: boolean | undefined;
3963
+ crossOriginResourcePolicy?: boolean | undefined;
3964
+ dnsPrefetchControl?: boolean | undefined;
3965
+ frameguard?: boolean | {
3966
+ action: "deny" | "sameorigin" | "allow-from";
3967
+ domain?: string | undefined;
3968
+ } | undefined;
3969
+ hidePoweredBy?: boolean | undefined;
3970
+ hsts?: boolean | {
3971
+ maxAge?: number | undefined;
3972
+ includeSubDomains?: boolean | undefined;
3973
+ preload?: boolean | undefined;
3974
+ } | undefined;
3975
+ ieNoOpen?: boolean | undefined;
3976
+ noSniff?: boolean | undefined;
3977
+ originAgentCluster?: boolean | undefined;
3978
+ permittedCrossDomainPolicies?: boolean | undefined;
3979
+ referrerPolicy?: boolean | {
3980
+ policy?: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
3981
+ } | undefined;
3982
+ xssFilter?: boolean | undefined;
3983
+ } | undefined;
3984
+ jwt?: {
3985
+ secret: string;
3986
+ passphrase?: string | undefined;
3987
+ expiresIn?: string | undefined;
3988
+ refreshExpiresIn?: string | undefined;
3989
+ issuer?: string | undefined;
3990
+ audience?: string | undefined;
3991
+ algorithm?: "HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | undefined;
3992
+ publicKey?: string | undefined;
3993
+ privateKey?: string | undefined;
3994
+ } | undefined;
3995
+ session?: {
3996
+ secret: string;
3997
+ name?: string | undefined;
3998
+ redis?: {
3999
+ host: string;
4000
+ port?: number | undefined;
4001
+ password?: string | undefined;
4002
+ db?: number | undefined;
4003
+ prefix?: string | undefined;
4004
+ ttl?: number | undefined;
4005
+ } | undefined;
4006
+ resave?: boolean | undefined;
4007
+ saveUninitialized?: boolean | undefined;
4008
+ rolling?: boolean | undefined;
4009
+ cookie?: {
4010
+ path?: string | undefined;
4011
+ maxAge?: number | undefined;
4012
+ secure?: boolean | undefined;
4013
+ httpOnly?: boolean | undefined;
4014
+ sameSite?: "strict" | "lax" | "none" | undefined;
4015
+ domain?: string | undefined;
4016
+ } | undefined;
4017
+ store?: "database" | "redis" | "memory" | undefined;
4018
+ } | undefined;
4019
+ encryption?: {
4020
+ key: string;
4021
+ algorithm?: "aes-256-gcm" | "aes-256-cbc" | "aes-192-gcm" | "aes-192-cbc" | undefined;
4022
+ ivLength?: number | undefined;
4023
+ tagLength?: number | undefined;
4024
+ } | undefined;
4025
+ apiKeys?: {
4026
+ length?: number | undefined;
4027
+ prefix?: string | undefined;
4028
+ headerName?: string | undefined;
4029
+ queryParam?: string | undefined;
4030
+ hashing?: "sha256" | "sha512" | undefined;
4031
+ } | undefined;
4032
+ audit?: {
4033
+ enabled?: boolean | undefined;
4034
+ logLevel?: "error" | "warn" | "info" | undefined;
4035
+ events?: ("login" | "logout" | "password_change" | "profile_update" | "api_access" | "admin_action" | "security_violation" | "data_access" | "permission_change")[] | undefined;
4036
+ file?: {
4037
+ path: string;
4038
+ rotation?: "daily" | "weekly" | "monthly" | undefined;
4039
+ maxFiles?: number | undefined;
4040
+ maxSize?: string | undefined;
4041
+ } | undefined;
4042
+ storage?: "database" | "file" | "elasticsearch" | undefined;
4043
+ retention?: {
4044
+ maxSize?: string | undefined;
4045
+ days?: number | undefined;
4046
+ } | undefined;
4047
+ } | undefined;
4048
+ authentication?: {
4049
+ providers?: {
4050
+ type: "local" | "oauth2" | "saml" | "ldap";
4051
+ name: string;
4052
+ config: Record<string, any>;
4053
+ enabled?: boolean | undefined;
4054
+ }[] | undefined;
4055
+ twoFactor?: {
4056
+ enabled?: boolean | undefined;
4057
+ issuer?: string | undefined;
4058
+ providers?: ("totp" | "sms" | "email")[] | undefined;
4059
+ window?: number | undefined;
4060
+ backupCodes?: {
4061
+ length?: number | undefined;
4062
+ enabled?: boolean | undefined;
4063
+ count?: number | undefined;
4064
+ } | undefined;
4065
+ } | undefined;
4066
+ } | undefined;
4067
+ } | undefined;
4068
+ cache?: {
4069
+ type?: "redis" | "memory" | undefined;
4070
+ redis?: {
4071
+ maxRetriesPerRequest?: number | undefined;
4072
+ ttl?: number | undefined;
4073
+ keyPrefix?: string | undefined;
4074
+ } | undefined;
4075
+ memory?: {
4076
+ ttl?: number | undefined;
4077
+ maxSize?: number | undefined;
4078
+ checkPeriod?: number | undefined;
4079
+ } | undefined;
4080
+ } | undefined;
4081
+ storage?: {
4082
+ type?: "local" | "s3" | "gcs" | "azure" | undefined;
4083
+ local?: {
4084
+ directory?: string | undefined;
4085
+ maxFileSize?: number | undefined;
4086
+ allowedTypes?: string[] | undefined;
4087
+ } | undefined;
4088
+ s3?: {
4089
+ bucket: string;
4090
+ region: string;
4091
+ accessKeyId: string;
4092
+ secretAccessKey: string;
4093
+ endpoint?: string | undefined;
4094
+ forcePathStyle?: boolean | undefined;
4095
+ signatureVersion?: "v2" | "v4" | undefined;
4096
+ } | undefined;
4097
+ gcs?: {
4098
+ bucket: string;
4099
+ projectId: string;
4100
+ keyFilename: string;
4101
+ } | undefined;
4102
+ azure?: {
4103
+ account: string;
4104
+ container: string;
4105
+ sasToken: string;
4106
+ } | undefined;
4107
+ } | undefined;
4108
+ email?: {
4109
+ from: {
4110
+ name: string;
4111
+ email: string;
4112
+ };
4113
+ provider?: "smtp" | "sendgrid" | "ses" | "mailgun" | undefined;
4114
+ smtp?: {
4115
+ host: string;
4116
+ auth: {
4117
+ user: string;
4118
+ pass: string;
4119
+ };
4120
+ port?: number | undefined;
4121
+ secure?: boolean | undefined;
4122
+ } | undefined;
4123
+ sendgrid?: {
4124
+ apiKey: string;
4125
+ } | undefined;
4126
+ ses?: {
4127
+ region: string;
4128
+ accessKeyId: string;
4129
+ secretAccessKey: string;
4130
+ } | undefined;
4131
+ mailgun?: {
4132
+ apiKey: string;
4133
+ domain: string;
4134
+ } | undefined;
4135
+ templates?: Record<string, string> | undefined;
4136
+ } | undefined;
4137
+ temporal?: {
4138
+ address: string;
4139
+ logging?: {
4140
+ metadata?: Record<string, any> | undefined;
4141
+ level?: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | undefined;
4142
+ format?: "json" | "pretty" | undefined;
4143
+ } | undefined;
4144
+ namespace?: string | undefined;
4145
+ taskQueue?: string | undefined;
4146
+ connection?: {
4147
+ tls?: boolean | undefined;
4148
+ certPath?: string | undefined;
4149
+ keyPath?: string | undefined;
4150
+ caPath?: string | undefined;
4151
+ serverNameOverride?: string | undefined;
4152
+ metadata?: Record<string, string> | undefined;
4153
+ } | undefined;
4154
+ workflows?: {
4155
+ defaultExecutionTimeoutMs?: number | undefined;
4156
+ defaultTaskTimeoutMs?: number | undefined;
4157
+ maxConcurrentWorkflowTaskPolls?: number | undefined;
4158
+ maxConcurrentActivityTaskPolls?: number | undefined;
4159
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
4160
+ maxConcurrentActivityTaskExecutions?: number | undefined;
4161
+ } | undefined;
4162
+ activities?: {
4163
+ defaultStartToCloseTimeoutMs?: number | undefined;
4164
+ defaultScheduleToCloseTimeoutMs?: number | undefined;
4165
+ defaultHeartbeatTimeoutMs?: number | undefined;
4166
+ defaultRetryPolicy?: {
4167
+ initialInterval?: number | undefined;
4168
+ backoffCoefficient?: number | undefined;
4169
+ maximumInterval?: number | undefined;
4170
+ maximumAttempts?: number | undefined;
4171
+ nonRetryableErrorTypes?: string[] | undefined;
4172
+ } | undefined;
4173
+ } | undefined;
4174
+ workers?: {
4175
+ taskQueue: string;
4176
+ workflowsPath: string;
4177
+ maxConcurrentWorkflowTaskExecutions?: number | undefined;
4178
+ maxConcurrentActivityTaskExecutions?: number | undefined;
4179
+ activitiesPath?: string | undefined;
4180
+ stickyQueueScheduleToStartTimeoutMs?: number | undefined;
4181
+ stickyQueueSize?: number | undefined;
4182
+ enableSessionWorker?: boolean | undefined;
4183
+ sessionTimeoutMs?: number | undefined;
4184
+ disabled?: boolean | undefined;
4185
+ }[] | undefined;
4186
+ metrics?: {
4187
+ prometheus?: {
4188
+ port?: number | undefined;
4189
+ path?: string | undefined;
4190
+ prefix?: string | undefined;
4191
+ } | undefined;
4192
+ statsd?: {
4193
+ host: string;
4194
+ port?: number | undefined;
4195
+ prefix?: string | undefined;
4196
+ globalTags?: Record<string, string> | undefined;
4197
+ } | undefined;
4198
+ datadog?: {
4199
+ apiKey: string;
4200
+ host?: string | undefined;
4201
+ port?: number | undefined;
4202
+ prefix?: string | undefined;
4203
+ globalTags?: Record<string, string> | undefined;
4204
+ } | undefined;
4205
+ } | undefined;
4206
+ tracing?: {
4207
+ enabled?: boolean | undefined;
4208
+ jaeger?: {
4209
+ endpoint?: string | undefined;
4210
+ serviceName?: string | undefined;
4211
+ } | undefined;
4212
+ zipkin?: {
4213
+ url: string;
4214
+ serviceName?: string | undefined;
4215
+ } | undefined;
4216
+ opentelemetry?: {
4217
+ serviceName?: string | undefined;
4218
+ serviceVersion?: string | undefined;
4219
+ headers?: Record<string, string> | undefined;
4220
+ environment?: {
4221
+ name?: string | undefined;
4222
+ namespace?: string | undefined;
4223
+ } | undefined;
4224
+ } | undefined;
4225
+ provider?: "jaeger" | "zipkin" | "opentelemetry" | undefined;
4226
+ } | undefined;
4227
+ } | undefined;
4228
+ api?: {
4229
+ host?: string | undefined;
4230
+ port?: number | undefined;
4231
+ logging?: {
4232
+ level?: "fatal" | "error" | "warn" | "info" | "debug" | "trace" | undefined;
4233
+ format?: "json" | "pretty" | undefined;
4234
+ enabled?: boolean | undefined;
4235
+ colorize?: boolean | undefined;
4236
+ timestamp?: boolean | undefined;
4237
+ prettyPrint?: boolean | undefined;
4238
+ } | undefined;
4239
+ metrics?: {
4240
+ port?: number | undefined;
4241
+ path?: string | undefined;
4242
+ prefix?: string | undefined;
4243
+ enabled?: boolean | undefined;
4244
+ labels?: Record<string, string> | undefined;
4245
+ includeDefaultMetrics?: boolean | undefined;
4246
+ } | undefined;
4247
+ cors?: {
4248
+ enabled?: boolean | undefined;
4249
+ origin?: string | boolean | string[] | undefined;
4250
+ credentials?: boolean | undefined;
4251
+ methods?: string[] | undefined;
4252
+ allowedHeaders?: string[] | undefined;
4253
+ exposedHeaders?: string[] | undefined;
4254
+ maxAge?: number | undefined;
4255
+ } | undefined;
4256
+ rateLimit?: {
4257
+ message?: string | undefined;
4258
+ max?: number | undefined;
4259
+ enabled?: boolean | undefined;
4260
+ windowMs?: number | undefined;
4261
+ standardHeaders?: boolean | undefined;
4262
+ legacyHeaders?: boolean | undefined;
4263
+ skipSuccessfulRequests?: boolean | undefined;
4264
+ skipFailedRequests?: boolean | undefined;
4265
+ } | undefined;
4266
+ compression?: {
4267
+ level?: number | undefined;
4268
+ enabled?: boolean | undefined;
4269
+ threshold?: number | undefined;
4270
+ } | undefined;
4271
+ helmet?: {
4272
+ enabled?: boolean | undefined;
4273
+ contentSecurityPolicy?: boolean | undefined;
4274
+ crossOriginEmbedderPolicy?: boolean | undefined;
4275
+ crossOriginOpenerPolicy?: boolean | undefined;
4276
+ crossOriginResourcePolicy?: boolean | undefined;
4277
+ dnsPrefetchControl?: boolean | undefined;
4278
+ frameguard?: boolean | undefined;
4279
+ hidePoweredBy?: boolean | undefined;
4280
+ hsts?: boolean | undefined;
4281
+ ieNoOpen?: boolean | undefined;
4282
+ noSniff?: boolean | undefined;
4283
+ originAgentCluster?: boolean | undefined;
4284
+ permittedCrossDomainPolicies?: boolean | undefined;
4285
+ referrerPolicy?: boolean | undefined;
4286
+ xssFilter?: boolean | undefined;
4287
+ } | undefined;
4288
+ health?: {
4289
+ path?: string | undefined;
4290
+ enabled?: boolean | undefined;
4291
+ detailed?: boolean | undefined;
4292
+ checks?: {
4293
+ type: "database" | "custom" | "http" | "tcp" | "redis";
4294
+ name: string;
4295
+ target: string;
4296
+ timeout?: number | undefined;
4297
+ interval?: number | undefined;
4298
+ retries?: number | undefined;
4299
+ critical?: boolean | undefined;
4300
+ }[] | undefined;
4301
+ } | undefined;
4302
+ swagger?: {
4303
+ path?: string | undefined;
4304
+ enabled?: boolean | undefined;
4305
+ title?: string | undefined;
4306
+ description?: string | undefined;
4307
+ version?: string | undefined;
4308
+ servers?: {
4309
+ url: string;
4310
+ description?: string | undefined;
4311
+ }[] | undefined;
4312
+ security?: {
4313
+ type: string;
4314
+ scheme: string;
4315
+ bearerFormat?: string | undefined;
4316
+ }[] | undefined;
4317
+ } | undefined;
4318
+ middleware?: {
4319
+ name: string;
4320
+ path?: string | undefined;
4321
+ options?: Record<string, any> | undefined;
4322
+ enabled?: boolean | undefined;
4323
+ }[] | undefined;
4324
+ static?: {
4325
+ path: string;
4326
+ directory: string;
4327
+ options?: {
4328
+ maxAge?: number | undefined;
4329
+ immutable?: boolean | undefined;
4330
+ extensions?: string[] | undefined;
4331
+ setHeaders?: ((...args: unknown[]) => unknown) | undefined;
4332
+ } | undefined;
4333
+ }[] | undefined;
4334
+ proxy?: {
4335
+ path: string;
4336
+ target: string;
4337
+ headers?: Record<string, string> | undefined;
4338
+ changeOrigin?: boolean | undefined;
4339
+ secure?: boolean | undefined;
4340
+ ws?: boolean | undefined;
4341
+ pathRewrite?: Record<string, string> | undefined;
4342
+ }[] | undefined;
4343
+ } | undefined;
4344
+ }>;
4345
+ export type AppConfig = z.infer<typeof AppConfigSchema>;
4346
+ export declare const loadConfig: (configPath?: string) => AppConfig;
4347
+ export declare const validateConfig: (config: unknown) => AppConfig;
4348
+ //# sourceMappingURL=index.d.ts.map