UNPKG

emr-types

Version:

Comprehensive TypeScript Types Library for Electronic Medical Record (EMR) Applications - Domain-Driven Design with Zod Validation

1,463 lines 237 kB
import { z } from 'zod'; import { TenantStatus, TenantType } from '../domains/tenant'; export declare const TenantIdSchema: z.ZodBranded<z.ZodString, "TenantId">; export declare const DomainNameSchema: z.ZodBranded<z.ZodString, "DomainName">; export declare const TenantStatusSchema: z.ZodNativeEnum<typeof TenantStatus>; export declare const TenantTypeSchema: z.ZodNativeEnum<typeof TenantType>; export declare const TenantIdValueObjectSchema: z.ZodObject<{ value: z.ZodBranded<z.ZodString, "TenantId">; format: z.ZodEnum<["uuid", "auto-increment", "custom"]>; createdAt: z.ZodDate; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { value: string & z.BRAND<"TenantId">; createdAt: Date; format: "uuid" | "custom" | "auto-increment"; metadata?: Record<string, unknown> | undefined; }, { value: string; createdAt: Date; format: "uuid" | "custom" | "auto-increment"; metadata?: Record<string, unknown> | undefined; }>; export declare const DomainNameValueObjectSchema: z.ZodObject<{ value: z.ZodBranded<z.ZodString, "DomainName">; isVerified: z.ZodBoolean; verifiedAt: z.ZodOptional<z.ZodDate>; sslCertificate: z.ZodOptional<z.ZodObject<{ issuer: z.ZodString; validFrom: z.ZodDate; validTo: z.ZodDate; serialNumber: z.ZodString; }, "strip", z.ZodTypeAny, { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; }, { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; }>>; createdAt: z.ZodDate; }, "strip", z.ZodTypeAny, { value: string & z.BRAND<"DomainName">; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }, { value: string; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }>; export declare const TenantConfigSchema: z.ZodObject<{ id: z.ZodBranded<z.ZodString, "TenantId">; features: z.ZodObject<{ multiTenancy: z.ZodBoolean; sso: z.ZodBoolean; auditLogging: z.ZodBoolean; backup: z.ZodBoolean; customBranding: z.ZodBoolean; apiAccess: z.ZodBoolean; webhookSupport: z.ZodBoolean; advancedAnalytics: z.ZodBoolean; }, "strip", z.ZodTypeAny, { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }, { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }>; limits: z.ZodObject<{ maxUsers: z.ZodNumber; maxStorage: z.ZodNumber; maxApiCalls: z.ZodNumber; maxBackups: z.ZodNumber; maxCustomDomains: z.ZodNumber; }, "strip", z.ZodTypeAny, { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }, { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }>; settings: z.ZodObject<{ timezone: z.ZodString; locale: z.ZodString; dateFormat: z.ZodString; timeFormat: z.ZodString; currency: z.ZodString; theme: z.ZodOptional<z.ZodObject<{ primaryColor: z.ZodString; secondaryColor: z.ZodString; logo: z.ZodOptional<z.ZodString>; favicon: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; }, { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; }>>; notifications: z.ZodObject<{ email: z.ZodBoolean; sms: z.ZodBoolean; push: z.ZodBoolean; webhook: z.ZodBoolean; }, "strip", z.ZodTypeAny, { push: boolean; sms: boolean; email: boolean; webhook: boolean; }, { push: boolean; sms: boolean; email: boolean; webhook: boolean; }>; security: z.ZodObject<{ passwordPolicy: z.ZodObject<{ minLength: z.ZodNumber; requireUppercase: z.ZodBoolean; requireLowercase: z.ZodBoolean; requireNumbers: z.ZodBoolean; requireSpecialChars: z.ZodBoolean; maxAge: z.ZodNumber; }, "strip", z.ZodTypeAny, { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }, { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }>; sessionTimeout: z.ZodNumber; maxLoginAttempts: z.ZodNumber; twoFactorRequired: z.ZodBoolean; ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }, { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }>; integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ enabled: z.ZodBoolean; apiKey: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }>>>; }, "strip", z.ZodTypeAny, { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }, { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }>; createdAt: z.ZodDate; updatedAt: z.ZodDate; createdBy: z.ZodOptional<z.ZodString>; updatedBy: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string & z.BRAND<"TenantId">; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }, { id: string; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }>; export declare const TenantSchema: z.ZodObject<{ id: z.ZodBranded<z.ZodString, "TenantId">; name: z.ZodString; slug: z.ZodString; domain: z.ZodObject<{ value: z.ZodBranded<z.ZodString, "DomainName">; isVerified: z.ZodBoolean; verifiedAt: z.ZodOptional<z.ZodDate>; sslCertificate: z.ZodOptional<z.ZodObject<{ issuer: z.ZodString; validFrom: z.ZodDate; validTo: z.ZodDate; serialNumber: z.ZodString; }, "strip", z.ZodTypeAny, { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; }, { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; }>>; createdAt: z.ZodDate; }, "strip", z.ZodTypeAny, { value: string & z.BRAND<"DomainName">; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }, { value: string; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }>; type: z.ZodNativeEnum<typeof TenantType>; status: z.ZodNativeEnum<typeof TenantStatus>; config: z.ZodObject<{ id: z.ZodBranded<z.ZodString, "TenantId">; features: z.ZodObject<{ multiTenancy: z.ZodBoolean; sso: z.ZodBoolean; auditLogging: z.ZodBoolean; backup: z.ZodBoolean; customBranding: z.ZodBoolean; apiAccess: z.ZodBoolean; webhookSupport: z.ZodBoolean; advancedAnalytics: z.ZodBoolean; }, "strip", z.ZodTypeAny, { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }, { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }>; limits: z.ZodObject<{ maxUsers: z.ZodNumber; maxStorage: z.ZodNumber; maxApiCalls: z.ZodNumber; maxBackups: z.ZodNumber; maxCustomDomains: z.ZodNumber; }, "strip", z.ZodTypeAny, { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }, { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }>; settings: z.ZodObject<{ timezone: z.ZodString; locale: z.ZodString; dateFormat: z.ZodString; timeFormat: z.ZodString; currency: z.ZodString; theme: z.ZodOptional<z.ZodObject<{ primaryColor: z.ZodString; secondaryColor: z.ZodString; logo: z.ZodOptional<z.ZodString>; favicon: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; }, { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; }>>; notifications: z.ZodObject<{ email: z.ZodBoolean; sms: z.ZodBoolean; push: z.ZodBoolean; webhook: z.ZodBoolean; }, "strip", z.ZodTypeAny, { push: boolean; sms: boolean; email: boolean; webhook: boolean; }, { push: boolean; sms: boolean; email: boolean; webhook: boolean; }>; security: z.ZodObject<{ passwordPolicy: z.ZodObject<{ minLength: z.ZodNumber; requireUppercase: z.ZodBoolean; requireLowercase: z.ZodBoolean; requireNumbers: z.ZodBoolean; requireSpecialChars: z.ZodBoolean; maxAge: z.ZodNumber; }, "strip", z.ZodTypeAny, { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }, { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }>; sessionTimeout: z.ZodNumber; maxLoginAttempts: z.ZodNumber; twoFactorRequired: z.ZodBoolean; ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }, { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }>; integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{ enabled: z.ZodBoolean; apiKey: z.ZodOptional<z.ZodString>; webhookUrl: z.ZodOptional<z.ZodString>; settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>; }, "strip", z.ZodTypeAny, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }>>>; }, "strip", z.ZodTypeAny, { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }, { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }>; createdAt: z.ZodDate; updatedAt: z.ZodDate; createdBy: z.ZodOptional<z.ZodString>; updatedBy: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string & z.BRAND<"TenantId">; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }, { id: string; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }>; contact: z.ZodObject<{ email: z.ZodString; phone: z.ZodOptional<z.ZodString>; address: z.ZodOptional<z.ZodObject<{ street: z.ZodString; city: z.ZodString; state: z.ZodString; postalCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { street: string; city: string; country: string; state: string; postalCode: string; }, { street: string; city: string; country: string; state: string; postalCode: string; }>>; }, "strip", z.ZodTypeAny, { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }, { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }>; billing: z.ZodObject<{ plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>; billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>; nextBillingDate: z.ZodDate; lastBillingDate: z.ZodOptional<z.ZodDate>; totalAmount: z.ZodNumber; currency: z.ZodString; paymentMethod: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>; last4: z.ZodOptional<z.ZodString>; expiryDate: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; }, { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; }>>; invoices: z.ZodOptional<z.ZodArray<z.ZodObject<{ id: z.ZodString; amount: z.ZodNumber; currency: z.ZodString; status: z.ZodEnum<["pending", "paid", "overdue", "cancelled"]>; dueDate: z.ZodDate; paidAt: z.ZodOptional<z.ZodDate>; }, "strip", z.ZodTypeAny, { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }, { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { plan: "basic" | "professional" | "enterprise" | "free"; currency: string; billingCycle: "monthly" | "quarterly" | "annually"; nextBillingDate: Date; totalAmount: number; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; } | undefined; lastBillingDate?: Date | undefined; invoices?: { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }[] | undefined; }, { plan: "basic" | "professional" | "enterprise" | "free"; currency: string; billingCycle: "monthly" | "quarterly" | "annually"; nextBillingDate: Date; totalAmount: number; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; } | undefined; lastBillingDate?: Date | undefined; invoices?: { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }[] | undefined; }>; subscription: z.ZodObject<{ startDate: z.ZodDate; endDate: z.ZodOptional<z.ZodDate>; isActive: z.ZodBoolean; autoRenew: z.ZodBoolean; trialEndsAt: z.ZodOptional<z.ZodDate>; cancelledAt: z.ZodOptional<z.ZodDate>; }, "strip", z.ZodTypeAny, { startDate: Date; isActive: boolean; autoRenew: boolean; endDate?: Date | undefined; trialEndsAt?: Date | undefined; cancelledAt?: Date | undefined; }, { startDate: Date; isActive: boolean; autoRenew: boolean; endDate?: Date | undefined; trialEndsAt?: Date | undefined; cancelledAt?: Date | undefined; }>; usage: z.ZodObject<{ activeUsers: z.ZodNumber; storageUsed: z.ZodNumber; apiCallsThisMonth: z.ZodNumber; lastActivityAt: z.ZodOptional<z.ZodDate>; }, "strip", z.ZodTypeAny, { activeUsers: number; storageUsed: number; apiCallsThisMonth: number; lastActivityAt?: Date | undefined; }, { activeUsers: number; storageUsed: number; apiCallsThisMonth: number; lastActivityAt?: Date | undefined; }>; createdAt: z.ZodDate; updatedAt: z.ZodDate; createdBy: z.ZodOptional<z.ZodString>; updatedBy: z.ZodOptional<z.ZodString>; deletedAt: z.ZodOptional<z.ZodDate>; }, "strip", z.ZodTypeAny, { type: TenantType; id: string & z.BRAND<"TenantId">; createdAt: Date; updatedAt: Date; status: TenantStatus; name: string; slug: string; domain: { value: string & z.BRAND<"DomainName">; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }; config: { id: string & z.BRAND<"TenantId">; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }; contact: { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }; billing: { plan: "basic" | "professional" | "enterprise" | "free"; currency: string; billingCycle: "monthly" | "quarterly" | "annually"; nextBillingDate: Date; totalAmount: number; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; } | undefined; lastBillingDate?: Date | undefined; invoices?: { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }[] | undefined; }; subscription: { startDate: Date; isActive: boolean; autoRenew: boolean; endDate?: Date | undefined; trialEndsAt?: Date | undefined; cancelledAt?: Date | undefined; }; usage: { activeUsers: number; storageUsed: number; apiCallsThisMonth: number; lastActivityAt?: Date | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; deletedAt?: Date | undefined; }, { type: TenantType; id: string; createdAt: Date; updatedAt: Date; status: TenantStatus; name: string; slug: string; domain: { value: string; createdAt: Date; isVerified: boolean; verifiedAt?: Date | undefined; sslCertificate?: { issuer: string; validFrom: Date; validTo: Date; serialNumber: string; } | undefined; }; config: { id: string; createdAt: Date; updatedAt: Date; features: { multiTenancy: boolean; sso: boolean; auditLogging: boolean; backup: boolean; customBranding: boolean; apiAccess: boolean; webhookSupport: boolean; advancedAnalytics: boolean; }; limits: { maxUsers: number; maxStorage: number; maxApiCalls: number; maxBackups: number; maxCustomDomains: number; }; settings: { security: { passwordPolicy: { minLength: number; requireUppercase: boolean; requireLowercase: boolean; requireNumbers: boolean; requireSpecialChars: boolean; maxAge: number; }; sessionTimeout: number; maxLoginAttempts: number; twoFactorRequired: boolean; ipWhitelist?: string[] | undefined; }; currency: string; timezone: string; locale: string; dateFormat: string; timeFormat: string; notifications: { push: boolean; sms: boolean; email: boolean; webhook: boolean; }; theme?: { primaryColor: string; secondaryColor: string; logo?: string | undefined; favicon?: string | undefined; } | undefined; integrations?: Record<string, { enabled: boolean; settings?: Record<string, unknown> | undefined; apiKey?: string | undefined; webhookUrl?: string | undefined; }> | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; }; contact: { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }; billing: { plan: "basic" | "professional" | "enterprise" | "free"; currency: string; billingCycle: "monthly" | "quarterly" | "annually"; nextBillingDate: Date; totalAmount: number; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; last4?: string | undefined; expiryDate?: string | undefined; } | undefined; lastBillingDate?: Date | undefined; invoices?: { id: string; status: "pending" | "cancelled" | "paid" | "overdue"; amount: number; currency: string; dueDate: Date; paidAt?: Date | undefined; }[] | undefined; }; subscription: { startDate: Date; isActive: boolean; autoRenew: boolean; endDate?: Date | undefined; trialEndsAt?: Date | undefined; cancelledAt?: Date | undefined; }; usage: { activeUsers: number; storageUsed: number; apiCallsThisMonth: number; lastActivityAt?: Date | undefined; }; createdBy?: string | undefined; updatedBy?: string | undefined; deletedAt?: Date | undefined; }>; export declare const CreateTenantRequestSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; domain: z.ZodString; type: z.ZodNativeEnum<typeof TenantType>; contact: z.ZodObject<{ email: z.ZodString; phone: z.ZodOptional<z.ZodString>; address: z.ZodOptional<z.ZodObject<{ street: z.ZodString; city: z.ZodString; state: z.ZodString; postalCode: z.ZodString; country: z.ZodString; }, "strip", z.ZodTypeAny, { street: string; city: string; country: string; state: string; postalCode: string; }, { street: string; city: string; country: string; state: string; postalCode: string; }>>; }, "strip", z.ZodTypeAny, { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }, { email: string; phone?: string | undefined; address?: { street: string; city: string; country: string; state: string; postalCode: string; } | undefined; }>; billing: z.ZodObject<{ plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>; billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>; paymentMethod: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>; token: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "paypal" | "credit_card" | "bank_transfer"; token?: string | undefined; }, { type: "paypal" | "credit_card" | "bank_transfer"; token?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { plan: "basic" | "professional" | "enterprise" | "free"; billingCycle: "monthly" | "quarterly" | "annually"; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; token?: string | undefined; } | undefined; }, { plan: "basic" | "professional" | "enterprise" | "free"; billingCycle: "monthly" | "quarterly" | "annually"; paymentMethod?: { type: "paypal" | "credit_card" | "bank_transfer"; token?: string | undefined; } | undefined; }>; config: z.ZodOptional<z.ZodObject<{ features: z.ZodOptional<z.ZodObject<{ multiTenancy: z.ZodOptional<z.ZodBoolean>; sso: z.ZodOptional<z.ZodBoolean>; auditLogging: z.ZodOptional<z.ZodBoolean>; backup: z.ZodOptional<z.ZodBoolean>; customBranding: z.ZodOptional<z.ZodBoolean>; apiAccess: z.ZodOptional<z.ZodBoolean>; webhookSupport: z.ZodOptional<z.ZodBoolean>; advancedAnalytics: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { multiTenancy?: boolean | undefined; sso?: boolean | undefined; auditLogging?: boolean | undefined; backup?: boolean | undefined; customBranding?: boolean | undefined; apiAccess?: boolean | undefined; webhookSupport?: boolean | undefined; advancedAnalytics?: boolean | undefined; }, { multiTenancy?: boolean | undefined; sso?: boolean | undefined; auditLogging?: boolean | undefined; backup?: boolean | undefined; customBranding?: boolean | undefined; apiAccess?: boolean | undefined; webhookSupport?: boolean | undefined; advancedAnalytics?: boolean | undefined; }>>; limits: z.ZodOptional<z.ZodObject<{ maxUsers: z.ZodOptional<z.ZodNumber>; maxStorage: z.ZodOptional<z.ZodNumber>; maxApiCalls: z.ZodOptional<z.ZodNumber>; maxBackups: z.ZodOptional<z.ZodNumber>; maxCustomDomains: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { maxUsers?: number | undefined; maxStorage?: number | undefined; maxApiCalls?: number | undefined; maxBackups?: number | undefined; maxCustomDomains?: number | undefined; }, { maxUsers?: number | undefined; maxStorage?: number | undefined; maxApiCalls?: number | undefined; maxBackups?: number | undefined; maxCustomDomains?: number | undefined; }>>; settings: z.ZodOptional<z.ZodObject<{ timezone: z.ZodOptional<z.ZodString>; locale: z.ZodOptional<z.ZodString>; dateFormat: z.ZodOptional<z.ZodString>; timeFormat: z.ZodOptional<z.ZodString>; currency: z.ZodOptional<z.ZodString>; theme: z.ZodOptional<z.ZodObject<{ primaryColor: z.ZodOptional<z.ZodString>; secondaryColor: z.ZodOptional<z.ZodString>; logo: z.ZodOptional<z.ZodString>; favicon: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { primaryColor?: string | undefined; secondaryColor?: string | undefined; logo?: string | undefined; favicon?: string | undefined; }, { primaryColor?: string | undefined; secondaryColor?: string | undefined; logo?: string | undefined; favicon?: string | undefined; }>>; notifications: z.ZodOptional<z.ZodObject<{ email: z.ZodOptional<z.ZodBoolean>; sms: z.ZodOptional<z.ZodBoolean>; push: z.ZodOptional<z.ZodBoolean>; webhook: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { push?: boolean | undefined; sms?: boolean | undefined; email?: boolean | undefined; webhook?: boolean | undefined; }, { push?: boolean | undefined; sms?: boolean | undefined; email?: boolean | undefined; webhook?: boolean | undefined; }>>; security: z.ZodOptional<z.ZodObject<{ passwordPolicy: z.ZodOptional<z.ZodObject<{ minLength: z.ZodOptional<z.ZodNumber>; requireUppercase: z.ZodOptional<z.ZodBoolean>; requireLowercase: z.ZodOptional<z.ZodBoolean>; requireNumbers: z.ZodOptional<z.ZodBoolean>; requireSpecialChars: z.ZodOptional<z.ZodBoolean>; maxAge: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { minLength?: number | undefined; requireUppercase?: boolean | undefined; requireLowercase?: boolean | undefined; requireNumbers?: boolean | undefined; requireSpecialChars?: boolean | undefined; maxAge?: number | undefined; }, { minLength?: number | undefined; requireUppercase?: boolean | undefined; requireLowercase?: boolean | undefined; requireNumbers?: boolean | undefined; requireSpecialChars?: boolean | undefined; maxAge?: number | undefined; }>>; sessionTimeout: z.ZodOptional<z.ZodNumber>; maxLoginAttemp