import { DocumentData } from "firebase/firestore"; import { TypedUseSelectorHook } from "react-redux"; import { RootState } from "./config"; import { Job } from "./features/jobs/jobsSlice"; import { Address, Application, CohortData, Contact, EmailTemplate, FileItem, InstituteData, PlacementListing, ProviderData, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions"; export declare const useAppSelector: TypedUseSelectorHook; export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch | undefined; values: { [key: string]: { [key: string]: unknown; }; }; }; activePlacement: { status: string; values: StudentPlacementData | undefined; }; jobs: { values: { [jobId: string]: Job; }; }; logs: { status: string; values: { [key: string]: DocumentData; }; }; } & import("redux-persist/es/persistReducer").PersistPartial, undefined, import("redux").AnyAction> & import("redux").Dispatch; export declare function useStudent({ user }: { user: UserData; }): { error: string; contacts?: undefined; placements?: undefined; applications?: undefined; files?: undefined; } | { contacts: { add: (contactForm: Contact) => Promise | import("@reduxjs/toolkit").PayloadAction>; update: (contactId: string, data: Partial) => Promise | import("@reduxjs/toolkit").PayloadAction>; delete: (contactId: string) => Promise | import("@reduxjs/toolkit").PayloadAction>; contacts: { [key: string]: { [key: string]: unknown; }; }; fetchContacts: () => void; getById: (item: string) => Promise; }; placements: { add: (formData: StudentPlacementData) => Promise; update: (placementId: string, attributes: Partial) => Promise; delete: (id: string) => Promise; getUserPlacements: () => Promise | { [k: string]: any; }>; getPlacementsStart: (start: Date, end: Date) => Promise<{ [key: string]: StudentPlacementData; }>; getPlacementsEnd: (end: Date) => Promise<{ [key: string]: StudentPlacementData; }>; activePlacement: StudentPlacementData | undefined; editActivePlacement: (attributes: Partial) => { payload: any; type: "activePlacement/editActivePlacement"; }; updateActivePlacement: () => void; updateUpcomingPlacement: () => void; fetchUpcomingPlacements: () => void; fetchCompletedPlacements: () => void; dispatchActivePlacement: () => void; upcoming: StudentPlacementData | undefined; upcomingPlacements: { [key: string]: StudentPlacementData; }; completedPlacements: { [key: string]: StudentPlacementData; }; getById: (item: string) => Promise; }; applications: { [key: string]: Application & { listing: PlacementListing | false; provider: ProviderData | false; address: Address; }; } | undefined; files: { fetchFiles: (oId: string) => void; uploadDocument: (e: { name: string; }, oId: string) => Promise; uploadedDocument: any; uploadFile: (e: any, oId: string) => Promise; removeFile: (file: string) => Promise; files: [string, FileItem][] | undefined; }; error?: undefined; }; export declare function useInstituteStaff({ user }: { user: UserData; }): { error: string; jobs?: undefined; institute?: undefined; userGroups?: undefined; forms?: undefined; cohorts?: undefined; emailTemplates?: undefined; } | { jobs: { setJobs: (jobs: { [jobId: string]: Job; }) => Promise<{ payload: any; type: "jobs/setJobs"; }>; addJob: ({ job, jobId }: { job: Partial; jobId: string; }) => Promise<{ payload: any; type: "jobs/addJob"; }>; setMarkRead: (payload: any) => Promise<{ payload: any; type: "jobs/setMarkRead"; }>; setJobStatus: ({ jobId, status }: { jobId: string; status: string; }) => Promise<{ payload: any; type: "jobs/setJobStatus"; }>; updateJob: ({ jobId, data }: { jobId: string; data: string; }) => Promise<{ payload: any; type: "jobs/updateJob"; }>; getById: (id: string) => Promise; }; institute: InstituteData | undefined; userGroups: { [key: string]: UserGroupData; } | undefined; forms: { [key: string]: unknown; } | undefined; cohorts: { [key: string]: CohortData; } | undefined; emailTemplates: { [key: string]: EmailTemplate; } | undefined; error?: undefined; }; export declare function useInstitute({ user }: { user: UserData; }): { error: string; userGroups?: undefined; forms?: undefined; institute?: undefined; } | { userGroups: { [key: string]: UserGroupData; } | undefined; forms: { [key: string]: unknown; } | undefined; institute: InstituteData | undefined; error?: undefined; }; export declare function useInstituteStudent({ user }: { user: UserData; }): { error: string; contacts?: undefined; placements?: undefined; institute?: undefined; userGroups?: undefined; forms?: undefined; cohorts?: undefined; applications?: undefined; getPlacementListings?: undefined; files?: undefined; logs?: undefined; } | { contacts: { add: (contactForm: Contact) => Promise | import("@reduxjs/toolkit").PayloadAction>; update: (contactId: string, data: Partial) => Promise | import("@reduxjs/toolkit").PayloadAction>; delete: (contactId: string) => Promise | import("@reduxjs/toolkit").PayloadAction>; contacts: { [key: string]: { [key: string]: unknown; }; }; fetchContacts: () => void; getById: (item: string) => Promise; } | undefined; placements: { add: (formData: StudentPlacementData) => Promise; update: (placementId: string, attributes: Partial) => Promise; delete: (id: string) => Promise; getUserPlacements: () => Promise | { [k: string]: any; }>; getPlacementsStart: (start: Date, end: Date) => Promise<{ [key: string]: StudentPlacementData; }>; getPlacementsEnd: (end: Date) => Promise<{ [key: string]: StudentPlacementData; }>; activePlacement: StudentPlacementData | undefined; editActivePlacement: (attributes: Partial) => { payload: any; type: "activePlacement/editActivePlacement"; }; updateActivePlacement: () => void; updateUpcomingPlacement: () => void; fetchUpcomingPlacements: () => void; fetchCompletedPlacements: () => void; dispatchActivePlacement: () => void; upcoming: StudentPlacementData | undefined; upcomingPlacements: { [key: string]: StudentPlacementData; }; completedPlacements: { [key: string]: StudentPlacementData; }; getById: (item: string) => Promise; } | undefined; institute: InstituteData | undefined; userGroups: { [key: string]: UserGroupData; } | undefined; forms: { [key: string]: unknown; } | undefined; cohorts: { [key: string]: CohortData; } | undefined; applications: { [key: string]: Application & { listing: PlacementListing | false; provider: ProviderData | false; address: Address; }; } | undefined; getPlacementListings: () => Promise<{ [k: string]: PlacementListing; }>; files: { fetchFiles: (oId: string) => void; uploadDocument: (e: { name: string; }, oId: string) => Promise; uploadedDocument: any; uploadFile: (e: any, oId: string) => Promise; removeFile: (file: string) => Promise; files: [string, FileItem][] | undefined; } | undefined; logs: { values: { [key: string]: DocumentData; }; fetchLogs: (placementId: string, selectedDate: string) => Promise; saveLog: (value: any[] | { [key: string]: unknown; }, selectedDate: string, userType: string, placementId: string) => Promise; addLogFile: (files: { file: FileList; }, userType: string, selectedDate: string, placementId: string) => Promise; deleteLogFile: (openFile: { name: string; url: string; }, userType: string, selectedDate: string, placementId: string) => Promise; }; error?: undefined; }; export declare function useProvider({ user }: { user: UserData; }): { error: string; jobs?: undefined; } | { jobs: { setJobs: (jobs: { [jobId: string]: Job; }) => Promise<{ payload: any; type: "jobs/setJobs"; }>; addJob: ({ job, jobId }: { job: Partial; jobId: string; }) => Promise<{ payload: any; type: "jobs/addJob"; }>; setMarkRead: (payload: any) => Promise<{ payload: any; type: "jobs/setMarkRead"; }>; setJobStatus: ({ jobId, status }: { jobId: string; status: string; }) => Promise<{ payload: any; type: "jobs/setJobStatus"; }>; updateJob: ({ jobId, data }: { jobId: string; data: string; }) => Promise<{ payload: any; type: "jobs/updateJob"; }>; getById: (id: string) => Promise; } | undefined; error?: undefined; };