import * as yup from 'yup'; import { DeepMerge, DeepPartial } from '../utils/objects.mjs'; import { PrettifyType } from '../utils/types.mjs'; import { NormalizesTo, Config } from './format.mjs'; declare const configLevels: readonly ["project", "branch", "environment", "organization"]; type ConfigLevel = typeof configLevels[number]; /** * All fields that can be overridden at this level. */ declare const projectConfigSchema: yup.ObjectSchema<{}, yup.AnyObject, {}, "">; declare const branchConfigSchema: yup.ObjectSchema<{} & { rbac: { permissions?: Record | undefined; } | undefined> | undefined; defaultPermissions?: { teamCreator?: Record | undefined; teamMember?: Record | undefined; signUp?: Record | undefined; } | undefined; } | undefined; teams: { createPersonalTeamOnSignUp?: boolean | undefined; allowClientTeamCreation?: boolean | undefined; } | undefined; users: { allowClientUserDeletion?: boolean | undefined; } | undefined; apiKeys: { enabled?: { team?: boolean | undefined; user?: boolean | undefined; } | undefined; } | undefined; domains: { allowLocalhost?: boolean | undefined; } | undefined; auth: { allowSignUp?: boolean | undefined; password?: { allowSignIn?: boolean | undefined; } | undefined; otp?: { allowSignIn?: boolean | undefined; } | undefined; passkey?: { allowSignIn?: boolean | undefined; } | undefined; oauth?: { accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; } | undefined; } | undefined; emails: {}; }, yup.AnyObject, { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }, "">; declare const environmentConfigSchema: yup.ObjectSchema<{ rbac: { permissions?: Record | undefined; } | undefined> | undefined; defaultPermissions?: { teamCreator?: Record | undefined; teamMember?: Record | undefined; signUp?: Record | undefined; } | undefined; } | undefined; teams: { createPersonalTeamOnSignUp?: boolean | undefined; allowClientTeamCreation?: boolean | undefined; } | undefined; users: { allowClientUserDeletion?: boolean | undefined; } | undefined; apiKeys: { enabled?: { team?: boolean | undefined; user?: boolean | undefined; } | undefined; } | undefined; domains: (Omit<{ allowLocalhost?: boolean | undefined; }, "trustedDomains"> & { trustedDomains?: Record | undefined; }) | undefined; auth: (Omit<{ allowSignUp?: boolean | undefined; password?: { allowSignIn?: boolean | undefined; } | undefined; otp?: { allowSignIn?: boolean | undefined; } | undefined; passkey?: { allowSignIn?: boolean | undefined; } | undefined; oauth?: { accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; } | undefined; }, "oauth"> & { oauth?: (Omit<{ accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; }, never> & { providers?: Record | undefined; }) | undefined; }) | undefined; emails: Omit<{}, never> & { server: { password?: string | undefined; isShared?: boolean | undefined; host?: string | undefined; port?: number | undefined; username?: string | undefined; senderName?: string | undefined; senderEmail?: string | undefined; }; }; } & { auth: (Omit<{ allowSignUp?: boolean | undefined; password?: { allowSignIn?: boolean | undefined; } | undefined; otp?: { allowSignIn?: boolean | undefined; } | undefined; passkey?: { allowSignIn?: boolean | undefined; } | undefined; oauth?: { accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; } | undefined; }, "oauth"> & { oauth?: (Omit<{ accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; }, never> & { providers?: Record | undefined; }) | undefined; }) | undefined; emails: Omit<{}, never> & { server: { password?: string | undefined; isShared?: boolean | undefined; host?: string | undefined; port?: number | undefined; username?: string | undefined; senderName?: string | undefined; senderEmail?: string | undefined; }; }; domains: (Omit<{ allowLocalhost?: boolean | undefined; }, "trustedDomains"> & { trustedDomains?: Record | undefined; }) | undefined; }, yup.AnyObject, { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; auth: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; emails: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; }, "">; declare const organizationConfigSchema: yup.ObjectSchema<{ rbac: { permissions?: Record | undefined; } | undefined> | undefined; defaultPermissions?: { teamCreator?: Record | undefined; teamMember?: Record | undefined; signUp?: Record | undefined; } | undefined; } | undefined; teams: { createPersonalTeamOnSignUp?: boolean | undefined; allowClientTeamCreation?: boolean | undefined; } | undefined; users: { allowClientUserDeletion?: boolean | undefined; } | undefined; apiKeys: { enabled?: { team?: boolean | undefined; user?: boolean | undefined; } | undefined; } | undefined; domains: (Omit<{ allowLocalhost?: boolean | undefined; }, "trustedDomains"> & { trustedDomains?: Record | undefined; }) | undefined; auth: (Omit<{ allowSignUp?: boolean | undefined; password?: { allowSignIn?: boolean | undefined; } | undefined; otp?: { allowSignIn?: boolean | undefined; } | undefined; passkey?: { allowSignIn?: boolean | undefined; } | undefined; oauth?: { accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; } | undefined; }, "oauth"> & { oauth?: (Omit<{ accountMergeStrategy?: "link_method" | "raise_error" | "allow_duplicates" | undefined; providers?: Record | undefined; }, never> & { providers?: Record | undefined; }) | undefined; }) | undefined; emails: Omit<{}, never> & { server: { password?: string | undefined; isShared?: boolean | undefined; host?: string | undefined; port?: number | undefined; username?: string | undefined; senderName?: string | undefined; senderEmail?: string | undefined; }; }; } & {}, yup.AnyObject, { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; auth: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; emails: { rbac: { permissions: undefined; defaultPermissions: { teamCreator: undefined; teamMember: undefined; signUp: undefined; }; }; teams: { createPersonalTeamOnSignUp: undefined; allowClientTeamCreation: undefined; }; users: { allowClientUserDeletion: undefined; }; apiKeys: { enabled: { team: undefined; user: undefined; }; }; domains: { allowLocalhost: undefined; }; auth: { allowSignUp: undefined; password: { allowSignIn: undefined; }; otp: { allowSignIn: undefined; }; passkey: { allowSignIn: undefined; }; oauth: { accountMergeStrategy: undefined; providers: undefined; }; }; emails: {}; }; }, "">; declare const projectConfigDefaults: {}; declare const branchConfigDefaults: {}; declare const environmentConfigDefaults: {}; declare const organizationConfigDefaults: { rbac: { permissions: (key: string) => {}; defaultPermissions: { teamCreator: {}; teamMember: {}; signUp: {}; }; }; apiKeys: { enabled: { team: false; user: false; }; }; teams: { createPersonalTeamOnSignUp: false; allowClientTeamCreation: false; }; users: { allowClientUserDeletion: false; }; domains: { allowLocalhost: false; trustedDomains: (key: string) => { handlerPath: string; }; }; auth: { allowSignUp: true; password: { allowSignIn: false; }; otp: { allowSignIn: false; }; passkey: { allowSignIn: false; }; oauth: { accountMergeStrategy: "link_method"; providers: (key: string) => { isShared: true; allowSignIn: false; allowConnectedAccounts: false; }; }; }; emails: { server: { isShared: true; }; }; }; type DeepReplaceAllowFunctionsForObjects = T extends object ? { [K in keyof T]: DeepReplaceAllowFunctionsForObjects; } | ((arg: keyof T) => DeepReplaceAllowFunctionsForObjects) : T; type DeepReplaceFunctionsWithObjects = T extends (arg: infer K extends string) => infer R ? DeepReplaceFunctionsWithObjects> : (T extends object ? { [K in keyof T]: DeepReplaceFunctionsWithObjects; } : T); type ApplyDefaults unknown), C extends object> = DeepMerge, C>; declare function applyDefaults unknown), C extends object>(defaults: D, config: C): ApplyDefaults; type ProjectConfigNormalizedOverride = yup.InferType; type BranchConfigNormalizedOverride = yup.InferType; type EnvironmentConfigNormalizedOverride = yup.InferType; type OrganizationConfigNormalizedOverride = yup.InferType; type ProjectConfigStrippedNormalizedOverride = Omit; type BranchConfigStrippedNormalizedOverride = Omit; type EnvironmentConfigStrippedNormalizedOverride = Omit; type OrganizationConfigStrippedNormalizedOverride = OrganizationConfigNormalizedOverride; type ProjectConfigOverride = NormalizesTo; type BranchConfigOverride = NormalizesTo; type EnvironmentConfigOverride = NormalizesTo; type OrganizationConfigOverride = NormalizesTo; type ProjectConfigOverrideOverride = Config & DeepPartial; type BranchConfigOverrideOverride = Config & DeepPartial; type EnvironmentConfigOverrideOverride = Config & DeepPartial; type OrganizationConfigOverrideOverride = Config & DeepPartial; type ProjectIncompleteConfig = ProjectConfigNormalizedOverride; type BranchIncompleteConfig = ProjectIncompleteConfig & BranchConfigNormalizedOverride; type EnvironmentIncompleteConfig = BranchIncompleteConfig & EnvironmentConfigNormalizedOverride; type OrganizationIncompleteConfig = EnvironmentIncompleteConfig & OrganizationConfigNormalizedOverride; type ProjectRenderedConfig = PrettifyType>; type BranchRenderedConfig = PrettifyType>; type EnvironmentRenderedConfig = PrettifyType>; type OrganizationRenderedConfig = PrettifyType>; export { type ApplyDefaults, type BranchConfigNormalizedOverride, type BranchConfigOverride, type BranchConfigOverrideOverride, type BranchConfigStrippedNormalizedOverride, type BranchIncompleteConfig, type BranchRenderedConfig, type ConfigLevel, type DeepReplaceAllowFunctionsForObjects, type DeepReplaceFunctionsWithObjects, type EnvironmentConfigNormalizedOverride, type EnvironmentConfigOverride, type EnvironmentConfigOverrideOverride, type EnvironmentConfigStrippedNormalizedOverride, type EnvironmentIncompleteConfig, type EnvironmentRenderedConfig, type OrganizationConfigNormalizedOverride, type OrganizationConfigOverride, type OrganizationConfigOverrideOverride, type OrganizationConfigStrippedNormalizedOverride, type OrganizationIncompleteConfig, type OrganizationRenderedConfig, type ProjectConfigNormalizedOverride, type ProjectConfigOverride, type ProjectConfigOverrideOverride, type ProjectConfigStrippedNormalizedOverride, type ProjectIncompleteConfig, type ProjectRenderedConfig, applyDefaults, branchConfigDefaults, branchConfigSchema, configLevels, environmentConfigDefaults, environmentConfigSchema, organizationConfigDefaults, organizationConfigSchema, projectConfigDefaults, projectConfigSchema };