import { SlashCommandBuilder, ChatInputCommandInteraction, PermissionResolvable, Client } from 'discord.js'; export interface SlashCommand { data: SlashCommandBuilder; 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: 'open' | 'in-progress' | 'closed'; claimedBy?: string; transcript?: string; } export interface ForumUser { discordId: string; forumUserId: string; username?: string; } export interface ForumRoleSync { discordRoleId: string; forumRoleId: string; } export interface ForumTicketLink { ticketId: string; forumThreadId?: string; }