apiHooks: {    addNewStaffUser: (        token: string,        email: string,        firstname: string,        lastname: string,        staff: number,        roleid: number,    ) => Promise<any>;    addNewStudentToWorklog: (        token: string,        courseId: string,        studentData: {            email: string;            first_name: string;            last_name: string;            studentGroupId: null | number;            studentnumber: string;        },    ) => Promise<any>;    addNewStudentUser: (        token: string,        email: string,        studentnumber: string,        firstname: string,        lastname: string,        studentGroupId: undefined | null | number,    ) => Promise<any>;    addNewStudentUserCourse: (        token: string,        email: string,        studentnumber: string,        firstname: string,        lastname: string,        studentGroupId: undefined | null | number,        courseId: undefined | null | number,    ) => Promise<any>;    addStudentsToWorkLogGroup: (        groupId: number,        studentIds: number[],        token: string,    ) => Promise<any>;    assignStudentToPracticum: (        practicumId: number,        userId: number,        token: string,    ) => Promise<any>;    changeRoleId: (        email: string,        roleId: string,        token: string,    ) => Promise<any>;    checkCourseCode: (code: string, token: string) => Promise<any>;    checkIfCourseExists: (inputs: checkIfCourseExists) => Promise<any>;    checkIfTopicGroupWithEmailExists: (        token: string,        email: string,        topicGroup: string,    ) => Promise<any>;    checkStaffByEmail: (email: string, token: string) => Promise<any>;    checkStudentEmailExists: (email: string, token: string) => Promise<any>;    checkStudentExistingGroup: (        userId: number,        courseId: number,        token: string,    ) => Promise<any>;    checkStudentNumberExists: (        studentnumber: string,        token: string,    ) => Promise<any>;    checkWorklogCode: (code: string, token: string) => Promise<any>;    closeLectureByLectureId: (lectureid: string, token: string) => Promise<any>;    closeWorkLogEntry: (        worklogId: number,        token: string,        description?: string,    ) => Promise<any>;    createCourse: (        courseData: CreateCourseInputs,        token: string,    ) => Promise<any>;    CreateLecture: (        topicname: string,        course: { code: string },        start_date: Date,        end_date: Date,        timeofday: string,        state: string,        token: string,    ) => Promise<any>;    createPracticumCourse: (        practicumData: PracticumCreate,        token: string,    ) => Promise<any>;    createWorkLogCourse: (        worklog: {            code: string;            description: string;            endDate: string;            instructorEmail: string;            instructors: { email: string }[];            name: string;            requiredHours: number;            startDate: string;            studentList: string[];        },        token: string,    ) => Promise<any>;    createWorkLogEntry: (        params: {            courseId: number;            description: string;            endTime: Date;            startTime: Date;            status?: string | number;            userId: string | number;        },        token: string,    ) => Promise<any>;    createWorkLogEntryPracticum: (        params: {            courseId: number;            description: string;            endTime: Date;            startTime: Date;            status?: string | number;            userId: string | number;        },        token: string,    ) => Promise<any>;    createWorkLogGroup: (        courseId: string,        name: string,        token: string,    ) => Promise<any>;    deleteAttendanceByAttendanceId: (        token: string,        attendanceid: number,    ) => Promise<any>;    deleteCourse: (courseId: number, token: string) => Promise<any>;    deleteLectureByLectureId: (        lectureid: string,        token: string,    ) => Promise<any>;    deletePracticum: (practicumId: number, token: string) => Promise<any>;    deleteStudentFromCourse: (        token: string,        usercourseid: undefined | number,    ) => Promise<any>;    deleteTopicGroupAndTopicsByUserid: (        selectedGroup: any,        token: string,    ) => Promise<any>;    deleteUserFeedback: (feedbackId: number, token: string) => Promise<any>;    deleteWorklog: (worklogId: number, token: null | string) => Promise<any>;    deleteWorkLogEntry: (entryId: number, token: string) => Promise<any>;    excelInput: (inputs: CreateCourseFile, token: string) => Promise<any>;    fetchAllLectures: (token: string) => Promise<any>;    fetchAllRoles: (token: string) => Promise<any>;    fetchAllRolesSpecial: (token: string) => Promise<any>;    fetchAllStudents: (token: string) => Promise<any>;    fetchAttendances: (        token: string,        courseid: string,        lectureid: string,    ) => Promise<any>;    fetchErrorLogs: (token: string, lineLimit: number) => Promise<any>;    fetchLogs: (token: string, lineLimit: number) => Promise<any>;    fetchPaginatedStudents: (        token: string,        limit?: number,        page?: number,    ) => Promise<any>;    fetchServerSettings: (token: string) => Promise<any>;    fetchStudentGroups: (token: string) => Promise<any>;    fetchStudentsPaginationByInstructorId: (        userId: number,        token: string,        limit?: number,        page?: number,    ) => Promise<any>;    fetchTeacherOwnLectures: (teacherId: string, token: string) => Promise<any>;    fetchUserById: (userid: number, token: string) => Promise<any>;    fetchUserByIdEdit: (userid: number, token: string) => Promise<any>;    fetchUsers: (token: string) => Promise<any>;    fetchUsersCourse: (token: string) => Promise<any>;    getActiveCoursesByStudentEmail: (        email: string,        token: string,    ) => Promise<any>;    getActiveWorkLogEntries: (        userid: string | number,        token: string,    ) => Promise<any>;    getAllCourseInfoByUserEmail: (token: string) => Promise<any>;    getAllCourses: (token: string) => Promise<any>;    getAllCoursesByInstructorEmail: (        email: string,        token: string,    ) => Promise<any>;    getAllPracticums: (token: string) => Promise<any>;    getAllStudentsAttendance: (token: string) => Promise<ActivityResponse>;    getAllTopicGroupsAndTopicsInsideThem: (token: string) => Promise<any>;    getAllTopicGroupsAndTopicsInsideThemByUserid: (        email: string,        token: string,    ) => Promise<any>;    getAllWorkLogEntries: (userId: number, token: string) => Promise<any>;    getAttendanceInfoByUsercourseid: (        usercourseid: number,        token: string,    ) => Promise<any>;    getAttendanceThreshold: (token: string) => Promise<any>;    getCourseCounts: (token: string) => Promise<any>;    getCourseDetailByCourseId: (        courseId: string,        token: string,    ) => Promise<any>;    getCourseReservations: (        inputs: getCourseReservations,        token: string,    ) => Promise<any>;    getCourses: (token: string) => Promise<any>;    getDetailsByCourseId: (courseId: string, token: string) => Promise<any>;    getLectureAndAttendanceCount: (token: string) => Promise<any>;    getLectureInfo: (lectureid: string, token: string) => Promise<any>;    getLecturesAndAttendances: (        courseId: undefined | string,        token: string,    ) => Promise<any>;    getOpenLecturesByCourseid: (        courseid: undefined | string | () => string,        token: string,    ) => Promise<any>;    getOpenLecturesByTeacher: (        teacherId: number,        token: string,    ) => Promise<any>;    getPracticumDetails: (practicumId: number, token: string) => Promise<any>;    getPracticumsByInstructor: (userId: number, token: string) => Promise<any>;    getRoleCounts: (token: string) => Promise<any>;    getServerStatus: (token: string) => Promise<any>;    getStudentAndTopicsByUsercourseid: (        token: string,        usercourseid: number,    ) => Promise<any>;    getStudentAttendance: (        userid: number,        token: string,    ) => Promise<ActivityResponse>;    getStudentPracticum: (email: string, token: string) => Promise<any>;    getStudentsByCourseId: (courseId: string, token: string) => Promise<any>;    getStudentsByInstructorId: (        instructorId: number,        token: string,    ) => Promise<any>;    getUserFeedback: (token: string) => Promise<any>;    getUserInfoByToken: (token: string) => Promise<any>;    getUserInfoByUserid: (token: string, id: string) => Promise<any>;    getWorklogCounts: (token: string) => Promise<any>;    getWorkLogCourseDetail: (id: string, token: string) => Promise<any>;    getWorkLogCourses: (token: string) => Promise<any>;    getWorkLogCoursesByInstructor: (        email: string,        token: string,    ) => Promise<any>;    getWorkLogDetail: (courseId: string, token: string) => Promise<any>;    getWorkLogEntriesByPracticum: (        practicumId: number,        token: string,    ) => Promise<any>;    getWorkLogGroupDetails: (        courseId: number,        groupId: number,        token: string,    ) => Promise<any>;    getWorkLogGroupsByCourse: (courseId: string, token: string) => Promise<any>;    getWorkLogGroupStudents: (groupId: number, token: string) => Promise<any>;    getWorkLogStats: (        userId: number,        token: string,        courseId?: number,    ) => Promise<any>;    getWorkLogStudentsByCourse: (        courseId: string,        token: string,    ) => Promise<any>;    handleMicrosoftCallback: (code: string) => Promise<any>;    initiateMicrosoftLogin: () => Promise<any>;    insertStudentToGroup: (        userId: number,        groupId: number,        token: string,    ) => Promise<any>;    modifyCourse: (        token: null | string,        courseId: undefined | string,        modifiedData: { [key: string]: any },    ) => Promise<any>;    modifyWorkLog: (        token: string,        worklogId: undefined | string,        modifiedData: {            code: string;            description: string;            end_date: string;            instructors: string[];            name: string;            required_hours: number;            start_date: string;        },    ) => Promise<any>;    postLogin: (inputs: LoginInputs) => Promise<any>;    postUserFeedback: (        inputs: { text: string; topic: string; userId: number },        token: string,    ) => Promise<any>;    removeStudentFromGroup: (        groupId: number,        studentId: number,        token: string,    ) => Promise<any>;    testOpenDataConnection: (token: string) => Promise<any>;    updateAttendanceStatus: (        attendanceid: number,        status: number,        token: null | string,    ) => Promise<any>;    updateGdprStatus: (userid: number, token: string) => Promise<any>;    updateOwnedTopicgroupandtheirtopics: (        topicGroup: any,        topics: any,        email: string,        token: string,    ) => Promise<any>;    updatePracticum: (        practicumId: number,        modifiedData: {            code: string;            description: string;            end_date: string;            instructors: string[];            name: string;            required_hours: number;            start_date: string;        },        token: string,    ) => Promise<any>;    updateServerSettings: (        speedofhash: number,        leewayspeed: number,        timeouttime: number,        attendancethreshold: number,        token: string,    ) => Promise<any>;    updateStudentCourses: (        token: string,        userid: undefined | number,        courseid: undefined | number,    ) => Promise<any>;    updateUser: (token: string, user: any) => Promise<any>;    updateUserCourseTopics: (        token: string,        usercourseid: number,        modifiedTopics: any,    ) => Promise<any>;    updateUserEdit: (token: string, user: any) => Promise<any>;    updateUserLanguage: (        email: string,        language: string,        token: string,    ) => Promise<any>;    updateWorkLogEntry: (        entryId: number,        updatedData: Partial<            {                description: string;                endTime: Date;                startTime: Date;                status: number;            },        >,        token: string,    ) => Promise<any>;} = ... Type declaration
- addNewStaffUser: (
 token: string,
 email: string,
 firstname: string,
 lastname: string,
 staff: number,
 roleid: number,
 ) => Promise<any>
