import { SlashCommandBuilder, SlashCommandOptionsOnlyBuilder, SlashCommandSubcommandsOnlyBuilder, ChatInputCommandInteraction, PermissionResolvable, Client } from 'discord.js'; export interface SlashCommand { data: SlashCommandBuilder | SlashCommandOptionsOnlyBuilder | SlashCommandSubcommandsOnlyBuilder; execute: (interaction: ChatInputCommandInteraction, client: Client) => Promise; cooldown?: number; requiredPermissions?: PermissionResolvable[]; guildOnly?: boolean; } export interface EventHandler { name: string; once?: boolean; execute: (...args: any[]) => Promise | void; } export interface TicketRecord { id: string; userId: string; channelId: string; guildId: string; topic?: string; priority?: 'low' | 'normal' | 'high'; status: TicketStatus; claimedBy?: string; transcript?: string; firstClaimAt?: Date | null; firstResponseAt?: Date | null; kbSuggestionSentAt?: Date | null; createdAt?: Date; updatedAt?: Date; } export type TicketStatus = 'neu' | 'in_bearbeitung' | 'warten_auf_user' | 'erledigt' | 'open' | 'in-progress' | 'closed'; export interface ForumUser { discordId: string; forumUserId: string; username?: string; } export interface ForumRoleSync { discordRoleId: string; forumRoleId: string; } export interface ForumTicketLink { ticketId: string; forumThreadId?: string; }