declare global {
  module "*.css";

  interface Env {
    ASSETS: Fetcher;
    D1: D1Database;
    DATA: KVNamespace;

    [k: string]: string;
  }

  type RequestContext = EventContext<Env, string, { [k: string]: any }>;

  interface AppealCardProps {
    ban_reason: string;
    created_at: number;
    id: string;
    learned: string;
    open?: boolean;
    reason_for_unban: string;
    user: {
      id: string;
      username: string;
    };
  }

  interface GameAppealProps {
    created_at: number;
    id: string;
    reasonForUnban: string;
    roblox_id: number;
    roblox_username: string;
    whatHappened: string;
  }

  interface InactivityNoticeProps {
    created_at: number;
    decisions?: {
      DM?: boolean;
      ET?: boolean;
      FM?: boolean;
      WM?: boolean;
    };
    departments: string[];
    end: string;
    id: string;
    open: boolean;
    reason: string;
    start: string;
    user: {
      id: string;
      username: string;
    };
  }

  interface ReportCardProps {
    attachments: string[];
    created_at: number;
    description?: string;
    id: string;
    open: boolean;
    target_ids: number[];
    target_usernames: string[];
    user?: {
      id: string;
      username: string;
    };
  }
}

export {};