- addNewStudentToWorklog: (
 token: string,
 courseId: string,
 studentData: {
 email: string;
 first_name: string;
 last_name: string;
 studentGroupId: null | number;
 studentnumber: string;
 },
 ) => Promise<any>
- addNewStudentUser: (
 token: string,
 email: string,
 studentnumber: string,
 firstname: string,
 lastname: string,
 studentGroupId: undefined | null | number,
 ) => Promise<any>
- addNewStudentUserCourse: (
 token: string,
 email: string,
 studentnumber: string,
 firstname: string,
 lastname: string,
 studentGroupId: undefined | null | number,
 courseId: undefined | null | number,
 ) => Promise<any>
- addStudentsToWorkLogGroup: (groupId: number, studentIds: number[], token: string) => Promise<any>
- assignStudentToPracticum: (practicumId: number, userId: number, token: string) => Promise<any>
- changeRoleId: (email: string, roleId: string, token: string) => Promise<any>
- checkCourseCode: (code: string, token: string) => Promise<any>
- checkIfCourseExists: (inputs: checkIfCourseExists) => Promise<any>
- checkIfTopicGroupWithEmailExists: (token: string, email: string, topicGroup: string) => Promise<any>
- checkStaffByEmail: (email: string, token: string) => Promise<any>
- checkStudentEmailExists: (email: string, token: string) => Promise<any>
- checkStudentExistingGroup: (userId: number, courseId: number, token: string) => Promise<any>
- checkStudentNumberExists: (studentnumber: string, token: string) => Promise<any>
- checkWorklogCode: (code: string, token: string) => Promise<any>
- closeLectureByLectureId: (lectureid: string, token: string) => Promise<any>
- closeWorkLogEntry: (worklogId: number, token: string, description?: string) => Promise<any>
- createCourse: (courseData: CreateCourseInputs, token: string) => Promise<any>
- CreateLecture: (
 topicname: string,
 course: { code: string },
 start_date: Date,
 end_date: Date,
 timeofday: string,
 state: string,
 token: string,
 ) => Promise<any>
