import { Collection } from "@discordjs/collection" import { GuildScheduledEvent, Role, TextChannel } from "discord.js" export type Maybe = T | undefined | null export interface Player { name: string } export type supported_languages = "german" | "english" export interface localized_string { [k: string]: { [k in supported_languages]: string } } export class CustomError extends Error { private code: string public constructor(message: string, errorCode: string) { super(message) this.code = errorCode } public getCode() { return this.code } } export const errorCodes = { no_end_date: 'no_end_date', no_string_present: 'no_string_present', no_schedule: 'no_schedule', schedule_not_supported: 'schedule_not_supported', no_repetition_amount: 'no_repetition_amount', invalid_repetition_string: 'invalid_repetition_string', no_creator_id: "no_creator_id", } export interface ChangedRoles { addedRoles: Collection removedRoles: Collection } export interface JellyfinConfig { jellyfinUrl: string, jellyfinToken: string, movieCollectionId: string, collectionUser: string } export type PermissionLevel = "VIEWER" | "ADMIN" | "TEMPORARY" export interface voteMessageInputInformation { movies: string[], startDate: Date, event: GuildScheduledEvent, announcementChannel: TextChannel, pinAfterSending: boolean, }