declare global {
  module "*.css";

  interface Env {
    ASSETS: Fetcher;
    D1: D1Database;
    DATA: KVNamespace;
    [k: string]: string;
  }

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

  interface EmotionCriticalToChunks {
    html: string;
    styles: { key: string; ids: string[]; css: string }[];
  }

  interface EmotionServer {
    constructStyleTagsFromChunks: (
      criticalData: EmotionCriticalToChunks
    ) => string;
    extractCriticalToChunks: (html: string) => EmotionCriticalToChunks;
  }

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

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

  interface InactivityNoticeProps {
    created_at: number;
    departments: string[];
    end: string;
    reason: string;
    start: string;
    user: {
      id: string;
      username: string;
    };
  }

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

export {};