- createPracticumCourse: (practicumData: PracticumCreate, token: string) => Promise<any>
- createWorkLogCourse: (
 worklog: {
 code: string;
 description: string;
 endDate: string;
 instructorEmail: string;
 instructors: { email: string }[];
 name: string;
 requiredHours: number;
 startDate: string;
 studentList: string[];
 },
 token: string,
 ) => Promise<any>
- createWorkLogEntry: (
 params: {
 courseId: number;
 description: string;
 endTime: Date;
 startTime: Date;
 status?: string | number;
 userId: string | number;
 },
 token: string,
 ) => Promise<any>
- createWorkLogEntryPracticum: (
 params: {
 courseId: number;
 description: string;
 endTime: Date;
 startTime: Date;
 status?: string | number;
 userId: string | number;
 },
 token: string,
 ) => Promise<any>
- createWorkLogGroup: (courseId: string, name: string, token: string) => Promise<any>
- deleteAttendanceByAttendanceId: (token: string, attendanceid: number) => Promise<any>
- deleteCourse: (courseId: number, token: string) => Promise<any>
- deleteLectureByLectureId: (lectureid: string, token: string) => Promise<any>
- deletePracticum: (practicumId: number, token: string) => Promise<any>
- deleteStudentFromCourse: (token: string, usercourseid: undefined | number) => Promise<any>
- deleteTopicGroupAndTopicsByUserid: (selectedGroup: any, token: string) => Promise<any>
- deleteUserFeedback: (feedbackId: number, token: string) => Promise<any>
- deleteWorklog: (worklogId: number, token: null | string) => Promise<any>
- deleteWorkLogEntry: (entryId: number, token: string) => Promise<any>
- excelInput: (inputs: CreateCourseFile, token: string) => Promise<any>
- fetchAllLectures: (token: string) => Promise<any>
- fetchAllRoles: (token: string) => Promise<any>
- fetchAllRolesSpecial: (token: string) => Promise<any>
- fetchAllStudents: (token: string) => Promise<any>
- fetchAttendances: (token: string, courseid: string, lectureid: string) => Promise<any>
- fetchErrorLogs: (token: string, lineLimit: number) => Promise<any>
- fetchLogs: (token: string, lineLimit: number) => Promise<any>
- fetchPaginatedStudents: (token: string, limit?: number, page?: number) => Promise<any>
- fetchServerSettings: (token: string) => Promise<any>
- fetchStudentGroups: (token: string) => Promise<any>
- fetchStudentsPaginationByInstructorId: (userId: number, token: string, limit?: number, page?: number) => Promise<any>
- fetchTeacherOwnLectures: (teacherId: string, token: string) => Promise<any>
- fetchUserById: (userid: number, token: string) => Promise<any>
- fetchUserByIdEdit: (userid: number, token: string) => Promise<any>
- fetchUsers: (token: string) => Promise<any>
- fetchUsersCourse: (token: string) => Promise<any>
- getActiveCoursesByStudentEmail: (email: string, token: string) => Promise<any>
- getActiveWorkLogEntries: (userid: string | number, token: string) => Promise<any>
- getAllCourseInfoByUserEmail: (token: string) => Promise<any>
- getAllCourses: (token: string) => Promise<any>
- getAllCoursesByInstructorEmail: (email: string, token: string) => Promise<any>
- getAllPracticums: (token: string) => Promise<any>
- getAllStudentsAttendance: (token: string) => Promise<ActivityResponse>
- getAllTopicGroupsAndTopicsInsideThem: (token: string) => Promise<any>
- getAllTopicGroupsAndTopicsInsideThemByUserid: (email: string, token: string) => Promise<any>
- getAllWorkLogEntries: (userId: number, token: string) => Promise<any>
- getAttendanceInfoByUsercourseid: (usercourseid: number, token: string) => Promise<any>
- getAttendanceThreshold: (token: string) => Promise<any>
- getCourseCounts: (token: string) => Promise<any>
- getCourseDetailByCourseId: (courseId: string, token: string) => Promise<any>
- getCourseReservations: (inputs: getCourseReservations, token: string) => Promise<any>
- getCourses: (token: string) => Promise<any>
- getDetailsByCourseId: (courseId: string, token: string) => Promise<any>
- getLectureAndAttendanceCount: (token: string) => Promise<any>
- getLectureInfo: (lectureid: string, token: string) => Promise<any>
- getLecturesAndAttendances: (courseId: undefined | string, token: string) => Promise<any>
- getOpenLecturesByCourseid: (courseid: undefined | string | () => string, token: string) => Promise<any>
- getOpenLecturesByTeacher: (teacherId: number, token: string) => Promise<any>
- getPracticumDetails: (practicumId: number, token: string) => Promise<any>
- getPracticumsByInstructor: (userId: number, token: string) => Promise<any>
- getRoleCounts: (token: string) => Promise<any>
- getServerStatus: (token: string) => Promise<any>
- getStudentAndTopicsByUsercourseid: (token: string, usercourseid: number) => Promise<any>
- getStudentAttendance: (userid: number, token: string) => Promise<ActivityResponse>
- getStudentPracticum: (email: string, token: string) => Promise<any>
- getStudentsByCourseId: (courseId: string, token: string) => Promise<any>
- getStudentsByInstructorId: (instructorId: number, token: string) => Promise<any>
- getUserFeedback: (token: string) => Promise<any>
- getUserInfoByToken: (token: string) => Promise<any>
- getUserInfoByUserid: (token: string, id: string) => Promise<any>
- getWorklogCounts: (token: string) => Promise<any>
- getWorkLogCourseDetail: (id: string, token: string) => Promise<any>
- getWorkLogCourses: (token: string) => Promise<any>
- getWorkLogCoursesByInstructor: (email: string, token: string) => Promise<any>
- getWorkLogDetail: (courseId: string, token: string) => Promise<any>
- getWorkLogEntriesByPracticum: (practicumId: number, token: string) => Promise<any>
- getWorkLogGroupDetails: (courseId: number, groupId: number, token: string) => Promise<any>
- getWorkLogGroupsByCourse: (courseId: string, token: string) => Promise<any>
- getWorkLogGroupStudents: (groupId: number, token: string) => Promise<any>
- getWorkLogStats: (userId: number, token: string, courseId?: number) => Promise<any>
- getWorkLogStudentsByCourse: (courseId: string, token: string) => Promise<any>
- handleMicrosoftCallback: (code: string) => Promise<any>
- initiateMicrosoftLogin: () => Promise<any>
- insertStudentToGroup: (userId: number, groupId: number, token: string) => Promise<any>
- modifyCourse: (
 token: null | string,
 courseId: undefined | string,
 modifiedData: { [key: string]: any },
 ) => Promise<any>
