//FIrebase
import type { FirebaseApp } from 'firebase/app';
import type { Auth, RecaptchaVerifier } from 'firebase/auth';
import type { Firestore, CollectionReference } from 'firebase/firestore';
import type { FirebaseStorage } from 'firebase/storage';
import type { Functions } from 'firebase/functions';
import type { Analytics } from 'firebase/analytics';

export interface FirebasePlugin {
  firebaseApp: FirebaseApp;
  auth: Auth;
  db: Firestore;
  storage: FirebaseStorage;
  functions: Functions;
  analytics: Analytics;
  usersCollection: CollectionReference;
  wadizesCollection: CollectionReference;
  faqboardsCollection: CollectionReference;
  countersCollection: CollectionReference;
  attendsCollection: CollectionReference;
  noticesCollection: CollectionReference;
  videosCollection: CollectionReference;
  quizzesCollection: CollectionReference;
  coursesCollection: CollectionReference;
  progressesCollection: CollectionReference;
  usergroupsCollection: CollectionReference;
  surveysCollection: CollectionReference;
  questionsCollection: CollectionReference;
  programsCollection: CollectionReference;
  headersCollection: CollectionReference;
  certificatesCollection: CollectionReference;
  projectsCollection: CollectionReference;
  signInWithGoogle: () => Promise<any>;
  createRecaptchaVerifier: (elementId: string) => RecaptchaVerifier;
}

export interface FirebaseConfig {
  apiKey: string;
  authDomain: string;
  projectId: string;
  storageBucket: string;
  messagingSenderId: string;
  appId: string;
}
