/* Galvanic Corrosion - Rec Room custom server for communities. Copyright (C) 2025 @zombieb (Discord / proxnet Gitea) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ import type { PhotonRegionCodeNumber, PhotonRegionCodeString } from "../data/live/PhotonTypes.ts"; type RedisConfiguration = { host: string; port: number; username: string; password: string; db: number; }; type WebConfiguration = { port: number; host: string; publichost: string; securepublichost: boolean; }; type WebRootConfiguration = { api: WebConfiguration; socket: WebConfiguration; }; type PublicConfiguration = { serverName: string; serverId: string; owner: string; motd: string; levelScale: number; maxLevels: number; patches: string[]; photonRegionId: PhotonRegionCodeNumber | PhotonRegionCodeString; initialRoom: string | null; }; type LoggingConfiguration = { notfound: boolean; debug: boolean; network: boolean; }; type AuthConfiguration = { secret: string; /** * In Hours */ timeout: number; steamkey: string | null; }; type GeneralConfiguration = { /** In milliseconds */ watchdogTimeout: number; } export type GalvanicConfiguration = { redis: RedisConfiguration; web: WebRootConfiguration; public: PublicConfiguration; general: GeneralConfiguration; logging: LoggingConfiguration; auth: AuthConfiguration; };