import { ConfigKey } from './config-keys';
import { ConfigGroupToggle, ConfigRegex, ConfigSecret, ConfigSelectOption } from './config-types';
export interface ConfigDefinitionsMap {
[ConfigKey.Name]: string;
[ConfigKey.Platform]: ConfigSelectOption;
[ConfigKey.ScpAddress]: string;
[ConfigKey.PlayerSlot]: number;
[ConfigKey.DefaultLanguage]: ConfigSelectOption;
[ConfigKey.SmtpEnabled]: ConfigGroupToggle;
[ConfigKey.SmtpServerHost]: string;
[ConfigKey.SmtpServerPort]: number;
[ConfigKey.SmtpServerUseSsl]: boolean;
[ConfigKey.SmtpVerificationEmailEnabled]: ConfigGroupToggle;
[ConfigKey.SmtpVerificationEmailAccountUsername]: string;
[ConfigKey.SmtpVerificationEmailAccountPassword]: ConfigSecret;
[ConfigKey.SmtpVerificationEmailAccountFromMail]: string;
[ConfigKey.SmtpVerificationEmailAccountFromName]: string;
[ConfigKey.AccountEmailRequired]: boolean;
[ConfigKey.AccountUsernameRegex]: ConfigRegex;
[ConfigKey.AccountPasswordRegex]: ConfigRegex;
[ConfigKey.AccountEmailVerificationRequired]: boolean;
[ConfigKey.AuthTokenLifetimeInMinutes]: number;
[ConfigKey.DiscordLoginFlowEnabled]: ConfigGroupToggle;
[ConfigKey.DiscordLoginFlowAutoLogin]: boolean;
[ConfigKey.DiscordLoginFlowInGameMethod]: ConfigSelectOption;
[ConfigKey.DiscordLoginFlowBotToken]: ConfigSecret;
[ConfigKey.DiscordLoginFlowGuildId]: string;
[ConfigKey.DiscordLoginFlowWhitelistRoleId]: ConfigSelectOption;
[ConfigKey.DiscordLoginFlowOAuthClientId]: string;
[ConfigKey.DiscordLoginFlowOAuthClientSecret]: ConfigSecret;
[ConfigKey.UsernamePasswordFlowEnabled]: ConfigGroupToggle;
[ConfigKey.UsernamePasswordFlowRegistrationEnabled]: boolean;
[ConfigKey.ExternalLoginFlowEnabled]: ConfigGroupToggle;
[ConfigKey.ExternalLoginFlowApiAddress]: string;
[ConfigKey.ExternalLoginFlowApiKey]: ConfigSecret;
[ConfigKey.ExternalLoginFlowIdentifierType]: ConfigSelectOption;
[ConfigKey.ExternalLoginFlowUseExternalInfo]: boolean;
[ConfigKey.MotivesSystemEnabled]: ConfigGroupToggle;
[ConfigKey.CharacterMinAge]: number;
[ConfigKey.CharacterMaxAge]: number;
[ConfigKey.CharacterFirstNameMinLength]: number;
[ConfigKey.CharacterFirstNameMaxLength]: number;
[ConfigKey.CharacterLastNameMinLength]: number;
[ConfigKey.CharacterLastNameMaxLength]: number;
[ConfigKey.CharacterFullNameValidationPattern]: ConfigRegex;
[ConfigKey.CharacterNameForbiddenWords]: string;
[ConfigKey.CharacterNationalityEnabled]: boolean;
[ConfigKey.CharacterMaxPerAccount]: number;
[ConfigKey.CharacterDefaultHunger]: number;
[ConfigKey.CharacterDefaultThirst]: number;
[ConfigKey.CharacterDefaultEnergy]: number;
[ConfigKey.CharacterDefaultHealth]: number;
[ConfigKey.CharacterDefaultMood]: number;
[ConfigKey.CharacterMotivesCriticalThreshold]: number;
[ConfigKey.CharacterMotivesHealthyHungerThreshold]: number;
[ConfigKey.CharacterMotivesHealthyThirstThreshold]: number;
[ConfigKey.CharacterMotivesHealthyEnergyThreshold]: number;
[ConfigKey.CharacterMotivesHealthyHealthThreshold]: number;
[ConfigKey.CharacterMotivesHealthyMoodThreshold]: number;
}
export type ConfigDefinitions = {
[K in ConfigKey]: ConfigDefinitionsMap[K];
};