/** * 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';