- modifyWorkLog: (
 token: string,
 worklogId: undefined | string,
 modifiedData: {
 code: string;
 description: string;
 end_date: string;
 instructors: string[];
 name: string;
 required_hours: number;
 start_date: string;
 },
 ) => Promise<any>
- postLogin: (inputs: LoginInputs) => Promise<any>
- postUserFeedback: (
 inputs: { text: string; topic: string; userId: number },
 token: string,
 ) => Promise<any>
- removeStudentFromGroup: (groupId: number, studentId: number, token: string) => Promise<any>
- testOpenDataConnection: (token: string) => Promise<any>
- updateAttendanceStatus: (attendanceid: number, status: number, token: null | string) => Promise<any>
- updateGdprStatus: (userid: number, token: string) => Promise<any>
- updateOwnedTopicgroupandtheirtopics: (topicGroup: any, topics: any, email: string, token: string) => Promise<any>
- updatePracticum: (
 practicumId: number,
 modifiedData: {
 code: string;
 description: string;
 end_date: string;
 instructors: string[];
 name: string;
 required_hours: number;
 start_date: string;
 },
 token: string,
 ) => Promise<any>
- updateServerSettings: (
 speedofhash: number,
 leewayspeed: number,
 timeouttime: number,
 attendancethreshold: number,
 token: string,
 ) => Promise<any>
- updateStudentCourses: (
 token: string,
 userid: undefined | number,
 courseid: undefined | number,
 ) => Promise<any>
- updateUser: (token: string, user: any) => Promise<any>
- updateUserCourseTopics: (token: string, usercourseid: number, modifiedTopics: any) => Promise<any>
- updateUserEdit: (token: string, user: any) => Promise<any>
- updateUserLanguage: (email: string, language: string, token: string) => Promise<any>
- updateWorkLogEntry: (
 entryId: number,
 updatedData: Partial<
 { description: string; endTime: Date; startTime: Date; status: number },
 >,
 token: string,
 ) => Promise<any>