@blackcode_sa/metaestetics-api 1.8.3 → 1.8.5

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.
package/dist/index.d.mts CHANGED
@@ -185,6 +185,10 @@ interface Category {
185
185
  /** Flag koji označava da li je kategorija aktivna */
186
186
  isActive: boolean;
187
187
  }
188
+ /**
189
+ * Kolekcija u Firestore bazi gde se čuvaju kategorije
190
+ */
191
+ declare const CATEGORIES_COLLECTION = "backoffice_categories";
188
192
 
189
193
  /**
190
194
  * Podkategorija procedura
@@ -215,6 +219,10 @@ interface Subcategory {
215
219
  /** Datum poslednjeg ažuriranja podkategorije */
216
220
  updatedAt: Date;
217
221
  }
222
+ /**
223
+ * Kolekcija u Firestore bazi gde se čuvaju podkategorije
224
+ */
225
+ declare const SUBCATEGORIES_COLLECTION = "subcategories";
218
226
 
219
227
  /**
220
228
  * Jedinica mere za vremenski period
@@ -270,6 +278,10 @@ interface Requirement {
270
278
  createdAt: Date;
271
279
  updatedAt: Date;
272
280
  }
281
+ /**
282
+ * Kolekcija u Firestore bazi gde se čuvaju globalni zahtevi
283
+ */
284
+ declare const REQUIREMENTS_COLLECTION = "backoffice_requirements";
273
285
 
274
286
  /**
275
287
  * Blokirajući uslovi koji mogu sprečiti proceduru
@@ -383,6 +395,15 @@ interface TechnologyDocumentationTemplate {
383
395
  isRequired: boolean;
384
396
  sortingOrder: number;
385
397
  }
398
+ /**
399
+ * Zahtevi koji su povezani sa tehnologijom
400
+ * @property pre - Lista zahteva koji se moraju ispuniti pre procedure
401
+ * @property post - Lista zahteva koji se moraju ispuniti posle procedure
402
+ */
403
+ interface TechnologyRequirements {
404
+ pre: Requirement[];
405
+ post: Requirement[];
406
+ }
386
407
  /**
387
408
  * Technology used in medical procedures
388
409
  * Technologies are now a top-level collection that reference their full path in the hierarchy
@@ -426,6 +447,10 @@ interface Technology {
426
447
  createdAt: Date;
427
448
  updatedAt: Date;
428
449
  }
450
+ /**
451
+ * Collection in Firestore database where technologies are stored
452
+ */
453
+ declare const TECHNOLOGIES_COLLECTION = "technologies";
429
454
 
430
455
  /**
431
456
  * Product used in procedures
@@ -464,6 +489,10 @@ interface Product {
464
489
  indications?: string[];
465
490
  contraindications?: string[];
466
491
  }
492
+ /**
493
+ * Collection in Firestore database where products are stored
494
+ */
495
+ declare const PRODUCTS_COLLECTION = "products";
467
496
  /**
468
497
  * Interface for the ProductService class
469
498
  */
@@ -2254,6 +2283,70 @@ interface FilledDocumentFileValue {
2254
2283
  uploadedAt: number;
2255
2284
  }
2256
2285
 
