interface earthquakeTypes { reconnectTimes: number; websocketUrl: string; areasCsvUrl: string; maxScaleMin: number; } interface weatherTypes { splitCount: number; } interface stopsTypes { start: number; stop: number; } interface timeTypes { stopTimes: stopsTypes; } interface emergencyMailFullTypes { isEnabled: true; host: string; port: number; user: string; password: string; secure: boolean; to: string | string[]; } interface emergencyMailMinTypes { isEnabled: false; mail: undefined; } interface emergencyFullTypes { isEnabled: true; mail: emergencyMailFullTypes | emergemcyMailMinTypes; } interface emergencyMinTypes { isEnabled: false; } interface legalTypes { terms: string; privacy: string; } interface PanelFullTypes { isEnabled: true; port: number; } interface PanelMinTypes { isEnabled: false; } interface adminTypes { name: string; showMail: string | false; panel: PanelFullTypes | PanelMinTypes; } interface reportTypes { isEnabled: boolean; message: string; } interface uwuzuTypes { apiToken: string; clientToken?: string; host: string; } export interface configTypes { time: timeTypes, earthquake: earthquakeTypes; weather: weatherTypes; emergency: emergencyFullTypes | emergencyMinTypes; legal: legalTypes; admin: adminTypes; report: reportTypes; uwuzu: uwuzuTypes; }