import { OAuthCredential, User as FirebaseUser } from "@firebase/auth"; import { FirebaseApp } from "@firebase/app"; import { ProjectsApi } from "../api/projects"; import { FireCMSProject } from "./projects"; export type FireCMSBackend = { backendUid?: string; backendFirebaseApp?: FirebaseApp; backendApiHost: string; projectsApi: ProjectsApi; user: FirebaseUser | null; googleLogin: (includeGoogleAdminScopes?: boolean) => Promise; emailPasswordLogin: (email: string, password: string) => Promise; sendPasswordResetEmail: (email: string) => Promise; createUserWithEmailAndPassword: (email: string, password: string) => Promise; fetchSignInMethods: (email: string) => Promise; signOut: () => void; googleCredential?: OAuthCredential | null; getBackendAuthToken: () => Promise; permissionsNotGrantedError: boolean; availableProjectIds?: string[]; availableProjectsLoaded: boolean; availableProjectsLoading: boolean; availableProjectsError?: Error; authLoading: boolean; authProviderError?: any; loginLoading: boolean; getProject: (projectId: string) => Promise; projects: FireCMSProject[] | undefined; };