2286
+ /**
2287
+ * Brend proizvoda ili opreme
2288
+ * Predstavlja proizvođača ili dobavljača proizvoda i opreme koja se koristi u procedurama
2289
+ *
2290
+ * @property id - Jedinstveni identifikator brenda
2291
+ * @property name - Naziv brenda
2292
+ * @property manufacturer - Naziv proizvođača
2293
+ * @property description - Detaljan opis brenda i njegovih proizvoda
2294
+ * @property website - Web stranica brenda
2295
+ * @property isActive - Da li je brend aktivan u sistemu
2296
+ * @property createdAt - Datum kreiranja
2297
+ * @property updatedAt - Datum poslednjeg ažuriranja
2298
+ */
2299
+ interface Brand {
2300
+ id?: string;
2301
+ name: string;
2302
+ manufacturer: string;
2303
+ createdAt: Date;
2304
+ updatedAt: Date;
2305
+ isActive: boolean;
2306
+ website?: string;
2307
+ description?: string;
2308
+ }
2309
+ /**
2310
+ * Kolekcija u Firestore bazi gde se čuvaju brendovi
2311
+ */
2312
+ declare const BRANDS_COLLECTION = "brands";
2313
+
2314
+ declare class BrandService extends BaseService {
2315
+ /**
2316
+ * Gets reference to brands collection
2317
+ */
2318
+ private getBrandsRef;
2319
+ /**
2320
+ * Creates a new brand
2321
+ */
2322
+ create(brand: Omit<Brand, "id" | "createdAt" | "updatedAt">): Promise<{
2323
+ createdAt: Date;
2324
+ updatedAt: Date;
2325
+ name: string;
2326
+ isActive: boolean;
2327
+ description?: string | undefined;
2328
+ manufacturer: string;
2329
+ website?: string | undefined;
2330
+ id: string;
2331
+ }>;
2332
+ /**
2333
+ * Gets all active brands
2334
+ */
2335
+ getAll(): Promise<Brand[]>;
2336
+ /**
2337
+ * Updates a brand
2338
+ */
2339
+ update(brandId: string, brand: Partial<Omit<Brand, "id" | "createdAt">>): Promise<Brand | null>;
2340
+ /**
2341
+ * Soft deletes a brand
2342
+ */
2343
+ delete(brandId: string): Promise<void>;
2344
+ /**
2345
+ * Gets a brand by ID
2346
+ */
2347
+ getById(brandId: string): Promise<Brand | null>;
2348
+ }
2349
+
2257
2350
  /**
2258
2351
  * Servis za upravljanje kategorijama procedura.
2259
2352
  * Kategorije su prvi nivo organizacije nakon procedure family (aesthetics/surgery).
@@ -2317,6 +2410,91 @@ declare class CategoryService extends BaseService {
2317
2410
  getById(id: string): Promise<Category | null>;
2318
2411
  }
2319
2412
 
2413
+ /**
2414
+ * Service for managing documentation templates in the backoffice
2415
+ */
2416
+ declare class DocumentationTemplateServiceBackoffice {
2417
+ private apiService;
2418
+ /**
2419
+ * Constructor for DocumentationTemplateService
2420
+ * @param db - Firestore instance
2421
+ * @param auth - Firebase Auth instance
2422
+ * @param app - Firebase App instance
2423
+ */
2424
+ constructor(db: Firestore, auth: Auth, app: FirebaseApp);
2425
+ /**
2426
+ * Create a new document template
2427
+ * @param data - Template data
2428
+ * @param userId - ID of the user creating the template
2429
+ * @returns The created template
2430
+ */
2431
+ createTemplate(data: CreateDocumentTemplateData, userId: string): Promise<DocumentTemplate>;
2432
+ /**
2433
+ * Get a document template by ID
2434
+ * @param templateId - ID of the template to retrieve
2435
+ * @param version - Optional version number to retrieve (defaults to latest version)
2436
+ * @returns The template or null if not found
2437
+ */
2438
+ getTemplateById(templateId: string, version?: number): Promise<DocumentTemplate | null>;
2439
+ /**
2440
+ * Update an existing document template
2441
+ * @param templateId - ID of the template to update
2442
+ * @param data - Updated template data
2443
+ * @returns The updated template
2444
+ */
2445
+ updateTemplate(templateId: string, data: UpdateDocumentTemplateData): Promise<DocumentTemplate>;
2446
+ /**
2447
+ * Delete a document template
2448
+ * @param templateId - ID of the template to delete
2449
+ */
2450
+ deleteTemplate(templateId: string): Promise<void>;
2451
+ /**
2452
+ * Get all active templates
2453
+ * @param pageSize - Number of templates to retrieve
2454
+ * @param lastDoc - Last document from previous page for pagination
2455
+ * @returns Array of templates and the last document for pagination
2456
+ */
2457
+ getActiveTemplates(pageSize?: number, lastDoc?: QueryDocumentSnapshot<DocumentTemplate>): Promise<{
2458
+ templates: DocumentTemplate[];
2459
+ lastDoc: QueryDocumentSnapshot<DocumentTemplate> | null;
2460
+ }>;
2461
+ /**
2462
+ * Get templates by tags
2463
+ * @param tags - Tags to filter by
2464
+ * @param pageSize - Number of templates to retrieve
2465
+ * @param lastDoc - Last document from previous page for pagination
2466
+ * @returns Array of templates and the last document for pagination
2467
+ */
2468
+ getTemplatesByTags(tags: string[], pageSize?: number, lastDoc?: QueryDocumentSnapshot<DocumentTemplate>): Promise<{
2469
+ templates: DocumentTemplate[];
2470
+ lastDoc: QueryDocumentSnapshot<DocumentTemplate> | null;
2471
+ }>;
2472
+ /**
2473
+ * Get templates created by a specific user
2474
+ * @param userId - ID of the user who created the templates
2475
+ * @param pageSize - Number of templates to retrieve
2476
+ * @param lastDoc - Last document from previous page for pagination
2477
+ * @returns Array of templates and the last document for pagination
2478
+ */
2479
+ getTemplatesByCreator(userId: string, pageSize?: number, lastDoc?: QueryDocumentSnapshot<DocumentTemplate>): Promise<{
2480
+ templates: DocumentTemplate[];
2481
+ lastDoc: QueryDocumentSnapshot<DocumentTemplate> | null;
2482
+ }>;
2483
+ /**
2484
+ * Get a specific version of a template
2485
+ * @param templateId - ID of the template
2486
+ * @param versionNumber - Version number to retrieve
2487
+ * @returns The template version or null if not found
2488
+ */
2489
+ getTemplateVersion(templateId: string, versionNumber: number): Promise<DocumentTemplate | null>;
2490
+ /**
2491
+ * Get all versions of a template
2492
+ * @param templateId - ID of the template
2493
+ * @returns Array of template versions
2494
+ */
2495
+ getTemplateVersions(templateId: string): Promise<DocumentTemplate[]>;
2496
+ }
2497
+
2320
2498
  declare class ProductService extends BaseService implements IProductService {
2321
2499
  /**
2322
2500
  * Gets reference to products collection under a technology
@@ -2350,6 +2528,79 @@ declare class ProductService extends BaseService implements IProductService {
2350
2528
  getById(technologyId: string, productId: string): Promise<Product | null>;
2351
2529
  }
2352
2530
 
2531
+ /**
2532
+ * Servis za upravljanje globalnim zahtevima.
2533
+ * Zahtevi se mogu kreirati globalno i zatim povezati sa različitim tehnologijama.
2534
+ * Ovo omogućava ponovno korišćenje istih zahteva za različite tehnologije.
2535
+ *
2536
+ * @example
2537
+ * const requirementService = new RequirementService();
2538
+ *
2539
+ * // Kreiranje globalnog zahteva
2540
+ * const requirement = await requirementService.create({
2541
+ * type: "pre",
2542
+ * name: "Stay Hydrated",
2543
+ * description: "Drink plenty of water",
2544
+ * timeframe: {
2545
+ * duration: 2,
2546
+ * unit: "hours",
2547
+ * notifyAt: [2, 1]
2548
+ * },
2549
+ * importance: "high"
2550
+ * });
2551
+ */
2552
+ declare class RequirementService extends BaseService {
2553
+ /**
2554
+ * Referenca na Firestore kolekciju zahteva
2555
+ */
2556
+ private get requirementsRef();
2557
+ /**
2558
+ * Kreira novi globalni zahtev
2559
+ * @param requirement - Podaci za novi zahtev
2560
+ * @returns Kreirani zahtev sa generisanim ID-em
2561
+ */
2562
+ create(requirement: Omit<Requirement, "id" | "createdAt" | "updatedAt">): Promise<{
2563
+ type: RequirementType;
2564
+ createdAt: Date;
2565
+ updatedAt: Date;
2566
+ name: string;
2567
+ isActive: boolean;
2568
+ description: string;
2569
+ timeframe: TimeFrame;
2570
+ importance: RequirementImportance;
2571
+ id: string;
2572
+ }>;
2573
+ /**
2574
+ * Vraća sve aktivne zahteve
2575
+ * @returns Lista aktivnih zahteva
2576
+ */
2577
+ getAll(): Promise<Requirement[]>;
2578
+ /**
2579
+ * Vraća sve aktivne zahteve određenog tipa
2580
+ * @param type - Tip zahteva (pre/post)
2581
+ * @returns Lista zahteva određenog tipa
2582
+ */
2583
+ getAllByType(type: RequirementType): Promise<Requirement[]>;
2584
+ /**
2585
+ * Ažurira postojeći zahtev
2586
+ * @param id - ID zahteva koji se ažurira
2587
+ * @param requirement - Novi podaci za zahtev
2588
+ * @returns Ažurirani zahtev
2589
+ */
2590
+ update(id: string, requirement: Partial<Omit<Requirement, "id" | "createdAt">>): Promise<Requirement | null>;
2591
+ /**
2592
+ * Soft delete zahteva (postavlja isActive na false)
2593
+ * @param id - ID zahteva koji se briše
2594
+ */
2595
+ delete(id: string): Promise<void>;
2596
+ /**
2597
+ * Vraća zahtev po ID-u
2598
+ * @param id - ID traženog zahteva
2599
+ * @returns Zahtev ili null ako ne postoji
2600
+ */
2601
+ getById(id: string): Promise<Requirement | null>;
2602
+ }
2603
+
2353
2604
  /**
2354
2605
  * Servis za upravljanje podkategorijama procedura.
2355
2606
  * Podkategorije su drugi nivo organizacije i pripadaju određenoj kategoriji.
@@ -4565,6 +4816,2269 @@ declare const updateFilledDocumentDataSchema: z.ZodObject<{
4565
4816
  values?: Record<string, any> | undefined;
4566
4817
  }>;
4567
4818
 
4819
+ /**
4820
+ * Base validation schemas for enums
4821
+ */
4822
+ declare const blockingConditionSchemaBackoffice: z.ZodNativeEnum<typeof BlockingCondition>;
4823
+ declare const contraindicationSchemaBackoffice: z.ZodNativeEnum<typeof Contraindication>;
4824
+ declare const treatmentBenefitSchemaBackoffice: z.ZodNativeEnum<typeof TreatmentBenefit>;
4825
+ declare const procedureFamilySchemaBackoffice: z.ZodNativeEnum<typeof ProcedureFamily>;
4826
+ declare const timeUnitSchemaBackoffice: z.ZodNativeEnum<typeof TimeUnit>;
4827
+ declare const requirementTypeSchema: z.ZodNativeEnum<typeof RequirementType>;
4828
+ declare const certificationLevelSchema: z.ZodNativeEnum<typeof CertificationLevel>;
4829
+ declare const certificationSpecialtySchema: z.ZodNativeEnum<typeof CertificationSpecialty>;
4830
+ /**
4831
+ * Certification requirement validation schema
4832
+ */
4833
+ declare const certificationRequirementSchema: z.ZodObject<{
4834
+ minimumLevel: z.ZodNativeEnum<typeof CertificationLevel>;
4835
+ requiredSpecialties: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof CertificationSpecialty>, "many">>;
4836
+ }, "strip", z.ZodTypeAny, {
4837
+ minimumLevel: CertificationLevel;
4838
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
4839
+ }, {
4840
+ minimumLevel: CertificationLevel;
4841
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
4842
+ }>;
4843
+ /**
4844
+ * Timeframe validation schema
4845
+ */
4846
+ declare const timeframeSchema: z.ZodObject<{
4847
+ duration: z.ZodNumber;
4848
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
4849
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
4850
+ }, "strip", z.ZodTypeAny, {
4851
+ duration: number;
4852
+ unit: TimeUnit;
4853
+ notifyAt: number[];
4854
+ }, {
4855
+ duration: number;
4856
+ unit: TimeUnit;
4857
+ notifyAt: number[];
4858
+ }>;
4859
+ /**
4860
+ * Requirement validation schema
4861
+ */
4862
+ declare const requirementSchema: z.ZodObject<{
4863
+ name: z.ZodString;
4864
+ description: z.ZodString;
4865
+ type: z.ZodNativeEnum<typeof RequirementType>;
4866
+ timeframe: z.ZodObject<{
4867
+ duration: z.ZodNumber;
4868
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
4869
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
4870
+ }, "strip", z.ZodTypeAny, {
4871
+ duration: number;
4872
+ unit: TimeUnit;
4873
+ notifyAt: number[];
4874
+ }, {
4875
+ duration: number;
4876
+ unit: TimeUnit;
4877
+ notifyAt: number[];
4878
+ }>;
4879
+ importance: z.ZodEnum<["low", "medium", "high"]>;
4880
+ isActive: z.ZodDefault<z.ZodBoolean>;
4881
+ }, "strip", z.ZodTypeAny, {
4882
+ type: RequirementType;
4883
+ name: string;
4884
+ isActive: boolean;
4885
+ description: string;
4886
+ timeframe: {
4887
+ duration: number;
4888
+ unit: TimeUnit;
4889
+ notifyAt: number[];
4890
+ };
4891
+ importance: "low" | "medium" | "high";
4892
+ }, {
4893
+ type: RequirementType;
4894
+ name: string;
4895
+ description: string;
4896
+ timeframe: {
4897
+ duration: number;
4898
+ unit: TimeUnit;
4899
+ notifyAt: number[];
4900
+ };
4901
+ importance: "low" | "medium" | "high";
4902
+ isActive?: boolean | undefined;
4903
+ }>;
4904
+ /**
4905
+ * Technology requirements validation schema
4906
+ */
4907
+ declare const technologyRequirementsSchema: z.ZodObject<{
4908
+ pre: z.ZodArray<z.ZodObject<{
4909
+ name: z.ZodString;
4910
+ description: z.ZodString;
4911
+ type: z.ZodNativeEnum<typeof RequirementType>;
4912
+ timeframe: z.ZodObject<{
4913
+ duration: z.ZodNumber;
4914
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
4915
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
4916
+ }, "strip", z.ZodTypeAny, {
4917
+ duration: number;
4918
+ unit: TimeUnit;
4919
+ notifyAt: number[];
4920
+ }, {
4921
+ duration: number;
4922
+ unit: TimeUnit;
4923
+ notifyAt: number[];
4924
+ }>;
4925
+ importance: z.ZodEnum<["low", "medium", "high"]>;
4926
+ isActive: z.ZodDefault<z.ZodBoolean>;
4927
+ }, "strip", z.ZodTypeAny, {
4928
+ type: RequirementType;
4929
+ name: string;
4930
+ isActive: boolean;
4931
+ description: string;
4932
+ timeframe: {
4933
+ duration: number;
4934
+ unit: TimeUnit;
4935
+ notifyAt: number[];
4936
+ };
4937
+ importance: "low" | "medium" | "high";
4938
+ }, {
4939
+ type: RequirementType;
4940
+ name: string;
4941
+ description: string;
4942
+ timeframe: {
4943
+ duration: number;
4944
+ unit: TimeUnit;
4945
+ notifyAt: number[];
4946
+ };
4947
+ importance: "low" | "medium" | "high";
4948
+ isActive?: boolean | undefined;
4949
+ }>, "many">;
4950
+ post: z.ZodArray<z.ZodObject<{
4951
+ name: z.ZodString;
4952
+ description: z.ZodString;
4953
+ type: z.ZodNativeEnum<typeof RequirementType>;
4954
+ timeframe: z.ZodObject<{
4955
+ duration: z.ZodNumber;
4956
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
4957
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
4958
+ }, "strip", z.ZodTypeAny, {
4959
+ duration: number;
4960
+ unit: TimeUnit;
4961
+ notifyAt: number[];
4962
+ }, {
4963
+ duration: number;
4964
+ unit: TimeUnit;
4965
+ notifyAt: number[];
4966
+ }>;
4967
+ importance: z.ZodEnum<["low", "medium", "high"]>;
4968
+ isActive: z.ZodDefault<z.ZodBoolean>;
4969
+ }, "strip", z.ZodTypeAny, {
4970
+ type: RequirementType;
4971
+ name: string;
4972
+ isActive: boolean;
4973
+ description: string;
4974
+ timeframe: {
4975
+ duration: number;
4976
+ unit: TimeUnit;
4977
+ notifyAt: number[];
4978
+ };
4979
+ importance: "low" | "medium" | "high";
4980
+ }, {
4981
+ type: RequirementType;
4982
+ name: string;
4983
+ description: string;
4984
+ timeframe: {
4985
+ duration: number;
4986
+ unit: TimeUnit;
4987
+ notifyAt: number[];
4988
+ };
4989
+ importance: "low" | "medium" | "high";
4990
+ isActive?: boolean | undefined;
4991
+ }>, "many">;
4992
+ }, "strip", z.ZodTypeAny, {
4993
+ pre: {
4994
+ type: RequirementType;
4995
+ name: string;
4996
+ isActive: boolean;
4997
+ description: string;
4998
+ timeframe: {
4999
+ duration: number;
5000
+ unit: TimeUnit;
5001
+ notifyAt: number[];
5002
+ };
5003
+ importance: "low" | "medium" | "high";
5004
+ }[];
5005
+ post: {
5006
+ type: RequirementType;
5007
+ name: string;
5008
+ isActive: boolean;
5009
+ description: string;
5010
+ timeframe: {
5011
+ duration: number;
5012
+ unit: TimeUnit;
5013
+ notifyAt: number[];
5014
+ };
5015
+ importance: "low" | "medium" | "high";
5016
+ }[];
5017
+ }, {
5018
+ pre: {
5019
+ type: RequirementType;
5020
+ name: string;
5021
+ description: string;
5022
+ timeframe: {
5023
+ duration: number;
5024
+ unit: TimeUnit;
5025
+ notifyAt: number[];
5026
+ };
5027
+ importance: "low" | "medium" | "high";
5028
+ isActive?: boolean | undefined;
5029
+ }[];
5030
+ post: {
5031
+ type: RequirementType;
5032
+ name: string;
5033
+ description: string;
5034
+ timeframe: {
5035
+ duration: number;
5036
+ unit: TimeUnit;
5037
+ notifyAt: number[];
5038
+ };
5039
+ importance: "low" | "medium" | "high";
5040
+ isActive?: boolean | undefined;
5041
+ }[];
5042
+ }>;
5043
+ /**
5044
+ * Technology validation schema
5045
+ */
5046
+ declare const technologySchema: z.ZodObject<{
5047
+ name: z.ZodString;
5048
+ description: z.ZodOptional<z.ZodString>;
5049
+ technicalDetails: z.ZodOptional<z.ZodString>;
5050
+ family: z.ZodNativeEnum<typeof ProcedureFamily>;
5051
+ categoryId: z.ZodString;
5052
+ subcategoryId: z.ZodString;
5053
+ requirements: z.ZodDefault<z.ZodObject<{
5054
+ pre: z.ZodArray<z.ZodObject<{
5055
+ name: z.ZodString;
5056
+ description: z.ZodString;
5057
+ type: z.ZodNativeEnum<typeof RequirementType>;
5058
+ timeframe: z.ZodObject<{
5059
+ duration: z.ZodNumber;
5060
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
5061
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
5062
+ }, "strip", z.ZodTypeAny, {
5063
+ duration: number;
5064
+ unit: TimeUnit;
5065
+ notifyAt: number[];
5066
+ }, {
5067
+ duration: number;
5068
+ unit: TimeUnit;
5069
+ notifyAt: number[];
5070
+ }>;
5071
+ importance: z.ZodEnum<["low", "medium", "high"]>;
5072
+ isActive: z.ZodDefault<z.ZodBoolean>;
5073
+ }, "strip", z.ZodTypeAny, {
5074
+ type: RequirementType;
5075
+ name: string;
5076
+ isActive: boolean;
5077
+ description: string;
5078
+ timeframe: {
5079
+ duration: number;
5080
+ unit: TimeUnit;
5081
+ notifyAt: number[];
5082
+ };
5083
+ importance: "low" | "medium" | "high";
5084
+ }, {
5085
+ type: RequirementType;
5086
+ name: string;
5087
+ description: string;
5088
+ timeframe: {
5089
+ duration: number;
5090
+ unit: TimeUnit;
5091
+ notifyAt: number[];
5092
+ };
5093
+ importance: "low" | "medium" | "high";
5094
+ isActive?: boolean | undefined;
5095
+ }>, "many">;
5096
+ post: z.ZodArray<z.ZodObject<{
5097
+ name: z.ZodString;
5098
+ description: z.ZodString;
5099
+ type: z.ZodNativeEnum<typeof RequirementType>;
5100
+ timeframe: z.ZodObject<{
5101
+ duration: z.ZodNumber;
5102
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
5103
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
5104
+ }, "strip", z.ZodTypeAny, {
5105
+ duration: number;
5106
+ unit: TimeUnit;
5107
+ notifyAt: number[];
5108
+ }, {
5109
+ duration: number;
5110
+ unit: TimeUnit;
5111
+ notifyAt: number[];
5112
+ }>;
5113
+ importance: z.ZodEnum<["low", "medium", "high"]>;
5114
+ isActive: z.ZodDefault<z.ZodBoolean>;
5115
+ }, "strip", z.ZodTypeAny, {
5116
+ type: RequirementType;
5117
+ name: string;
5118
+ isActive: boolean;
5119
+ description: string;
5120
+ timeframe: {
5121
+ duration: number;
5122
+ unit: TimeUnit;
5123
+ notifyAt: number[];
5124
+ };
5125
+ importance: "low" | "medium" | "high";
5126
+ }, {
5127
+ type: RequirementType;
5128
+ name: string;
5129
+ description: string;
5130
+ timeframe: {
5131
+ duration: number;
5132
+ unit: TimeUnit;
5133
+ notifyAt: number[];
5134
+ };
5135
+ importance: "low" | "medium" | "high";
5136
+ isActive?: boolean | undefined;
5137
+ }>, "many">;
5138
+ }, "strip", z.ZodTypeAny, {
5139
+ pre: {
5140
+ type: RequirementType;
5141
+ name: string;
5142
+ isActive: boolean;
5143
+ description: string;
5144
+ timeframe: {
5145
+ duration: number;
5146
+ unit: TimeUnit;
5147
+ notifyAt: number[];
5148
+ };
5149
+ importance: "low" | "medium" | "high";
5150
+ }[];
5151
+ post: {
5152
+ type: RequirementType;
5153
+ name: string;
5154
+ isActive: boolean;
5155
+ description: string;
5156
+ timeframe: {
5157
+ duration: number;
5158
+ unit: TimeUnit;
5159
+ notifyAt: number[];
5160
+ };
5161
+ importance: "low" | "medium" | "high";
5162
+ }[];
5163
+ }, {
5164
+ pre: {
5165
+ type: RequirementType;
5166
+ name: string;
5167
+ description: string;
5168
+ timeframe: {
5169
+ duration: number;
5170
+ unit: TimeUnit;
5171
+ notifyAt: number[];
5172
+ };
5173
+ importance: "low" | "medium" | "high";
5174
+ isActive?: boolean | undefined;
5175
+ }[];
5176
+ post: {
5177
+ type: RequirementType;
5178
+ name: string;
5179
+ description: string;
5180
+ timeframe: {
5181
+ duration: number;
5182
+ unit: TimeUnit;
5183
+ notifyAt: number[];
5184
+ };
5185
+ importance: "low" | "medium" | "high";
5186
+ isActive?: boolean | undefined;
5187
+ }[];
5188
+ }>>;
5189
+ blockingConditions: z.ZodArray<z.ZodNativeEnum<typeof BlockingCondition>, "many">;
5190
+ contraindications: z.ZodArray<z.ZodNativeEnum<typeof Contraindication>, "many">;
5191
+ documentationTemplates: z.ZodArray<z.ZodObject<{
5192
+ id: z.ZodString;
5193
+ title: z.ZodString;
5194
+ description: z.ZodOptional<z.ZodString>;
5195
+ createdAt: z.ZodNumber;
5196
+ updatedAt: z.ZodNumber;
5197
+ createdBy: z.ZodString;
5198
+ elements: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
5199
+ id: z.ZodOptional<z.ZodString>;
5200
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5201
+ required: z.ZodOptional<z.ZodBoolean>;
5202
+ }, {
5203
+ type: z.ZodLiteral<DocumentElementType.HEADING>;
5204
+ text: z.ZodString;
5205
+ level: z.ZodNativeEnum<typeof HeadingLevel>;
5206
+ }>, "strip", z.ZodTypeAny, {
5207
+ type: DocumentElementType.HEADING;
5208
+ text: string;
5209
+ level: HeadingLevel;
5210
+ id?: string | undefined;
5211
+ required?: boolean | undefined;
5212
+ }, {
5213
+ type: DocumentElementType.HEADING;
5214
+ text: string;
5215
+ level: HeadingLevel;
5216
+ id?: string | undefined;
5217
+ required?: boolean | undefined;
5218
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5219
+ id: z.ZodOptional<z.ZodString>;
5220
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5221
+ required: z.ZodOptional<z.ZodBoolean>;
5222
+ }, {
5223
+ type: z.ZodLiteral<DocumentElementType.PARAGRAPH>;
5224
+ text: z.ZodString;
5225
+ }>, "strip", z.ZodTypeAny, {
5226
+ type: DocumentElementType.PARAGRAPH;
5227
+ text: string;
5228
+ id?: string | undefined;
5229
+ required?: boolean | undefined;
5230
+ }, {
5231
+ type: DocumentElementType.PARAGRAPH;
5232
+ text: string;
5233
+ id?: string | undefined;
5234
+ required?: boolean | undefined;
5235
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5236
+ id: z.ZodOptional<z.ZodString>;
5237
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5238
+ required: z.ZodOptional<z.ZodBoolean>;
5239
+ }, {
5240
+ type: z.ZodLiteral<DocumentElementType.LIST>;
5241
+ items: z.ZodArray<z.ZodString, "many">;
5242
+ listType: z.ZodNativeEnum<typeof ListType>;
5243
+ }>, "strip", z.ZodTypeAny, {
5244
+ type: DocumentElementType.LIST;
5245
+ items: string[];
5246
+ listType: ListType;
5247
+ id?: string | undefined;
5248
+ required?: boolean | undefined;
5249
+ }, {
5250
+ type: DocumentElementType.LIST;
5251
+ items: string[];
5252
+ listType: ListType;
5253
+ id?: string | undefined;
5254
+ required?: boolean | undefined;
5255
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5256
+ id: z.ZodOptional<z.ZodString>;
5257
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5258
+ required: z.ZodOptional<z.ZodBoolean>;
5259
+ }, {
5260
+ type: z.ZodLiteral<DocumentElementType.DYNAMIC_TEXT>;
5261
+ text: z.ZodString;
5262
+ }>, "strip", z.ZodTypeAny, {
5263
+ type: DocumentElementType.DYNAMIC_TEXT;
5264
+ text: string;
5265
+ id?: string | undefined;
5266
+ required?: boolean | undefined;
5267
+ }, {
5268
+ type: DocumentElementType.DYNAMIC_TEXT;
5269
+ text: string;
5270
+ id?: string | undefined;
5271
+ required?: boolean | undefined;
5272
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5273
+ id: z.ZodOptional<z.ZodString>;
5274
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5275
+ required: z.ZodOptional<z.ZodBoolean>;
5276
+ }, {
5277
+ type: z.ZodLiteral<DocumentElementType.BINARY_CHOICE>;
5278
+ question: z.ZodString;
5279
+ defaultValue: z.ZodOptional<z.ZodBoolean>;
5280
+ }>, "strip", z.ZodTypeAny, {
5281
+ type: DocumentElementType.BINARY_CHOICE;
5282
+ question: string;
5283
+ id?: string | undefined;
5284
+ required?: boolean | undefined;
5285
+ defaultValue?: boolean | undefined;
5286
+ }, {
5287
+ type: DocumentElementType.BINARY_CHOICE;
5288
+ question: string;
5289
+ id?: string | undefined;
5290
+ required?: boolean | undefined;
5291
+ defaultValue?: boolean | undefined;
5292
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5293
+ id: z.ZodOptional<z.ZodString>;
5294
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5295
+ required: z.ZodOptional<z.ZodBoolean>;
5296
+ }, {
5297
+ type: z.ZodLiteral<DocumentElementType.MULTIPLE_CHOICE>;
5298
+ question: z.ZodString;
5299
+ options: z.ZodArray<z.ZodString, "many">;
5300
+ defaultValues: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5301
+ }>, "strip", z.ZodTypeAny, {
5302
+ type: DocumentElementType.MULTIPLE_CHOICE;
5303
+ question: string;
5304
+ options: string[];
5305
+ id?: string | undefined;
5306
+ required?: boolean | undefined;
5307
+ defaultValues?: string[] | undefined;
5308
+ }, {
5309
+ type: DocumentElementType.MULTIPLE_CHOICE;
5310
+ question: string;
5311
+ options: string[];
5312
+ id?: string | undefined;
5313
+ required?: boolean | undefined;
5314
+ defaultValues?: string[] | undefined;
5315
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5316
+ id: z.ZodOptional<z.ZodString>;
5317
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5318
+ required: z.ZodOptional<z.ZodBoolean>;
5319
+ }, {
5320
+ type: z.ZodLiteral<DocumentElementType.SINGLE_CHOICE>;
5321
+ question: z.ZodString;
5322
+ options: z.ZodArray<z.ZodString, "many">;
5323
+ defaultValue: z.ZodOptional<z.ZodString>;
5324
+ }>, "strip", z.ZodTypeAny, {
5325
+ type: DocumentElementType.SINGLE_CHOICE;
5326
+ question: string;
5327
+ options: string[];
5328
+ id?: string | undefined;
5329
+ required?: boolean | undefined;
5330
+ defaultValue?: string | undefined;
5331
+ }, {
5332
+ type: DocumentElementType.SINGLE_CHOICE;
5333
+ question: string;
5334
+ options: string[];
5335
+ id?: string | undefined;
5336
+ required?: boolean | undefined;
5337
+ defaultValue?: string | undefined;
5338
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5339
+ id: z.ZodOptional<z.ZodString>;
5340
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5341
+ required: z.ZodOptional<z.ZodBoolean>;
5342
+ }, {
5343
+ type: z.ZodLiteral<DocumentElementType.RATING_SCALE>;
5344
+ question: z.ZodString;
5345
+ min: z.ZodNumber;
5346
+ max: z.ZodNumber;
5347
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5348
+ defaultValue: z.ZodOptional<z.ZodNumber>;
5349
+ }>, "strip", z.ZodTypeAny, {
5350
+ type: DocumentElementType.RATING_SCALE;
5351
+ question: string;
5352
+ min: number;
5353
+ max: number;
5354
+ id?: string | undefined;
5355
+ required?: boolean | undefined;
5356
+ defaultValue?: number | undefined;
5357
+ labels?: Record<string, string> | undefined;
5358
+ }, {
5359
+ type: DocumentElementType.RATING_SCALE;
5360
+ question: string;
5361
+ min: number;
5362
+ max: number;
5363
+ id?: string | undefined;
5364
+ required?: boolean | undefined;
5365
+ defaultValue?: number | undefined;
5366
+ labels?: Record<string, string> | undefined;
5367
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5368
+ id: z.ZodOptional<z.ZodString>;
5369
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5370
+ required: z.ZodOptional<z.ZodBoolean>;
5371
+ }, {
5372
+ type: z.ZodLiteral<DocumentElementType.TEXT_INPUT>;
5373
+ label: z.ZodString;
5374
+ placeholder: z.ZodOptional<z.ZodString>;
5375
+ multiline: z.ZodOptional<z.ZodBoolean>;
5376
+ defaultValue: z.ZodOptional<z.ZodString>;
5377
+ }>, "strip", z.ZodTypeAny, {
5378
+ type: DocumentElementType.TEXT_INPUT;
5379
+ label: string;
5380
+ id?: string | undefined;
5381
+ required?: boolean | undefined;
5382
+ defaultValue?: string | undefined;
5383
+ placeholder?: string | undefined;
5384
+ multiline?: boolean | undefined;
5385
+ }, {
5386
+ type: DocumentElementType.TEXT_INPUT;
5387
+ label: string;
5388
+ id?: string | undefined;
5389
+ required?: boolean | undefined;
5390
+ defaultValue?: string | undefined;
5391
+ placeholder?: string | undefined;
5392
+ multiline?: boolean | undefined;
5393
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5394
+ id: z.ZodOptional<z.ZodString>;
5395
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5396
+ required: z.ZodOptional<z.ZodBoolean>;
5397
+ }, {
5398
+ type: z.ZodLiteral<DocumentElementType.DATE_PICKER>;
5399
+ label: z.ZodString;
5400
+ defaultValue: z.ZodOptional<z.ZodString>;
5401
+ }>, "strip", z.ZodTypeAny, {
5402
+ type: DocumentElementType.DATE_PICKER;
5403
+ label: string;
5404
+ id?: string | undefined;
5405
+ required?: boolean | undefined;
5406
+ defaultValue?: string | undefined;
5407
+ }, {
5408
+ type: DocumentElementType.DATE_PICKER;
5409
+ label: string;
5410
+ id?: string | undefined;
5411
+ required?: boolean | undefined;
5412
+ defaultValue?: string | undefined;
5413
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5414
+ id: z.ZodOptional<z.ZodString>;
5415
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5416
+ required: z.ZodOptional<z.ZodBoolean>;
5417
+ }, {
5418
+ type: z.ZodLiteral<DocumentElementType.SIGNATURE>;
5419
+ label: z.ZodString;
5420
+ }>, "strip", z.ZodTypeAny, {
5421
+ type: DocumentElementType.SIGNATURE;
5422
+ label: string;
5423
+ id?: string | undefined;
5424
+ required?: boolean | undefined;
5425
+ }, {
5426
+ type: DocumentElementType.SIGNATURE;
5427
+ label: string;
5428
+ id?: string | undefined;
5429
+ required?: boolean | undefined;
5430
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5431
+ id: z.ZodOptional<z.ZodString>;
5432
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5433
+ required: z.ZodOptional<z.ZodBoolean>;
5434
+ }, {
5435
+ type: z.ZodLiteral<DocumentElementType.DITIGAL_SIGNATURE>;
5436
+ label: z.ZodString;
5437
+ }>, "strip", z.ZodTypeAny, {
5438
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5439
+ label: string;
5440
+ id?: string | undefined;
5441
+ required?: boolean | undefined;
5442
+ }, {
5443
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5444
+ label: string;
5445
+ id?: string | undefined;
5446
+ required?: boolean | undefined;
5447
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5448
+ id: z.ZodOptional<z.ZodString>;
5449
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
5450
+ required: z.ZodOptional<z.ZodBoolean>;
5451
+ }, {
5452
+ type: z.ZodLiteral<DocumentElementType.FILE_UPLOAD>;
5453
+ label: z.ZodString;
5454
+ allowedFileTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5455
+ maxFileSizeMB: z.ZodOptional<z.ZodNumber>;
5456
+ }>, "strip", z.ZodTypeAny, {
5457
+ type: DocumentElementType.FILE_UPLOAD;
5458
+ label: string;
5459
+ id?: string | undefined;
5460
+ required?: boolean | undefined;
5461
+ allowedFileTypes?: string[] | undefined;
5462
+ maxFileSizeMB?: number | undefined;
5463
+ }, {
5464
+ type: DocumentElementType.FILE_UPLOAD;
5465
+ label: string;
5466
+ id?: string | undefined;
5467
+ required?: boolean | undefined;
5468
+ allowedFileTypes?: string[] | undefined;
5469
+ maxFileSizeMB?: number | undefined;
5470
+ }>]>, "many">;
5471
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5472
+ version: z.ZodNumber;
5473
+ isActive: z.ZodBoolean;
5474
+ isUserForm: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
5475
+ isRequired: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
5476
+ sortingOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5477
+ }, "strip", z.ZodTypeAny, {
5478
+ id: string;
5479
+ createdAt: number;
5480
+ updatedAt: number;
5481
+ isActive: boolean;
5482
+ title: string;
5483
+ elements: ({
5484
+ type: DocumentElementType.HEADING;
5485
+ text: string;
5486
+ level: HeadingLevel;
5487
+ id?: string | undefined;
5488
+ required?: boolean | undefined;
5489
+ } | {
5490
+ type: DocumentElementType.PARAGRAPH;
5491
+ text: string;
5492
+ id?: string | undefined;
5493
+ required?: boolean | undefined;
5494
+ } | {
5495
+ type: DocumentElementType.LIST;
5496
+ items: string[];
5497
+ listType: ListType;
5498
+ id?: string | undefined;
5499
+ required?: boolean | undefined;
5500
+ } | {
5501
+ type: DocumentElementType.DYNAMIC_TEXT;
5502
+ text: string;
5503
+ id?: string | undefined;
5504
+ required?: boolean | undefined;
5505
+ } | {
5506
+ type: DocumentElementType.BINARY_CHOICE;
5507
+ question: string;
5508
+ id?: string | undefined;
5509
+ required?: boolean | undefined;
5510
+ defaultValue?: boolean | undefined;
5511
+ } | {
5512
+ type: DocumentElementType.MULTIPLE_CHOICE;
5513
+ question: string;
5514
+ options: string[];
5515
+ id?: string | undefined;
5516
+ required?: boolean | undefined;
5517
+ defaultValues?: string[] | undefined;
5518
+ } | {
5519
+ type: DocumentElementType.SINGLE_CHOICE;
5520
+ question: string;
5521
+ options: string[];
5522
+ id?: string | undefined;
5523
+ required?: boolean | undefined;
5524
+ defaultValue?: string | undefined;
5525
+ } | {
5526
+ type: DocumentElementType.RATING_SCALE;
5527
+ question: string;
5528
+ min: number;
5529
+ max: number;
5530
+ id?: string | undefined;
5531
+ required?: boolean | undefined;
5532
+ defaultValue?: number | undefined;
5533
+ labels?: Record<string, string> | undefined;
5534
+ } | {
5535
+ type: DocumentElementType.TEXT_INPUT;
5536
+ label: string;
5537
+ id?: string | undefined;
5538
+ required?: boolean | undefined;
5539
+ defaultValue?: string | undefined;
5540
+ placeholder?: string | undefined;
5541
+ multiline?: boolean | undefined;
5542
+ } | {
5543
+ type: DocumentElementType.DATE_PICKER;
5544
+ label: string;
5545
+ id?: string | undefined;
5546
+ required?: boolean | undefined;
5547
+ defaultValue?: string | undefined;
5548
+ } | {
5549
+ type: DocumentElementType.SIGNATURE;
5550
+ label: string;
5551
+ id?: string | undefined;
5552
+ required?: boolean | undefined;
5553
+ } | {
5554
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5555
+ label: string;
5556
+ id?: string | undefined;
5557
+ required?: boolean | undefined;
5558
+ } | {
5559
+ type: DocumentElementType.FILE_UPLOAD;
5560
+ label: string;
5561
+ id?: string | undefined;
5562
+ required?: boolean | undefined;
5563
+ allowedFileTypes?: string[] | undefined;
5564
+ maxFileSizeMB?: number | undefined;
5565
+ })[];
5566
+ isUserForm: boolean;
5567
+ isRequired: boolean;
5568
+ sortingOrder: number;
5569
+ createdBy: string;
5570
+ version: number;
5571
+ description?: string | undefined;
5572
+ tags?: string[] | undefined;
5573
+ }, {
5574
+ id: string;
5575
+ createdAt: number;
5576
+ updatedAt: number;
5577
+ isActive: boolean;
5578
+ title: string;
5579
+ elements: ({
5580
+ type: DocumentElementType.HEADING;
5581
+ text: string;
5582
+ level: HeadingLevel;
5583
+ id?: string | undefined;
5584
+ required?: boolean | undefined;
5585
+ } | {
5586
+ type: DocumentElementType.PARAGRAPH;
5587
+ text: string;
5588
+ id?: string | undefined;
5589
+ required?: boolean | undefined;
5590
+ } | {
5591
+ type: DocumentElementType.LIST;
5592
+ items: string[];
5593
+ listType: ListType;
5594
+ id?: string | undefined;
5595
+ required?: boolean | undefined;
5596
+ } | {
5597
+ type: DocumentElementType.DYNAMIC_TEXT;
5598
+ text: string;
5599
+ id?: string | undefined;
5600
+ required?: boolean | undefined;
5601
+ } | {
5602
+ type: DocumentElementType.BINARY_CHOICE;
5603
+ question: string;
5604
+ id?: string | undefined;
5605
+ required?: boolean | undefined;
5606
+ defaultValue?: boolean | undefined;
5607
+ } | {
5608
+ type: DocumentElementType.MULTIPLE_CHOICE;
5609
+ question: string;
5610
+ options: string[];
5611
+ id?: string | undefined;
5612
+ required?: boolean | undefined;
5613
+ defaultValues?: string[] | undefined;
5614
+ } | {
5615
+ type: DocumentElementType.SINGLE_CHOICE;
5616
+ question: string;
5617
+ options: string[];
5618
+ id?: string | undefined;
5619
+ required?: boolean | undefined;
5620
+ defaultValue?: string | undefined;
5621
+ } | {
5622
+ type: DocumentElementType.RATING_SCALE;
5623
+ question: string;
5624
+ min: number;
5625
+ max: number;
5626
+ id?: string | undefined;
5627
+ required?: boolean | undefined;
5628
+ defaultValue?: number | undefined;
5629
+ labels?: Record<string, string> | undefined;
5630
+ } | {
5631
+ type: DocumentElementType.TEXT_INPUT;
5632
+ label: string;
5633
+ id?: string | undefined;
5634
+ required?: boolean | undefined;
5635
+ defaultValue?: string | undefined;
5636
+ placeholder?: string | undefined;
5637
+ multiline?: boolean | undefined;
5638
+ } | {
5639
+ type: DocumentElementType.DATE_PICKER;
5640
+ label: string;
5641
+ id?: string | undefined;
5642
+ required?: boolean | undefined;
5643
+ defaultValue?: string | undefined;
5644
+ } | {
5645
+ type: DocumentElementType.SIGNATURE;
5646
+ label: string;
5647
+ id?: string | undefined;
5648
+ required?: boolean | undefined;
5649
+ } | {
5650
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5651
+ label: string;
5652
+ id?: string | undefined;
5653
+ required?: boolean | undefined;
5654
+ } | {
5655
+ type: DocumentElementType.FILE_UPLOAD;
5656
+ label: string;
5657
+ id?: string | undefined;
5658
+ required?: boolean | undefined;
5659
+ allowedFileTypes?: string[] | undefined;
5660
+ maxFileSizeMB?: number | undefined;
5661
+ })[];
5662
+ createdBy: string;
5663
+ version: number;
5664
+ description?: string | undefined;
5665
+ tags?: string[] | undefined;
5666
+ isUserForm?: boolean | undefined;
5667
+ isRequired?: boolean | undefined;
5668
+ sortingOrder?: number | undefined;
5669
+ }>, "many">;
5670
+ benefits: z.ZodArray<z.ZodNativeEnum<typeof TreatmentBenefit>, "many">;
5671
+ certificationRequirement: z.ZodObject<{
5672
+ minimumLevel: z.ZodNativeEnum<typeof CertificationLevel>;
5673
+ requiredSpecialties: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof CertificationSpecialty>, "many">>;
5674
+ }, "strip", z.ZodTypeAny, {
5675
+ minimumLevel: CertificationLevel;
5676
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
5677
+ }, {
5678
+ minimumLevel: CertificationLevel;
5679
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
5680
+ }>;
5681
+ isActive: z.ZodDefault<z.ZodBoolean>;
5682
+ }, "strip", z.ZodTypeAny, {
5683
+ name: string;
5684
+ isActive: boolean;
5685
+ contraindications: Contraindication[];
5686
+ family: ProcedureFamily;
5687
+ categoryId: string;
5688
+ subcategoryId: string;
5689
+ requirements: {
5690
+ pre: {
5691
+ type: RequirementType;
5692
+ name: string;
5693
+ isActive: boolean;
5694
+ description: string;
5695
+ timeframe: {
5696
+ duration: number;
5697
+ unit: TimeUnit;
5698
+ notifyAt: number[];
5699
+ };
5700
+ importance: "low" | "medium" | "high";
5701
+ }[];
5702
+ post: {
5703
+ type: RequirementType;
5704
+ name: string;
5705
+ isActive: boolean;
5706
+ description: string;
5707
+ timeframe: {
5708
+ duration: number;
5709
+ unit: TimeUnit;
5710
+ notifyAt: number[];
5711
+ };
5712
+ importance: "low" | "medium" | "high";
5713
+ }[];
5714
+ };
5715
+ blockingConditions: BlockingCondition[];
5716
+ benefits: TreatmentBenefit[];
5717
+ certificationRequirement: {
5718
+ minimumLevel: CertificationLevel;
5719
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
5720
+ };
5721
+ documentationTemplates: {
5722
+ id: string;
5723
+ createdAt: number;
5724
+ updatedAt: number;
5725
+ isActive: boolean;
5726
+ title: string;
5727
+ elements: ({
5728
+ type: DocumentElementType.HEADING;
5729
+ text: string;
5730
+ level: HeadingLevel;
5731
+ id?: string | undefined;
5732
+ required?: boolean | undefined;
5733
+ } | {
5734
+ type: DocumentElementType.PARAGRAPH;
5735
+ text: string;
5736
+ id?: string | undefined;
5737
+ required?: boolean | undefined;
5738
+ } | {
5739
+ type: DocumentElementType.LIST;
5740
+ items: string[];
5741
+ listType: ListType;
5742
+ id?: string | undefined;
5743
+ required?: boolean | undefined;
5744
+ } | {
5745
+ type: DocumentElementType.DYNAMIC_TEXT;
5746
+ text: string;
5747
+ id?: string | undefined;
5748
+ required?: boolean | undefined;
5749
+ } | {
5750
+ type: DocumentElementType.BINARY_CHOICE;
5751
+ question: string;
5752
+ id?: string | undefined;
5753
+ required?: boolean | undefined;
5754
+ defaultValue?: boolean | undefined;
5755
+ } | {
5756
+ type: DocumentElementType.MULTIPLE_CHOICE;
5757
+ question: string;
5758
+ options: string[];
5759
+ id?: string | undefined;
5760
+ required?: boolean | undefined;
5761
+ defaultValues?: string[] | undefined;
5762
+ } | {
5763
+ type: DocumentElementType.SINGLE_CHOICE;
5764
+ question: string;
5765
+ options: string[];
5766
+ id?: string | undefined;
5767
+ required?: boolean | undefined;
5768
+ defaultValue?: string | undefined;
5769
+ } | {
5770
+ type: DocumentElementType.RATING_SCALE;
5771
+ question: string;
5772
+ min: number;
5773
+ max: number;
5774
+ id?: string | undefined;
5775
+ required?: boolean | undefined;
5776
+ defaultValue?: number | undefined;
5777
+ labels?: Record<string, string> | undefined;
5778
+ } | {
5779
+ type: DocumentElementType.TEXT_INPUT;
5780
+ label: string;
5781
+ id?: string | undefined;
5782
+ required?: boolean | undefined;
5783
+ defaultValue?: string | undefined;
5784
+ placeholder?: string | undefined;
5785
+ multiline?: boolean | undefined;
5786
+ } | {
5787
+ type: DocumentElementType.DATE_PICKER;
5788
+ label: string;
5789
+ id?: string | undefined;
5790
+ required?: boolean | undefined;
5791
+ defaultValue?: string | undefined;
5792
+ } | {
5793
+ type: DocumentElementType.SIGNATURE;
5794
+ label: string;
5795
+ id?: string | undefined;
5796
+ required?: boolean | undefined;
5797
+ } | {
5798
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5799
+ label: string;
5800
+ id?: string | undefined;
5801
+ required?: boolean | undefined;
5802
+ } | {
5803
+ type: DocumentElementType.FILE_UPLOAD;
5804
+ label: string;
5805
+ id?: string | undefined;
5806
+ required?: boolean | undefined;
5807
+ allowedFileTypes?: string[] | undefined;
5808
+ maxFileSizeMB?: number | undefined;
5809
+ })[];
5810
+ isUserForm: boolean;
5811
+ isRequired: boolean;
5812
+ sortingOrder: number;
5813
+ createdBy: string;
5814
+ version: number;
5815
+ description?: string | undefined;
5816
+ tags?: string[] | undefined;
5817
+ }[];
5818
+ description?: string | undefined;
5819
+ technicalDetails?: string | undefined;
5820
+ }, {
5821
+ name: string;
5822
+ contraindications: Contraindication[];
5823
+ family: ProcedureFamily;
5824
+ categoryId: string;
5825
+ subcategoryId: string;
5826
+ blockingConditions: BlockingCondition[];
5827
+ benefits: TreatmentBenefit[];
5828
+ certificationRequirement: {
5829
+ minimumLevel: CertificationLevel;
5830
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
5831
+ };
5832
+ documentationTemplates: {
5833
+ id: string;
5834
+ createdAt: number;
5835
+ updatedAt: number;
5836
+ isActive: boolean;
5837
+ title: string;
5838
+ elements: ({
5839
+ type: DocumentElementType.HEADING;
5840
+ text: string;
5841
+ level: HeadingLevel;
5842
+ id?: string | undefined;
5843
+ required?: boolean | undefined;
5844
+ } | {
5845
+ type: DocumentElementType.PARAGRAPH;
5846
+ text: string;
5847
+ id?: string | undefined;
5848
+ required?: boolean | undefined;
5849
+ } | {
5850
+ type: DocumentElementType.LIST;
5851
+ items: string[];
5852
+ listType: ListType;
5853
+ id?: string | undefined;
5854
+ required?: boolean | undefined;
5855
+ } | {
5856
+ type: DocumentElementType.DYNAMIC_TEXT;
5857
+ text: string;
5858
+ id?: string | undefined;
5859
+ required?: boolean | undefined;
5860
+ } | {
5861
+ type: DocumentElementType.BINARY_CHOICE;
5862
+ question: string;
5863
+ id?: string | undefined;
5864
+ required?: boolean | undefined;
5865
+ defaultValue?: boolean | undefined;
5866
+ } | {
5867
+ type: DocumentElementType.MULTIPLE_CHOICE;
5868
+ question: string;
5869
+ options: string[];
5870
+ id?: string | undefined;
5871
+ required?: boolean | undefined;
5872
+ defaultValues?: string[] | undefined;
5873
+ } | {
5874
+ type: DocumentElementType.SINGLE_CHOICE;
5875
+ question: string;
5876
+ options: string[];
5877
+ id?: string | undefined;
5878
+ required?: boolean | undefined;
5879
+ defaultValue?: string | undefined;
5880
+ } | {
5881
+ type: DocumentElementType.RATING_SCALE;
5882
+ question: string;
5883
+ min: number;
5884
+ max: number;
5885
+ id?: string | undefined;
5886
+ required?: boolean | undefined;
5887
+ defaultValue?: number | undefined;
5888
+ labels?: Record<string, string> | undefined;
5889
+ } | {
5890
+ type: DocumentElementType.TEXT_INPUT;
5891
+ label: string;
5892
+ id?: string | undefined;
5893
+ required?: boolean | undefined;
5894
+ defaultValue?: string | undefined;
5895
+ placeholder?: string | undefined;
5896
+ multiline?: boolean | undefined;
5897
+ } | {
5898
+ type: DocumentElementType.DATE_PICKER;
5899
+ label: string;
5900
+ id?: string | undefined;
5901
+ required?: boolean | undefined;
5902
+ defaultValue?: string | undefined;
5903
+ } | {
5904
+ type: DocumentElementType.SIGNATURE;
5905
+ label: string;
5906
+ id?: string | undefined;
5907
+ required?: boolean | undefined;
5908
+ } | {
5909
+ type: DocumentElementType.DITIGAL_SIGNATURE;
5910
+ label: string;
5911
+ id?: string | undefined;
5912
+ required?: boolean | undefined;
5913
+ } | {
5914
+ type: DocumentElementType.FILE_UPLOAD;
5915
+ label: string;
5916
+ id?: string | undefined;
5917
+ required?: boolean | undefined;
5918
+ allowedFileTypes?: string[] | undefined;
5919
+ maxFileSizeMB?: number | undefined;
5920
+ })[];
5921
+ createdBy: string;
5922
+ version: number;
5923
+ description?: string | undefined;
5924
+ tags?: string[] | undefined;
5925
+ isUserForm?: boolean | undefined;
5926
+ isRequired?: boolean | undefined;
5927
+ sortingOrder?: number | undefined;
5928
+ }[];
5929
+ isActive?: boolean | undefined;
5930
+ description?: string | undefined;
5931
+ technicalDetails?: string | undefined;
5932
+ requirements?: {
5933
+ pre: {
5934
+ type: RequirementType;
5935
+ name: string;
5936
+ description: string;
5937
+ timeframe: {
5938
+ duration: number;
5939
+ unit: TimeUnit;
5940
+ notifyAt: number[];
5941
+ };
5942
+ importance: "low" | "medium" | "high";
5943
+ isActive?: boolean | undefined;
5944
+ }[];
5945
+ post: {
5946
+ type: RequirementType;
5947
+ name: string;
5948
+ description: string;
5949
+ timeframe: {
5950
+ duration: number;
5951
+ unit: TimeUnit;
5952
+ notifyAt: number[];
5953
+ };
5954
+ importance: "low" | "medium" | "high";
5955
+ isActive?: boolean | undefined;
5956
+ }[];
5957
+ } | undefined;
5958
+ }>;
5959
+ /**
5960
+ * Category validation schema
5961
+ */
5962
+ declare const categorySchema: z.ZodObject<{
5963
+ name: z.ZodString;
5964
+ description: z.ZodOptional<z.ZodString>;
5965
+ family: z.ZodNativeEnum<typeof ProcedureFamily>;
5966
+ isActive: z.ZodDefault<z.ZodBoolean>;
5967
+ }, "strip", z.ZodTypeAny, {
5968
+ name: string;
5969
+ isActive: boolean;
5970
+ family: ProcedureFamily;
5971
+ description?: string | undefined;
5972
+ }, {
5973
+ name: string;
5974
+ family: ProcedureFamily;
5975
+ isActive?: boolean | undefined;
5976
+ description?: string | undefined;
5977
+ }>;
5978
+ /**
5979
+ * Subcategory validation schema
5980
+ */
5981
+ declare const subcategorySchema: z.ZodObject<{
5982
+ name: z.ZodString;
5983
+ description: z.ZodOptional<z.ZodString>;
5984
+ categoryId: z.ZodString;
5985
+ isActive: z.ZodDefault<z.ZodBoolean>;
5986
+ }, "strip", z.ZodTypeAny, {
5987
+ name: string;
5988
+ isActive: boolean;
5989
+ categoryId: string;
5990
+ description?: string | undefined;
5991
+ }, {
5992
+ name: string;
5993
+ categoryId: string;
5994
+ isActive?: boolean | undefined;
5995
+ description?: string | undefined;
5996
+ }>;
5997
+ /**
5998
+ * Partial schemas for updates
5999
+ */
6000
+ declare const categoryUpdateSchema: z.ZodObject<{
6001
+ name: z.ZodOptional<z.ZodString>;
6002
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
6003
+ family: z.ZodOptional<z.ZodNativeEnum<typeof ProcedureFamily>>;
6004
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
6005
+ }, "strip", z.ZodTypeAny, {
6006
+ name?: string | undefined;
6007
+ isActive?: boolean | undefined;
6008
+ description?: string | undefined;
6009
+ family?: ProcedureFamily | undefined;
6010
+ }, {
6011
+ name?: string | undefined;
6012
+ isActive?: boolean | undefined;
6013
+ description?: string | undefined;
6014
+ family?: ProcedureFamily | undefined;
6015
+ }>;
6016
+ declare const subcategoryUpdateSchema: z.ZodObject<{
6017
+ name: z.ZodOptional<z.ZodString>;
6018
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
6019
+ categoryId: z.ZodOptional<z.ZodString>;
6020
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
6021
+ }, "strip", z.ZodTypeAny, {
6022
+ name?: string | undefined;
6023
+ isActive?: boolean | undefined;
6024
+ description?: string | undefined;
6025
+ categoryId?: string | undefined;
6026
+ }, {
6027
+ name?: string | undefined;
6028
+ isActive?: boolean | undefined;
6029
+ description?: string | undefined;
6030
+ categoryId?: string | undefined;
6031
+ }>;
6032
+ declare const technologyUpdateSchema: z.ZodObject<{
6033
+ name: z.ZodOptional<z.ZodString>;
6034
+ description: z.ZodOptional<z.ZodOptional<z.ZodString>>;
6035
+ technicalDetails: z.ZodOptional<z.ZodOptional<z.ZodString>>;
6036
+ family: z.ZodOptional<z.ZodNativeEnum<typeof ProcedureFamily>>;
6037
+ categoryId: z.ZodOptional<z.ZodString>;
6038
+ subcategoryId: z.ZodOptional<z.ZodString>;
6039
+ requirements: z.ZodOptional<z.ZodDefault<z.ZodObject<{
6040
+ pre: z.ZodArray<z.ZodObject<{
6041
+ name: z.ZodString;
6042
+ description: z.ZodString;
6043
+ type: z.ZodNativeEnum<typeof RequirementType>;
6044
+ timeframe: z.ZodObject<{
6045
+ duration: z.ZodNumber;
6046
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
6047
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
6048
+ }, "strip", z.ZodTypeAny, {
6049
+ duration: number;
6050
+ unit: TimeUnit;
6051
+ notifyAt: number[];
6052
+ }, {
6053
+ duration: number;
6054
+ unit: TimeUnit;
6055
+ notifyAt: number[];
6056
+ }>;
6057
+ importance: z.ZodEnum<["low", "medium", "high"]>;
6058
+ isActive: z.ZodDefault<z.ZodBoolean>;
6059
+ }, "strip", z.ZodTypeAny, {
6060
+ type: RequirementType;
6061
+ name: string;
6062
+ isActive: boolean;
6063
+ description: string;
6064
+ timeframe: {
6065
+ duration: number;
6066
+ unit: TimeUnit;
6067
+ notifyAt: number[];
6068
+ };
6069
+ importance: "low" | "medium" | "high";
6070
+ }, {
6071
+ type: RequirementType;
6072
+ name: string;
6073
+ description: string;
6074
+ timeframe: {
6075
+ duration: number;
6076
+ unit: TimeUnit;
6077
+ notifyAt: number[];
6078
+ };
6079
+ importance: "low" | "medium" | "high";
6080
+ isActive?: boolean | undefined;
6081
+ }>, "many">;
6082
+ post: z.ZodArray<z.ZodObject<{
6083
+ name: z.ZodString;
6084
+ description: z.ZodString;
6085
+ type: z.ZodNativeEnum<typeof RequirementType>;
6086
+ timeframe: z.ZodObject<{
6087
+ duration: z.ZodNumber;
6088
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
6089
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
6090
+ }, "strip", z.ZodTypeAny, {
6091
+ duration: number;
6092
+ unit: TimeUnit;
6093
+ notifyAt: number[];
6094
+ }, {
6095
+ duration: number;
6096
+ unit: TimeUnit;
6097
+ notifyAt: number[];
6098
+ }>;
6099
+ importance: z.ZodEnum<["low", "medium", "high"]>;
6100
+ isActive: z.ZodDefault<z.ZodBoolean>;
6101
+ }, "strip", z.ZodTypeAny, {
6102
+ type: RequirementType;
6103
+ name: string;
6104
+ isActive: boolean;
6105
+ description: string;
6106
+ timeframe: {
6107
+ duration: number;
6108
+ unit: TimeUnit;
6109
+ notifyAt: number[];
6110
+ };
6111
+ importance: "low" | "medium" | "high";
6112
+ }, {
6113
+ type: RequirementType;
6114
+ name: string;
6115
+ description: string;
6116
+ timeframe: {
6117
+ duration: number;
6118
+ unit: TimeUnit;
6119
+ notifyAt: number[];
6120
+ };
6121
+ importance: "low" | "medium" | "high";
6122
+ isActive?: boolean | undefined;
6123
+ }>, "many">;
6124
+ }, "strip", z.ZodTypeAny, {
6125
+ pre: {
6126
+ type: RequirementType;
6127
+ name: string;
6128
+ isActive: boolean;
6129
+ description: string;
6130
+ timeframe: {
6131
+ duration: number;
6132
+ unit: TimeUnit;
6133
+ notifyAt: number[];
6134
+ };
6135
+ importance: "low" | "medium" | "high";
6136
+ }[];
6137
+ post: {
6138
+ type: RequirementType;
6139
+ name: string;
6140
+ isActive: boolean;
6141
+ description: string;
6142
+ timeframe: {
6143
+ duration: number;
6144
+ unit: TimeUnit;
6145
+ notifyAt: number[];
6146
+ };
6147
+ importance: "low" | "medium" | "high";
6148
+ }[];
6149
+ }, {
6150
+ pre: {
6151
+ type: RequirementType;
6152
+ name: string;
6153
+ description: string;
6154
+ timeframe: {
6155
+ duration: number;
6156
+ unit: TimeUnit;
6157
+ notifyAt: number[];
6158
+ };
6159
+ importance: "low" | "medium" | "high";
6160
+ isActive?: boolean | undefined;
6161
+ }[];
6162
+ post: {
6163
+ type: RequirementType;
6164
+ name: string;
6165
+ description: string;
6166
+ timeframe: {
6167
+ duration: number;
6168
+ unit: TimeUnit;
6169
+ notifyAt: number[];
6170
+ };
6171
+ importance: "low" | "medium" | "high";
6172
+ isActive?: boolean | undefined;
6173
+ }[];
6174
+ }>>>;
6175
+ blockingConditions: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof BlockingCondition>, "many">>;
6176
+ contraindications: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof Contraindication>, "many">>;
6177
+ documentationTemplates: z.ZodOptional<z.ZodArray<z.ZodObject<{
6178
+ id: z.ZodString;
6179
+ title: z.ZodString;
6180
+ description: z.ZodOptional<z.ZodString>;
6181
+ createdAt: z.ZodNumber;
6182
+ updatedAt: z.ZodNumber;
6183
+ createdBy: z.ZodString;
6184
+ elements: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<{
6185
+ id: z.ZodOptional<z.ZodString>;
6186
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6187
+ required: z.ZodOptional<z.ZodBoolean>;
6188
+ }, {
6189
+ type: z.ZodLiteral<DocumentElementType.HEADING>;
6190
+ text: z.ZodString;
6191
+ level: z.ZodNativeEnum<typeof HeadingLevel>;
6192
+ }>, "strip", z.ZodTypeAny, {
6193
+ type: DocumentElementType.HEADING;
6194
+ text: string;
6195
+ level: HeadingLevel;
6196
+ id?: string | undefined;
6197
+ required?: boolean | undefined;
6198
+ }, {
6199
+ type: DocumentElementType.HEADING;
6200
+ text: string;
6201
+ level: HeadingLevel;
6202
+ id?: string | undefined;
6203
+ required?: boolean | undefined;
6204
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6205
+ id: z.ZodOptional<z.ZodString>;
6206
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6207
+ required: z.ZodOptional<z.ZodBoolean>;
6208
+ }, {
6209
+ type: z.ZodLiteral<DocumentElementType.PARAGRAPH>;
6210
+ text: z.ZodString;
6211
+ }>, "strip", z.ZodTypeAny, {
6212
+ type: DocumentElementType.PARAGRAPH;
6213
+ text: string;
6214
+ id?: string | undefined;
6215
+ required?: boolean | undefined;
6216
+ }, {
6217
+ type: DocumentElementType.PARAGRAPH;
6218
+ text: string;
6219
+ id?: string | undefined;
6220
+ required?: boolean | undefined;
6221
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6222
+ id: z.ZodOptional<z.ZodString>;
6223
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6224
+ required: z.ZodOptional<z.ZodBoolean>;
6225
+ }, {
6226
+ type: z.ZodLiteral<DocumentElementType.LIST>;
6227
+ items: z.ZodArray<z.ZodString, "many">;
6228
+ listType: z.ZodNativeEnum<typeof ListType>;
6229
+ }>, "strip", z.ZodTypeAny, {
6230
+ type: DocumentElementType.LIST;
6231
+ items: string[];
6232
+ listType: ListType;
6233
+ id?: string | undefined;
6234
+ required?: boolean | undefined;
6235
+ }, {
6236
+ type: DocumentElementType.LIST;
6237
+ items: string[];
6238
+ listType: ListType;
6239
+ id?: string | undefined;
6240
+ required?: boolean | undefined;
6241
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6242
+ id: z.ZodOptional<z.ZodString>;
6243
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6244
+ required: z.ZodOptional<z.ZodBoolean>;
6245
+ }, {
6246
+ type: z.ZodLiteral<DocumentElementType.DYNAMIC_TEXT>;
6247
+ text: z.ZodString;
6248
+ }>, "strip", z.ZodTypeAny, {
6249
+ type: DocumentElementType.DYNAMIC_TEXT;
6250
+ text: string;
6251
+ id?: string | undefined;
6252
+ required?: boolean | undefined;
6253
+ }, {
6254
+ type: DocumentElementType.DYNAMIC_TEXT;
6255
+ text: string;
6256
+ id?: string | undefined;
6257
+ required?: boolean | undefined;
6258
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6259
+ id: z.ZodOptional<z.ZodString>;
6260
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6261
+ required: z.ZodOptional<z.ZodBoolean>;
6262
+ }, {
6263
+ type: z.ZodLiteral<DocumentElementType.BINARY_CHOICE>;
6264
+ question: z.ZodString;
6265
+ defaultValue: z.ZodOptional<z.ZodBoolean>;
6266
+ }>, "strip", z.ZodTypeAny, {
6267
+ type: DocumentElementType.BINARY_CHOICE;
6268
+ question: string;
6269
+ id?: string | undefined;
6270
+ required?: boolean | undefined;
6271
+ defaultValue?: boolean | undefined;
6272
+ }, {
6273
+ type: DocumentElementType.BINARY_CHOICE;
6274
+ question: string;
6275
+ id?: string | undefined;
6276
+ required?: boolean | undefined;
6277
+ defaultValue?: boolean | undefined;
6278
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6279
+ id: z.ZodOptional<z.ZodString>;
6280
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6281
+ required: z.ZodOptional<z.ZodBoolean>;
6282
+ }, {
6283
+ type: z.ZodLiteral<DocumentElementType.MULTIPLE_CHOICE>;
6284
+ question: z.ZodString;
6285
+ options: z.ZodArray<z.ZodString, "many">;
6286
+ defaultValues: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6287
+ }>, "strip", z.ZodTypeAny, {
6288
+ type: DocumentElementType.MULTIPLE_CHOICE;
6289
+ question: string;
6290
+ options: string[];
6291
+ id?: string | undefined;
6292
+ required?: boolean | undefined;
6293
+ defaultValues?: string[] | undefined;
6294
+ }, {
6295
+ type: DocumentElementType.MULTIPLE_CHOICE;
6296
+ question: string;
6297
+ options: string[];
6298
+ id?: string | undefined;
6299
+ required?: boolean | undefined;
6300
+ defaultValues?: string[] | undefined;
6301
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6302
+ id: z.ZodOptional<z.ZodString>;
6303
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6304
+ required: z.ZodOptional<z.ZodBoolean>;
6305
+ }, {
6306
+ type: z.ZodLiteral<DocumentElementType.SINGLE_CHOICE>;
6307
+ question: z.ZodString;
6308
+ options: z.ZodArray<z.ZodString, "many">;
6309
+ defaultValue: z.ZodOptional<z.ZodString>;
6310
+ }>, "strip", z.ZodTypeAny, {
6311
+ type: DocumentElementType.SINGLE_CHOICE;
6312
+ question: string;
6313
+ options: string[];
6314
+ id?: string | undefined;
6315
+ required?: boolean | undefined;
6316
+ defaultValue?: string | undefined;
6317
+ }, {
6318
+ type: DocumentElementType.SINGLE_CHOICE;
6319
+ question: string;
6320
+ options: string[];
6321
+ id?: string | undefined;
6322
+ required?: boolean | undefined;
6323
+ defaultValue?: string | undefined;
6324
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6325
+ id: z.ZodOptional<z.ZodString>;
6326
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6327
+ required: z.ZodOptional<z.ZodBoolean>;
6328
+ }, {
6329
+ type: z.ZodLiteral<DocumentElementType.RATING_SCALE>;
6330
+ question: z.ZodString;
6331
+ min: z.ZodNumber;
6332
+ max: z.ZodNumber;
6333
+ labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6334
+ defaultValue: z.ZodOptional<z.ZodNumber>;
6335
+ }>, "strip", z.ZodTypeAny, {
6336
+ type: DocumentElementType.RATING_SCALE;
6337
+ question: string;
6338
+ min: number;
6339
+ max: number;
6340
+ id?: string | undefined;
6341
+ required?: boolean | undefined;
6342
+ defaultValue?: number | undefined;
6343
+ labels?: Record<string, string> | undefined;
6344
+ }, {
6345
+ type: DocumentElementType.RATING_SCALE;
6346
+ question: string;
6347
+ min: number;
6348
+ max: number;
6349
+ id?: string | undefined;
6350
+ required?: boolean | undefined;
6351
+ defaultValue?: number | undefined;
6352
+ labels?: Record<string, string> | undefined;
6353
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6354
+ id: z.ZodOptional<z.ZodString>;
6355
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6356
+ required: z.ZodOptional<z.ZodBoolean>;
6357
+ }, {
6358
+ type: z.ZodLiteral<DocumentElementType.TEXT_INPUT>;
6359
+ label: z.ZodString;
6360
+ placeholder: z.ZodOptional<z.ZodString>;
6361
+ multiline: z.ZodOptional<z.ZodBoolean>;
6362
+ defaultValue: z.ZodOptional<z.ZodString>;
6363
+ }>, "strip", z.ZodTypeAny, {
6364
+ type: DocumentElementType.TEXT_INPUT;
6365
+ label: string;
6366
+ id?: string | undefined;
6367
+ required?: boolean | undefined;
6368
+ defaultValue?: string | undefined;
6369
+ placeholder?: string | undefined;
6370
+ multiline?: boolean | undefined;
6371
+ }, {
6372
+ type: DocumentElementType.TEXT_INPUT;
6373
+ label: string;
6374
+ id?: string | undefined;
6375
+ required?: boolean | undefined;
6376
+ defaultValue?: string | undefined;
6377
+ placeholder?: string | undefined;
6378
+ multiline?: boolean | undefined;
6379
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6380
+ id: z.ZodOptional<z.ZodString>;
6381
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6382
+ required: z.ZodOptional<z.ZodBoolean>;
6383
+ }, {
6384
+ type: z.ZodLiteral<DocumentElementType.DATE_PICKER>;
6385
+ label: z.ZodString;
6386
+ defaultValue: z.ZodOptional<z.ZodString>;
6387
+ }>, "strip", z.ZodTypeAny, {
6388
+ type: DocumentElementType.DATE_PICKER;
6389
+ label: string;
6390
+ id?: string | undefined;
6391
+ required?: boolean | undefined;
6392
+ defaultValue?: string | undefined;
6393
+ }, {
6394
+ type: DocumentElementType.DATE_PICKER;
6395
+ label: string;
6396
+ id?: string | undefined;
6397
+ required?: boolean | undefined;
6398
+ defaultValue?: string | undefined;
6399
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6400
+ id: z.ZodOptional<z.ZodString>;
6401
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6402
+ required: z.ZodOptional<z.ZodBoolean>;
6403
+ }, {
6404
+ type: z.ZodLiteral<DocumentElementType.SIGNATURE>;
6405
+ label: z.ZodString;
6406
+ }>, "strip", z.ZodTypeAny, {
6407
+ type: DocumentElementType.SIGNATURE;
6408
+ label: string;
6409
+ id?: string | undefined;
6410
+ required?: boolean | undefined;
6411
+ }, {
6412
+ type: DocumentElementType.SIGNATURE;
6413
+ label: string;
6414
+ id?: string | undefined;
6415
+ required?: boolean | undefined;
6416
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6417
+ id: z.ZodOptional<z.ZodString>;
6418
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6419
+ required: z.ZodOptional<z.ZodBoolean>;
6420
+ }, {
6421
+ type: z.ZodLiteral<DocumentElementType.DITIGAL_SIGNATURE>;
6422
+ label: z.ZodString;
6423
+ }>, "strip", z.ZodTypeAny, {
6424
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6425
+ label: string;
6426
+ id?: string | undefined;
6427
+ required?: boolean | undefined;
6428
+ }, {
6429
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6430
+ label: string;
6431
+ id?: string | undefined;
6432
+ required?: boolean | undefined;
6433
+ }>, z.ZodObject<z.objectUtil.extendShape<{
6434
+ id: z.ZodOptional<z.ZodString>;
6435
+ type: z.ZodNativeEnum<typeof DocumentElementType>;
6436
+ required: z.ZodOptional<z.ZodBoolean>;
6437
+ }, {
6438
+ type: z.ZodLiteral<DocumentElementType.FILE_UPLOAD>;
6439
+ label: z.ZodString;
6440
+ allowedFileTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6441
+ maxFileSizeMB: z.ZodOptional<z.ZodNumber>;
6442
+ }>, "strip", z.ZodTypeAny, {
6443
+ type: DocumentElementType.FILE_UPLOAD;
6444
+ label: string;
6445
+ id?: string | undefined;
6446
+ required?: boolean | undefined;
6447
+ allowedFileTypes?: string[] | undefined;
6448
+ maxFileSizeMB?: number | undefined;
6449
+ }, {
6450
+ type: DocumentElementType.FILE_UPLOAD;
6451
+ label: string;
6452
+ id?: string | undefined;
6453
+ required?: boolean | undefined;
6454
+ allowedFileTypes?: string[] | undefined;
6455
+ maxFileSizeMB?: number | undefined;
6456
+ }>]>, "many">;
6457
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6458
+ version: z.ZodNumber;
6459
+ isActive: z.ZodBoolean;
6460
+ isUserForm: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6461
+ isRequired: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
6462
+ sortingOrder: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6463
+ }, "strip", z.ZodTypeAny, {
6464
+ id: string;
6465
+ createdAt: number;
6466
+ updatedAt: number;
6467
+ isActive: boolean;
6468
+ title: string;
6469
+ elements: ({
6470
+ type: DocumentElementType.HEADING;
6471
+ text: string;
6472
+ level: HeadingLevel;
6473
+ id?: string | undefined;
6474
+ required?: boolean | undefined;
6475
+ } | {
6476
+ type: DocumentElementType.PARAGRAPH;
6477
+ text: string;
6478
+ id?: string | undefined;
6479
+ required?: boolean | undefined;
6480
+ } | {
6481
+ type: DocumentElementType.LIST;
6482
+ items: string[];
6483
+ listType: ListType;
6484
+ id?: string | undefined;
6485
+ required?: boolean | undefined;
6486
+ } | {
6487
+ type: DocumentElementType.DYNAMIC_TEXT;
6488
+ text: string;
6489
+ id?: string | undefined;
6490
+ required?: boolean | undefined;
6491
+ } | {
6492
+ type: DocumentElementType.BINARY_CHOICE;
6493
+ question: string;
6494
+ id?: string | undefined;
6495
+ required?: boolean | undefined;
6496
+ defaultValue?: boolean | undefined;
6497
+ } | {
6498
+ type: DocumentElementType.MULTIPLE_CHOICE;
6499
+ question: string;
6500
+ options: string[];
6501
+ id?: string | undefined;
6502
+ required?: boolean | undefined;
6503
+ defaultValues?: string[] | undefined;
6504
+ } | {
6505
+ type: DocumentElementType.SINGLE_CHOICE;
6506
+ question: string;
6507
+ options: string[];
6508
+ id?: string | undefined;
6509
+ required?: boolean | undefined;
6510
+ defaultValue?: string | undefined;
6511
+ } | {
6512
+ type: DocumentElementType.RATING_SCALE;
6513
+ question: string;
6514
+ min: number;
6515
+ max: number;
6516
+ id?: string | undefined;
6517
+ required?: boolean | undefined;
6518
+ defaultValue?: number | undefined;
6519
+ labels?: Record<string, string> | undefined;
6520
+ } | {
6521
+ type: DocumentElementType.TEXT_INPUT;
6522
+ label: string;
6523
+ id?: string | undefined;
6524
+ required?: boolean | undefined;
6525
+ defaultValue?: string | undefined;
6526
+ placeholder?: string | undefined;
6527
+ multiline?: boolean | undefined;
6528
+ } | {
6529
+ type: DocumentElementType.DATE_PICKER;
6530
+ label: string;
6531
+ id?: string | undefined;
6532
+ required?: boolean | undefined;
6533
+ defaultValue?: string | undefined;
6534
+ } | {
6535
+ type: DocumentElementType.SIGNATURE;
6536
+ label: string;
6537
+ id?: string | undefined;
6538
+ required?: boolean | undefined;
6539
+ } | {
6540
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6541
+ label: string;
6542
+ id?: string | undefined;
6543
+ required?: boolean | undefined;
6544
+ } | {
6545
+ type: DocumentElementType.FILE_UPLOAD;
6546
+ label: string;
6547
+ id?: string | undefined;
6548
+ required?: boolean | undefined;
6549
+ allowedFileTypes?: string[] | undefined;
6550
+ maxFileSizeMB?: number | undefined;
6551
+ })[];
6552
+ isUserForm: boolean;
6553
+ isRequired: boolean;
6554
+ sortingOrder: number;
6555
+ createdBy: string;
6556
+ version: number;
6557
+ description?: string | undefined;
6558
+ tags?: string[] | undefined;
6559
+ }, {
6560
+ id: string;
6561
+ createdAt: number;
6562
+ updatedAt: number;
6563
+ isActive: boolean;
6564
+ title: string;
6565
+ elements: ({
6566
+ type: DocumentElementType.HEADING;
6567
+ text: string;
6568
+ level: HeadingLevel;
6569
+ id?: string | undefined;
6570
+ required?: boolean | undefined;
6571
+ } | {
6572
+ type: DocumentElementType.PARAGRAPH;
6573
+ text: string;
6574
+ id?: string | undefined;
6575
+ required?: boolean | undefined;
6576
+ } | {
6577
+ type: DocumentElementType.LIST;
6578
+ items: string[];
6579
+ listType: ListType;
6580
+ id?: string | undefined;
6581
+ required?: boolean | undefined;
6582
+ } | {
6583
+ type: DocumentElementType.DYNAMIC_TEXT;
6584
+ text: string;
6585
+ id?: string | undefined;
6586
+ required?: boolean | undefined;
6587
+ } | {
6588
+ type: DocumentElementType.BINARY_CHOICE;
6589
+ question: string;
6590
+ id?: string | undefined;
6591
+ required?: boolean | undefined;
6592
+ defaultValue?: boolean | undefined;
6593
+ } | {
6594
+ type: DocumentElementType.MULTIPLE_CHOICE;
6595
+ question: string;
6596
+ options: string[];
6597
+ id?: string | undefined;
6598
+ required?: boolean | undefined;
6599
+ defaultValues?: string[] | undefined;
6600
+ } | {
6601
+ type: DocumentElementType.SINGLE_CHOICE;
6602
+ question: string;
6603
+ options: string[];
6604
+ id?: string | undefined;
6605
+ required?: boolean | undefined;
6606
+ defaultValue?: string | undefined;
6607
+ } | {
6608
+ type: DocumentElementType.RATING_SCALE;
6609
+ question: string;
6610
+ min: number;
6611
+ max: number;
6612
+ id?: string | undefined;
6613
+ required?: boolean | undefined;
6614
+ defaultValue?: number | undefined;
6615
+ labels?: Record<string, string> | undefined;
6616
+ } | {
6617
+ type: DocumentElementType.TEXT_INPUT;
6618
+ label: string;
6619
+ id?: string | undefined;
6620
+ required?: boolean | undefined;
6621
+ defaultValue?: string | undefined;
6622
+ placeholder?: string | undefined;
6623
+ multiline?: boolean | undefined;
6624
+ } | {
6625
+ type: DocumentElementType.DATE_PICKER;
6626
+ label: string;
6627
+ id?: string | undefined;
6628
+ required?: boolean | undefined;
6629
+ defaultValue?: string | undefined;
6630
+ } | {
6631
+ type: DocumentElementType.SIGNATURE;
6632
+ label: string;
6633
+ id?: string | undefined;
6634
+ required?: boolean | undefined;
6635
+ } | {
6636
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6637
+ label: string;
6638
+ id?: string | undefined;
6639
+ required?: boolean | undefined;
6640
+ } | {
6641
+ type: DocumentElementType.FILE_UPLOAD;
6642
+ label: string;
6643
+ id?: string | undefined;
6644
+ required?: boolean | undefined;
6645
+ allowedFileTypes?: string[] | undefined;
6646
+ maxFileSizeMB?: number | undefined;
6647
+ })[];
6648
+ createdBy: string;
6649
+ version: number;
6650
+ description?: string | undefined;
6651
+ tags?: string[] | undefined;
6652
+ isUserForm?: boolean | undefined;
6653
+ isRequired?: boolean | undefined;
6654
+ sortingOrder?: number | undefined;
6655
+ }>, "many">>;
6656
+ benefits: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof TreatmentBenefit>, "many">>;
6657
+ certificationRequirement: z.ZodOptional<z.ZodObject<{
6658
+ minimumLevel: z.ZodNativeEnum<typeof CertificationLevel>;
6659
+ requiredSpecialties: z.ZodOptional<z.ZodArray<z.ZodNativeEnum<typeof CertificationSpecialty>, "many">>;
6660
+ }, "strip", z.ZodTypeAny, {
6661
+ minimumLevel: CertificationLevel;
6662
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
6663
+ }, {
6664
+ minimumLevel: CertificationLevel;
6665
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
6666
+ }>>;
6667
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
6668
+ }, "strip", z.ZodTypeAny, {
6669
+ name?: string | undefined;
6670
+ isActive?: boolean | undefined;
6671
+ description?: string | undefined;
6672
+ technicalDetails?: string | undefined;
6673
+ contraindications?: Contraindication[] | undefined;
6674
+ family?: ProcedureFamily | undefined;
6675
+ categoryId?: string | undefined;
6676
+ subcategoryId?: string | undefined;
6677
+ requirements?: {
6678
+ pre: {
6679
+ type: RequirementType;
6680
+ name: string;
6681
+ isActive: boolean;
6682
+ description: string;
6683
+ timeframe: {
6684
+ duration: number;
6685
+ unit: TimeUnit;
6686
+ notifyAt: number[];
6687
+ };
6688
+ importance: "low" | "medium" | "high";
6689
+ }[];
6690
+ post: {
6691
+ type: RequirementType;
6692
+ name: string;
6693
+ isActive: boolean;
6694
+ description: string;
6695
+ timeframe: {
6696
+ duration: number;
6697
+ unit: TimeUnit;
6698
+ notifyAt: number[];
6699
+ };
6700
+ importance: "low" | "medium" | "high";
6701
+ }[];
6702
+ } | undefined;
6703
+ blockingConditions?: BlockingCondition[] | undefined;
6704
+ benefits?: TreatmentBenefit[] | undefined;
6705
+ certificationRequirement?: {
6706
+ minimumLevel: CertificationLevel;
6707
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
6708
+ } | undefined;
6709
+ documentationTemplates?: {
6710
+ id: string;
6711
+ createdAt: number;
6712
+ updatedAt: number;
6713
+ isActive: boolean;
6714
+ title: string;
6715
+ elements: ({
6716
+ type: DocumentElementType.HEADING;
6717
+ text: string;
6718
+ level: HeadingLevel;
6719
+ id?: string | undefined;
6720
+ required?: boolean | undefined;
6721
+ } | {
6722
+ type: DocumentElementType.PARAGRAPH;
6723
+ text: string;
6724
+ id?: string | undefined;
6725
+ required?: boolean | undefined;
6726
+ } | {
6727
+ type: DocumentElementType.LIST;
6728
+ items: string[];
6729
+ listType: ListType;
6730
+ id?: string | undefined;
6731
+ required?: boolean | undefined;
6732
+ } | {
6733
+ type: DocumentElementType.DYNAMIC_TEXT;
6734
+ text: string;
6735
+ id?: string | undefined;
6736
+ required?: boolean | undefined;
6737
+ } | {
6738
+ type: DocumentElementType.BINARY_CHOICE;
6739
+ question: string;
6740
+ id?: string | undefined;
6741
+ required?: boolean | undefined;
6742
+ defaultValue?: boolean | undefined;
6743
+ } | {
6744
+ type: DocumentElementType.MULTIPLE_CHOICE;
6745
+ question: string;
6746
+ options: string[];
6747
+ id?: string | undefined;
6748
+ required?: boolean | undefined;
6749
+ defaultValues?: string[] | undefined;
6750
+ } | {
6751
+ type: DocumentElementType.SINGLE_CHOICE;
6752
+ question: string;
6753
+ options: string[];
6754
+ id?: string | undefined;
6755
+ required?: boolean | undefined;
6756
+ defaultValue?: string | undefined;
6757
+ } | {
6758
+ type: DocumentElementType.RATING_SCALE;
6759
+ question: string;
6760
+ min: number;
6761
+ max: number;
6762
+ id?: string | undefined;
6763
+ required?: boolean | undefined;
6764
+ defaultValue?: number | undefined;
6765
+ labels?: Record<string, string> | undefined;
6766
+ } | {
6767
+ type: DocumentElementType.TEXT_INPUT;
6768
+ label: string;
6769
+ id?: string | undefined;
6770
+ required?: boolean | undefined;
6771
+ defaultValue?: string | undefined;
6772
+ placeholder?: string | undefined;
6773
+ multiline?: boolean | undefined;
6774
+ } | {
6775
+ type: DocumentElementType.DATE_PICKER;
6776
+ label: string;
6777
+ id?: string | undefined;
6778
+ required?: boolean | undefined;
6779
+ defaultValue?: string | undefined;
6780
+ } | {
6781
+ type: DocumentElementType.SIGNATURE;
6782
+ label: string;
6783
+ id?: string | undefined;
6784
+ required?: boolean | undefined;
6785
+ } | {
6786
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6787
+ label: string;
6788
+ id?: string | undefined;
6789
+ required?: boolean | undefined;
6790
+ } | {
6791
+ type: DocumentElementType.FILE_UPLOAD;
6792
+ label: string;
6793
+ id?: string | undefined;
6794
+ required?: boolean | undefined;
6795
+ allowedFileTypes?: string[] | undefined;
6796
+ maxFileSizeMB?: number | undefined;
6797
+ })[];
6798
+ isUserForm: boolean;
6799
+ isRequired: boolean;
6800
+ sortingOrder: number;
6801
+ createdBy: string;
6802
+ version: number;
6803
+ description?: string | undefined;
6804
+ tags?: string[] | undefined;
6805
+ }[] | undefined;
6806
+ }, {
6807
+ name?: string | undefined;
6808
+ isActive?: boolean | undefined;
6809
+ description?: string | undefined;
6810
+ technicalDetails?: string | undefined;
6811
+ contraindications?: Contraindication[] | undefined;
6812
+ family?: ProcedureFamily | undefined;
6813
+ categoryId?: string | undefined;
6814
+ subcategoryId?: string | undefined;
6815
+ requirements?: {
6816
+ pre: {
6817
+ type: RequirementType;
6818
+ name: string;
6819
+ description: string;
6820
+ timeframe: {
6821
+ duration: number;
6822
+ unit: TimeUnit;
6823
+ notifyAt: number[];
6824
+ };
6825
+ importance: "low" | "medium" | "high";
6826
+ isActive?: boolean | undefined;
6827
+ }[];
6828
+ post: {
6829
+ type: RequirementType;
6830
+ name: string;
6831
+ description: string;
6832
+ timeframe: {
6833
+ duration: number;
6834
+ unit: TimeUnit;
6835
+ notifyAt: number[];
6836
+ };
6837
+ importance: "low" | "medium" | "high";
6838
+ isActive?: boolean | undefined;
6839
+ }[];
6840
+ } | undefined;
6841
+ blockingConditions?: BlockingCondition[] | undefined;
6842
+ benefits?: TreatmentBenefit[] | undefined;
6843
+ certificationRequirement?: {
6844
+ minimumLevel: CertificationLevel;
6845
+ requiredSpecialties?: CertificationSpecialty[] | undefined;
6846
+ } | undefined;
6847
+ documentationTemplates?: {
6848
+ id: string;
6849
+ createdAt: number;
6850
+ updatedAt: number;
6851
+ isActive: boolean;
6852
+ title: string;
6853
+ elements: ({
6854
+ type: DocumentElementType.HEADING;
6855
+ text: string;
6856
+ level: HeadingLevel;
6857
+ id?: string | undefined;
6858
+ required?: boolean | undefined;
6859
+ } | {
6860
+ type: DocumentElementType.PARAGRAPH;
6861
+ text: string;
6862
+ id?: string | undefined;
6863
+ required?: boolean | undefined;
6864
+ } | {
6865
+ type: DocumentElementType.LIST;
6866
+ items: string[];
6867
+ listType: ListType;
6868
+ id?: string | undefined;
6869
+ required?: boolean | undefined;
6870
+ } | {
6871
+ type: DocumentElementType.DYNAMIC_TEXT;
6872
+ text: string;
6873
+ id?: string | undefined;
6874
+ required?: boolean | undefined;
6875
+ } | {
6876
+ type: DocumentElementType.BINARY_CHOICE;
6877
+ question: string;
6878
+ id?: string | undefined;
6879
+ required?: boolean | undefined;
6880
+ defaultValue?: boolean | undefined;
6881
+ } | {
6882
+ type: DocumentElementType.MULTIPLE_CHOICE;
6883
+ question: string;
6884
+ options: string[];
6885
+ id?: string | undefined;
6886
+ required?: boolean | undefined;
6887
+ defaultValues?: string[] | undefined;
6888
+ } | {
6889
+ type: DocumentElementType.SINGLE_CHOICE;
6890
+ question: string;
6891
+ options: string[];
6892
+ id?: string | undefined;
6893
+ required?: boolean | undefined;
6894
+ defaultValue?: string | undefined;
6895
+ } | {
6896
+ type: DocumentElementType.RATING_SCALE;
6897
+ question: string;
6898
+ min: number;
6899
+ max: number;
6900
+ id?: string | undefined;
6901
+ required?: boolean | undefined;
6902
+ defaultValue?: number | undefined;
6903
+ labels?: Record<string, string> | undefined;
6904
+ } | {
6905
+ type: DocumentElementType.TEXT_INPUT;
6906
+ label: string;
6907
+ id?: string | undefined;
6908
+ required?: boolean | undefined;
6909
+ defaultValue?: string | undefined;
6910
+ placeholder?: string | undefined;
6911
+ multiline?: boolean | undefined;
6912
+ } | {
6913
+ type: DocumentElementType.DATE_PICKER;
6914
+ label: string;
6915
+ id?: string | undefined;
6916
+ required?: boolean | undefined;
6917
+ defaultValue?: string | undefined;
6918
+ } | {
6919
+ type: DocumentElementType.SIGNATURE;
6920
+ label: string;
6921
+ id?: string | undefined;
6922
+ required?: boolean | undefined;
6923
+ } | {
6924
+ type: DocumentElementType.DITIGAL_SIGNATURE;
6925
+ label: string;
6926
+ id?: string | undefined;
6927
+ required?: boolean | undefined;
6928
+ } | {
6929
+ type: DocumentElementType.FILE_UPLOAD;
6930
+ label: string;
6931
+ id?: string | undefined;
6932
+ required?: boolean | undefined;
6933
+ allowedFileTypes?: string[] | undefined;
6934
+ maxFileSizeMB?: number | undefined;
6935
+ })[];
6936
+ createdBy: string;
6937
+ version: number;
6938
+ description?: string | undefined;
6939
+ tags?: string[] | undefined;
6940
+ isUserForm?: boolean | undefined;
6941
+ isRequired?: boolean | undefined;
6942
+ sortingOrder?: number | undefined;
6943
+ }[] | undefined;
6944
+ }>;
6945
+ declare const requirementUpdateSchema: z.ZodObject<{
6946
+ name: z.ZodOptional<z.ZodString>;
6947
+ description: z.ZodOptional<z.ZodString>;
6948
+ type: z.ZodOptional<z.ZodNativeEnum<typeof RequirementType>>;
6949
+ timeframe: z.ZodOptional<z.ZodObject<{
6950
+ duration: z.ZodNumber;
6951
+ unit: z.ZodNativeEnum<typeof TimeUnit>;
6952
+ notifyAt: z.ZodArray<z.ZodNumber, "many">;
6953
+ }, "strip", z.ZodTypeAny, {
6954
+ duration: number;
6955
+ unit: TimeUnit;
6956
+ notifyAt: number[];
6957
+ }, {
6958
+ duration: number;
6959
+ unit: TimeUnit;
6960
+ notifyAt: number[];
6961
+ }>>;
6962
+ importance: z.ZodOptional<z.ZodEnum<["low", "medium", "high"]>>;
6963
+ isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
6964
+ }, "strip", z.ZodTypeAny, {
6965
+ type?: RequirementType | undefined;
6966
+ name?: string | undefined;
6967
+ isActive?: boolean | undefined;
6968
+ description?: string | undefined;
6969
+ timeframe?: {
6970
+ duration: number;
6971
+ unit: TimeUnit;
6972
+ notifyAt: number[];
6973
+ } | undefined;
6974
+ importance?: "low" | "medium" | "high" | undefined;
6975
+ }, {
6976
+ type?: RequirementType | undefined;
6977
+ name?: string | undefined;
6978
+ isActive?: boolean | undefined;
6979
+ description?: string | undefined;
6980
+ timeframe?: {
6981
+ duration: number;
6982
+ unit: TimeUnit;
6983
+ notifyAt: number[];
6984
+ } | undefined;
6985
+ importance?: "low" | "medium" | "high" | undefined;
6986
+ }>;
6987
+
6988
+ /**
6989
+ * Default vrednosti za sertifikaciju
6990
+ * Svaka nova tehnologija će imati ove vrednosti ako se ne specificira drugačije
6991
+ */
6992
+ declare const DEFAULT_CERTIFICATION_REQUIREMENT: CertificationRequirement;
6993
+
6994
+ /**
6995
+ * Bazna klasa za greške u backoffice sistemu
6996
+ */
6997
+ declare class BackofficeError extends Error {
6998
+ constructor(message: string);
6999
+ }
7000
+ /**
7001
+ * Errors related to Category operations
7002
+ */
7003
+ declare class CategoryError extends BackofficeError {
7004
+ constructor(message: string);
7005
+ }
7006
+ declare class CategoryNotFoundError extends CategoryError {
7007
+ constructor(id: string);
7008
+ }
7009
+ declare class InvalidCategoryDataError extends CategoryError {
7010
+ constructor(message: string);
7011
+ }
7012
+ /**
7013
+ * Errors related to Subcategory operations
7014
+ */
7015
+ declare class SubcategoryError extends BackofficeError {
7016
+ constructor(message: string);
7017
+ }
7018
+ declare class SubcategoryNotFoundError extends SubcategoryError {
7019
+ constructor(id: string);
7020
+ }
7021
+ declare class InvalidSubcategoryDataError extends SubcategoryError {
7022
+ constructor(message: string);
7023
+ }
7024
+ /**
7025
+ * Errors related to Technology operations
7026
+ */
7027
+ declare class TechnologyError extends BackofficeError {
7028
+ constructor(message: string);
7029
+ }
7030
+ declare class TechnologyNotFoundError extends TechnologyError {
7031
+ constructor(id: string);
7032
+ }
7033
+ declare class InvalidTechnologyDataError extends TechnologyError {
7034
+ constructor(message: string);
7035
+ }
7036
+ /**
7037
+ * Errors related to Requirement operations
7038
+ */
7039
+ declare class RequirementError extends BackofficeError {
7040
+ constructor(message: string);
7041
+ }
7042
+ declare class RequirementNotFoundError extends RequirementError {
7043
+ constructor(id: string);
7044
+ }
7045
+ declare class InvalidRequirementDataError extends RequirementError {
7046
+ constructor(message: string);
7047
+ }
7048
+ declare class InvalidTimeframeError extends RequirementError {
7049
+ constructor(message: string);
7050
+ }
7051
+ /**
7052
+ * Errors related to relationships between entities
7053
+ */
7054
+ declare class RelationshipError extends BackofficeError {
7055
+ constructor(message: string);
7056
+ }
7057
+ declare class InvalidHierarchyError extends RelationshipError {
7058
+ constructor(message: string);
7059
+ }
7060
+ declare class CircularReferenceError extends RelationshipError {
7061
+ constructor(message: string);
7062
+ }
7063
+ declare class BlockingConditionError extends BackofficeError {
7064
+ constructor(message: string);
7065
+ }
7066
+ declare class InvalidBlockingConditionError extends BlockingConditionError {
7067
+ constructor(condition: string);
7068
+ }
7069
+ declare class ContraindicationError extends BackofficeError {
7070
+ constructor(message: string);
7071
+ }
7072
+ declare class InvalidContraindicationError extends ContraindicationError {
7073
+ constructor(contraindication: string);
7074
+ }
7075
+ declare class TreatmentBenefitError extends BackofficeError {
7076
+ constructor(message: string);
7077
+ }
7078
+ declare class InvalidTreatmentBenefitError extends TreatmentBenefitError {
7079
+ constructor(benefit: string);
7080
+ }
7081
+
4568
7082
  /**
4569
7083
  * Enum defining the possible statuses of an appointment.
4570
7084
  */
