import type { ZodType } from 'zod'; import { z } from 'zod'; export declare enum AlterationStateKey { AlterationState = "alterationState" } export type AlterationState = { timestamp: number; updatedAt?: string; }; export type AlterationStateType = { [AlterationStateKey.AlterationState]: AlterationState; }; export declare const alterationStateGuard: Readonly<{ [key in AlterationStateKey]: ZodType; }>; export declare enum StorageProvider { AzureStorage = "AzureStorage", S3Storage = "S3Storage", GoogleStorage = "GoogleStorage" } export declare const storageProviderDataGuard: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{ publicUrl: z.ZodOptional; provider: z.ZodLiteral; connectionString: z.ZodString; container: z.ZodString; }, "strip", z.ZodTypeAny, { provider: StorageProvider.AzureStorage; connectionString: string; container: string; publicUrl?: string | undefined; }, { provider: StorageProvider.AzureStorage; connectionString: string; container: string; publicUrl?: string | undefined; }>, z.ZodObject<{ publicUrl: z.ZodOptional; provider: z.ZodLiteral; endpoint: z.ZodOptional; region: z.ZodOptional; bucket: z.ZodString; forcePathStyle: z.ZodOptional; accessKeyId: z.ZodString; accessSecretKey: z.ZodString; }, "strip", z.ZodTypeAny, { provider: StorageProvider.S3Storage; bucket: string; accessKeyId: string; accessSecretKey: string; region?: string | undefined; publicUrl?: string | undefined; endpoint?: string | undefined; forcePathStyle?: boolean | undefined; }, { provider: StorageProvider.S3Storage; bucket: string; accessKeyId: string; accessSecretKey: string; region?: string | undefined; publicUrl?: string | undefined; endpoint?: string | undefined; forcePathStyle?: boolean | undefined; }>, z.ZodObject<{ publicUrl: z.ZodOptional; provider: z.ZodLiteral; projectId: z.ZodString; keyFilename: z.ZodString; bucketName: z.ZodString; }, "strip", z.ZodTypeAny, { projectId: string; provider: StorageProvider.GoogleStorage; keyFilename: string; bucketName: string; publicUrl?: string | undefined; }, { projectId: string; provider: StorageProvider.GoogleStorage; keyFilename: string; bucketName: string; publicUrl?: string | undefined; }>]>; export type StorageProviderData = z.infer; export declare enum StorageProviderKey { StorageProvider = "storageProvider", ExperienceBlobsProvider = "experienceBlobsProvider", ExperienceZipsProvider = "experienceZipsProvider" } export type StorageProviderType = { [StorageProviderKey.StorageProvider]: StorageProviderData; [StorageProviderKey.ExperienceBlobsProvider]: StorageProviderData; [StorageProviderKey.ExperienceZipsProvider]: StorageProviderData; }; export declare const storageProviderGuard: Readonly<{ [key in StorageProviderKey]: ZodType; }>; export declare enum EmailServiceProvider { SendGrid = "SendGrid" } export declare const sendgridEmailServiceConfigGuard: z.ZodObject<{ provider: z.ZodLiteral; apiKey: z.ZodString; templateId: z.ZodString; fromName: z.ZodString; fromEmail: z.ZodString; }, "strip", z.ZodTypeAny, { fromEmail: string; provider: EmailServiceProvider; apiKey: string; templateId: string; fromName: string; }, { fromEmail: string; provider: EmailServiceProvider; apiKey: string; templateId: string; fromName: string; }>; export type SendgridEmailServiceConfig = z.infer; export declare const emailServiceConfigGuard: z.ZodDiscriminatedUnion<"provider", [z.ZodObject<{ provider: z.ZodLiteral; apiKey: z.ZodString; templateId: z.ZodString; fromName: z.ZodString; fromEmail: z.ZodString; }, "strip", z.ZodTypeAny, { fromEmail: string; provider: EmailServiceProvider; apiKey: string; templateId: string; fromName: string; }, { fromEmail: string; provider: EmailServiceProvider; apiKey: string; templateId: string; fromName: string; }>]>; export type EmailServiceConfig = z.infer; export declare enum EmailServiceProviderKey { EmailServiceProvider = "emailServiceProvider" } export type EmailServiceProviderType = { [EmailServiceProviderKey.EmailServiceProvider]: EmailServiceConfig; }; export declare const emailServiceProviderGuard: Readonly<{ [key in EmailServiceProviderKey]: ZodType; }>; export declare enum DemoSocialProvider { Google = "google", GitHub = "github", Discord = "discord" } export declare const demoSocialDataGuard: z.ZodArray; clientId: z.ZodString; }, "strip", z.ZodTypeAny, { name: string; logo: string; logoDark: string; clientId: string; provider: DemoSocialProvider; }, { name: string; logo: string; logoDark: string; clientId: string; provider: DemoSocialProvider; }>, "many">; export type DemoSocialData = z.infer; export declare enum DemoSocialKey { DemoSocial = "demoSocial" } export type DemoSocialType = { [DemoSocialKey.DemoSocial]: DemoSocialData; }; export declare const demoSocialGuard: Readonly<{ [key in DemoSocialKey]: ZodType; }>; export declare const hostnameProviderDataGuard: z.ZodObject<{ zoneId: z.ZodString; apiToken: z.ZodString; blockedDomains: z.ZodOptional>; }, "strip", z.ZodTypeAny, { zoneId: string; apiToken: string; blockedDomains?: string[] | undefined; }, { zoneId: string; apiToken: string; blockedDomains?: string[] | undefined; }>; export type HostnameProviderData = z.infer; export declare const protectedAppConfigProviderDataGuard: z.ZodObject<{ accountIdentifier: z.ZodString; namespaceIdentifier: z.ZodString; keyName: z.ZodString; domain: z.ZodString; apiToken: z.ZodString; }, "strip", z.ZodTypeAny, { domain: string; apiToken: string; accountIdentifier: string; namespaceIdentifier: string; keyName: string; }, { domain: string; apiToken: string; accountIdentifier: string; namespaceIdentifier: string; keyName: string; }>; export type ProtectedAppConfigProviderData = z.infer; /** * Cloudflare workers config for custom JWT. * Ref: https://developers.cloudflare.com/api/ */ export declare const customJwtWorkerConfigGuard: z.ZodObject<{ /** Cloudflare API Key (api_key). */ apiKey: z.ZodString; /** Cloudflare API Key (api_email). */ apiEmail: z.ZodString; /** Cloudflare account ID. */ accountId: z.ZodString; /** Default Cloudflare subdomain for the account. */ subdomain: z.ZodString; }, "strip", z.ZodTypeAny, { accountId: string; apiKey: string; apiEmail: string; subdomain: string; }, { accountId: string; apiKey: string; apiEmail: string; subdomain: string; }>; export type CustomJwtWorkerConfig = z.infer; export declare enum CloudflareKey { HostnameProvider = "cloudflareHostnameProvider", ProtectedAppConfigProvider = "cloudflareProtectedAppConfigProvider", ProtectedAppHostnameProvider = "cloudflareProtectedAppHostnameProvider", CustomJwtWorkerConfig = "cloudflareCustomJwtWorkerConfig" } export type CloudflareType = { [CloudflareKey.HostnameProvider]: HostnameProviderData; [CloudflareKey.ProtectedAppConfigProvider]: ProtectedAppConfigProviderData; [CloudflareKey.ProtectedAppHostnameProvider]: HostnameProviderData; [CloudflareKey.CustomJwtWorkerConfig]: CustomJwtWorkerConfig; }; export declare const cloudflareGuard: Readonly<{ [key in CloudflareKey]: ZodType; }>; export type SystemKey = AlterationStateKey | StorageProviderKey | DemoSocialKey | CloudflareKey | EmailServiceProviderKey; export type SystemType = AlterationStateType | StorageProviderType | DemoSocialType | CloudflareType | EmailServiceProviderType; export type SystemGuard = typeof alterationStateGuard & typeof storageProviderGuard & typeof demoSocialGuard & typeof cloudflareGuard & typeof emailServiceProviderGuard; export declare const systemKeys: readonly SystemKey[]; export declare const systemGuards: SystemGuard;