/**
 * Firebase Services
 *
 * Servicios reutilizables para integración con Firebase.
 *
 * @example
 * ```typescript
 * // En main.ts
 * import { provideValtechFirebase } from 'valtech-components';
 *
 * bootstrapApplication(AppComponent, {
 *   providers: [
 *     provideValtechFirebase({
 *       firebase: environment.firebase,
 *       persistence: true,
 *     }),
 *   ],
 * });
 *
 * // En componentes
 * import { FirebaseService, FirestoreService } from 'valtech-components';
 *
 * @Component({...})
 * export class MyComponent {
 *   private firebase = inject(FirebaseService);
 *   private firestore = inject(FirestoreService);
 * }
 * ```
 */
export * from './types';
export { VALTECH_FIREBASE_CONFIG, hasEmulators, provideValtechFirebase } from './config';
export { collections, createFirebaseConfig, isEmulatorMode, storagePaths, type AppId, type CreateFirebaseConfigOptions, } from './shared-config';
export { FirebaseService } from './firebase.service';
export { FirestoreService } from './firestore.service';
export { CollectionOptions, FirestoreCollection, FirestoreCollectionFactory, SubCollectionRef, TypedCollection, } from './firestore-collection';
export { QueryBuilder, query } from './utils/query-builder';
export { buildPath, extractPathParams, getCollectionPath, getDocumentId, isCollectionPath, isDocumentPath, isValidPath, joinPath, } from './utils/path-builder';
export { StorageService } from './storage.service';
export { MessagingService, type EnablePushOptions, type RegisterDeviceFn, } from './messaging.service';
export { NotificationDocument, NotificationsService } from './notifications.service';
export { AnalyticsService } from './analytics.service';
export { AnalyticsRouterTracker } from './analytics-router-tracker';
export { AnalyticsErrorHandler } from './analytics-error-handler';
export * from './analytics-types';