@@ -22053,4 +24567,4 @@ declare const getFirebaseApp: () => Promise<FirebaseApp>;
22053
24567
  declare const getFirebaseStorage: () => Promise<FirebaseStorage>;
22054
24568
  declare const getFirebaseFunctions: () => Promise<Functions>;
22055
24569
 
22056
- export { APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, AuthService, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, CALENDAR_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, type RequesterInfo, type RequirementInstructionDueNotification, type Review, type ReviewRequestNotification, ReviewService, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, type TextInputElement, type TimeSlot, TimestampUtils, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentMediaItemSchema, appointmentMetadataSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, appointmentStatusSchema, baseNotificationSchema, beforeAfterPerZoneSchema, billingPerZoneSchema, blockingConditionSchema, buildPractitionerData, calendarEventSchema, calendarEventTimeSchema, checkEmailExists, cleanupFirebaseUser, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchInfoSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createManualPatientSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPatientTokenSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createProcedureSchema, createReviewSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, extractErrorMessage, filledDocumentSchema, filledDocumentStatusSchema, finalBillingSchema, finalizedDetailsSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, handleFirebaseError, handleSignupError, initializeFirebase, isPractitionerDataComplete, linkedFormInfoSchema, locationDataSchema, mediaResourceSchema, mediaTypeSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientInstructionStatusSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientRequirementInstanceSchema, patientRequirementInstructionSchema, patientRequirementOverallStatusSchema, patientReviewInfoSchema, patientSensitiveInfoSchema, patientTokenSchema, paymentStatusSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureExtendedInfoSchema, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, procedureSchema, procedureSummaryInfoSchema, requesterInfoSchema, requirementImportanceSchema, requirementInstructionDueNotificationSchema, rescheduleAppointmentSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, sharedClinicContactInfoSchema, sharedClinicLocationSchema, syncedCalendarEventSchema, timeSlotSchema, timestampSchema, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientInstructionStatusSchema, updatePatientMedicalInfoSchema, updateProcedureSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, validatePractitionerProfileData, vitalStatsSchema, workingHoursSchema };
24570
+ export { APPOINTMENTS_COLLECTION, type AddAllergyData, type AddBlockingConditionData, type AddContraindicationData, type AddMedicationData, type AddressData, type AdminInfo, type AdminToken, AdminTokenStatus, type Allergy, type AllergySubtype, AllergyType, type AllergyTypeWithSubtype, type Appointment, type AppointmentCancelledNotification, type AppointmentMediaItem, type AppointmentMetadata, type AppointmentReminderNotification, type AppointmentRescheduledProposalNotification, AppointmentService, AppointmentStatus, type AppointmentStatusChangeNotification, AuthService, BRANDS_COLLECTION, BackofficeError, type BaseDocumentElement, type BaseNotification, BaseService, type BeforeAfterPerZone, type BillingPerZone, type BinaryChoiceElement, BlockingCondition, BlockingConditionError, type Brand, BrandService, CALENDAR_COLLECTION, CATEGORIES_COLLECTION, CLINICS_COLLECTION, CLINIC_ADMINS_COLLECTION, CLINIC_GROUPS_COLLECTION, type CalendarEvent, CalendarEventStatus, type CalendarEventTime, CalendarEventType, CalendarServiceV2, CalendarServiceV3, CalendarSyncStatus, type Category, CategoryError, CategoryNotFoundError, CategoryService, CertificationLevel, type CertificationRequirement, CertificationSpecialty, CircularReferenceError, type Clinic, type ClinicAdmin, ClinicAdminService, type ClinicAdminSignupData, type ClinicBranchSetupData, type ClinicContactInfo, type ClinicGroup, ClinicGroupService, type ClinicGroupSetupData, type ClinicInfo, type ClinicLocation, ClinicPhotoTag, type ClinicReview, type ClinicReviewInfo, ClinicService, ClinicTag, type ClinicTags, type ContactPerson, Contraindication, ContraindicationError, CosmeticAllergySubtype, type CreateAdminTokenData, type CreateAppointmentData, type CreateAppointmentHttpData, type CreateAppointmentParams, type CreateBlockingEventParams, type CreateCalendarEventData, type CreateClinicAdminData, type CreateClinicData, type CreateClinicGroupData, type CreateDefaultClinicGroupData, type CreateDocumentTemplateData, type CreateDraftPractitionerData, type CreateManualPatientData, type CreatePatientLocationInfoData, type CreatePatientMedicalInfoData, type CreatePatientProfileData, type CreatePatientSensitiveInfoData, type CreatePatientTokenData, type CreatePractitionerData, type CreatePractitionerInviteData, type CreatePractitionerTokenData, type CreateProcedureData, type CreateSyncedCalendarData, type CreateUserData, Currency, DEFAULT_CERTIFICATION_REQUIREMENT, DEFAULT_MEDICAL_INFO, DOCTOR_FORMS_SUBCOLLECTION, DOCUMENTATION_TEMPLATES_COLLECTION, type DatePickerElement, type DateRange, type DigitalSignatureElement, type DoctorInfo, type DocumentElement, DocumentElementType, type DocumentTemplate, DocumentationTemplateService, DocumentationTemplateServiceBackoffice, type DynamicTextElement, DynamicVariable, type EmergencyContact, EnvironmentalAllergySubtype, ExternalCalendarService, FILLED_DOCUMENTS_COLLECTION, type FileUploadElement, type FilledDocument, type FilledDocumentFileValue, FilledDocumentService, FilledDocumentStatus, type FinalBilling, type FirebaseUser, FoodAllergySubtype, type FormReminderNotification, type FormSubmissionConfirmationNotification, type GamificationInfo, Gender, type GeneralMessageNotification, type HeadingElement, HeadingLevel, INVITE_TOKENS_COLLECTION, type IProductService, InvalidBlockingConditionError, InvalidCategoryDataError, InvalidContraindicationError, InvalidHierarchyError, InvalidRequirementDataError, InvalidSubcategoryDataError, InvalidTechnologyDataError, InvalidTimeframeError, InvalidTreatmentBenefitError, Language, type LinkedFormInfo, type ListElement, ListType, type LocationData, MEDIA_METADATA_COLLECTION, MediaAccessLevel, type MediaMetadata, type MediaResource, MediaService, MediaType, MedicationAllergySubtype, type MultipleChoiceElement, NOTIFICATIONS_COLLECTION, type Notification, NotificationService, NotificationStatus, NotificationType, PATIENTS_COLLECTION, PATIENT_APPOINTMENTS_COLLECTION, PATIENT_LOCATION_INFO_COLLECTION, PATIENT_MEDICAL_HISTORY_COLLECTION, PATIENT_MEDICAL_INFO_COLLECTION, PATIENT_REQUIREMENTS_SUBCOLLECTION_NAME, PATIENT_SENSITIVE_INFO_COLLECTION, PRACTITIONERS_COLLECTION, PRACTITIONER_INVITES_COLLECTION, PROCEDURES_COLLECTION, PRODUCTS_COLLECTION, type ParagraphElement, type PatientClinic, type PatientDoctor, PatientInstructionStatus, type PatientLocationInfo, type PatientMedicalInfo, type PatientProfile, type PatientProfileComplete, type PatientProfileForDoctor, type PatientProfileInfo, type PatientRequirementInstance, type PatientRequirementInstruction, PatientRequirementOverallStatus, type PatientRequirementsFilters, PatientRequirementsService, type PatientReviewInfo, type PatientSensitiveInfo, PatientService, type PatientToken, PatientTokenStatus, type PaymentConfirmationNotification, PaymentStatus, type PostRequirementNotification, PracticeType, type Practitioner, type PractitionerBasicInfo, type PractitionerCertification, type PractitionerClinicProcedures, type PractitionerClinicWorkingHours, type PractitionerInvite, type PractitionerInviteFilters, PractitionerInviteService, PractitionerInviteStatus, type PractitionerProfileInfo, type PractitionerReview, type PractitionerReviewInfo, PractitionerService, PractitionerStatus, type PractitionerToken, PractitionerTokenStatus, type PractitionerWorkingHours, type PreRequirementNotification, PricingMeasure, type Procedure, type ProcedureCategorization, type ProcedureExtendedInfo, ProcedureFamily, type ProcedureInfo, type ProcedureReview, type ProcedureReviewInfo, ProcedureService, type ProcedureSummaryInfo, type Product, ProductService, type ProposedWorkingHours, REGISTER_TOKENS_COLLECTION, REQUIREMENTS_COLLECTION, REVIEWS_COLLECTION, type RatingScaleElement, RelationshipError, type RequesterInfo, type Requirement, RequirementError, type RequirementImportance, type RequirementInstructionDueNotification, RequirementNotFoundError, RequirementService, RequirementType, type Review, type ReviewRequestNotification, ReviewService, SUBCATEGORIES_COLLECTION, SYNCED_CALENDARS_COLLECTION, type SearchAppointmentsParams, type SearchCalendarEventsParams, SearchLocationEnum, type SearchPatientsParams, type SignatureElement, type SingleChoiceElement, type Subcategory, SubcategoryError, SubcategoryNotFoundError, SubcategoryService, SubscriptionModel, type SyncedCalendar, type SyncedCalendarEvent, SyncedCalendarProvider, TECHNOLOGIES_COLLECTION, type Technology, type TechnologyDocumentationTemplate, TechnologyError, TechnologyNotFoundError, type TechnologyRequirements, TechnologyService, type TextInputElement, type TimeFrame, type TimeSlot, TimeUnit, TimestampUtils, TreatmentBenefit, TreatmentBenefitError, USERS_COLLECTION, USER_FORMS_SUBCOLLECTION, type UpdateAllergyData, type UpdateAppointmentData, type UpdateAppointmentParams, type UpdateBlockingConditionData, type UpdateBlockingEventParams, type UpdateCalendarEventData, type UpdateClinicAdminData, type UpdateClinicData, type UpdateClinicGroupData, type UpdateContraindicationData, type UpdateDocumentTemplateData, type UpdateMedicationData, type UpdatePatientLocationInfoData, type UpdatePatientMedicalInfoData, type UpdatePatientProfileData, type UpdatePatientSensitiveInfoData, type UpdatePractitionerData, type UpdatePractitionerInviteData, type UpdateProcedureData, type UpdateSyncedCalendarData, type UpdateVitalStatsData, type User, UserRole, UserService, type ValidationSchema, type VitalStats, type WorkingHours, addAllergySchema, addBlockingConditionSchema, addContraindicationSchema, addMedicationSchema, addressDataSchema, adminInfoSchema, adminTokenSchema, allergySchema, allergySubtypeSchema, appointmentMediaItemSchema, appointmentMetadataSchema, appointmentNotificationSchema, appointmentReminderNotificationSchema, appointmentStatusSchema, baseNotificationSchema, beforeAfterPerZoneSchema, billingPerZoneSchema, blockingConditionSchema, blockingConditionSchemaBackoffice, buildPractitionerData, calendarEventSchema, calendarEventTimeSchema, categorySchema, categoryUpdateSchema, certificationLevelSchema, certificationRequirementSchema, certificationSpecialtySchema, checkEmailExists, cleanupFirebaseUser, clinicAdminOptionsSchema, clinicAdminSchema, clinicAdminSignupSchema, clinicBranchInfoSchema, clinicBranchSetupSchema, clinicContactInfoSchema, clinicGroupSchema, clinicGroupSetupSchema, clinicInfoSchema, clinicLocationSchema, clinicReviewInfoSchema, clinicReviewSchema, clinicSchema, clinicTagsSchema, contactPersonSchema, contraindicationSchema, contraindicationSchemaBackoffice, createAdminTokenSchema, createAppointmentSchema, createBlockingEventSchema, createCalendarEventSchema, createClinicAdminSchema, createClinicGroupSchema, createClinicReviewSchema, createClinicSchema, createDefaultClinicGroupSchema, createDocumentTemplateSchema, createDraftPractitionerSchema, createFilledDocumentDataSchema, createManualPatientSchema, createPatientLocationInfoSchema, createPatientMedicalInfoSchema, createPatientProfileSchema, createPatientSensitiveInfoSchema, createPatientTokenSchema, createPractitionerReviewSchema, createPractitionerSchema, createPractitionerTokenSchema, createProcedureReviewSchema, createProcedureSchema, createReviewSchema, createUserOptionsSchema, doctorInfoSchema, documentElementSchema, documentElementWithoutIdSchema, documentTemplateSchema, emailSchema, emergencyContactSchema, extractErrorMessage, filledDocumentSchema, filledDocumentStatusSchema, finalBillingSchema, finalizedDetailsSchema, gamificationSchema, getFirebaseApp, getFirebaseAuth, getFirebaseDB, getFirebaseFunctions, getFirebaseInstance, getFirebaseStorage, handleFirebaseError, handleSignupError, initializeFirebase, isPractitionerDataComplete, linkedFormInfoSchema, locationDataSchema, mediaResourceSchema, mediaTypeSchema, medicationSchema, notificationSchema, passwordSchema, patientClinicSchema, patientDoctorSchema, patientInstructionStatusSchema, patientLocationInfoSchema, patientMedicalInfoSchema, patientProfileInfoSchema, patientProfileSchema, patientRequirementInstanceSchema, patientRequirementInstructionSchema, patientRequirementOverallStatusSchema, patientReviewInfoSchema, patientSensitiveInfoSchema, patientTokenSchema, paymentStatusSchema, postRequirementNotificationSchema, practitionerBasicInfoSchema, practitionerCertificationSchema, practitionerClinicWorkingHoursSchema, practitionerProfileInfoSchema, practitionerReviewInfoSchema, practitionerReviewSchema, practitionerSchema, practitionerSignupSchema, practitionerTokenSchema, practitionerWorkingHoursSchema, preRequirementNotificationSchema, procedureCategorizationSchema, procedureExtendedInfoSchema, procedureFamilySchemaBackoffice, procedureInfoSchema, procedureReviewInfoSchema, procedureReviewSchema, procedureSchema, procedureSummaryInfoSchema, requesterInfoSchema, requirementImportanceSchema, requirementInstructionDueNotificationSchema, requirementSchema, requirementTypeSchema, requirementUpdateSchema, rescheduleAppointmentSchema, reviewSchema, searchAppointmentsSchema, searchPatientsSchema, sharedClinicContactInfoSchema, sharedClinicLocationSchema, subcategorySchema, subcategoryUpdateSchema, syncedCalendarEventSchema, technologyRequirementsSchema, technologySchema, technologyUpdateSchema, timeSlotSchema, timeUnitSchemaBackoffice, timeframeSchema, timestampSchema, treatmentBenefitSchemaBackoffice, updateAllergySchema, updateAppointmentSchema, updateBlockingConditionSchema, updateBlockingEventSchema, updateCalendarEventSchema, updateClinicAdminSchema, updateClinicGroupSchema, updateClinicSchema, updateContraindicationSchema, updateDocumentTemplateSchema, updateFilledDocumentDataSchema, updateMedicationSchema, updatePatientInstructionStatusSchema, updatePatientMedicalInfoSchema, updateProcedureSchema, updateVitalStatsSchema, userRoleSchema, userRolesSchema, userSchema, validatePractitionerProfileData, vitalStatsSchema, workingHoursSchema };