import { BaseErrorTrackingProvider } from '../../base-error-tracking-provider.js'; import type { ProviderConfig, ConsentSettings } from '../../../types/provider.js'; import type { ErrorContext } from '../../../definitions.js'; interface FirebaseCrashlyticsConfig extends ProviderConfig { apiKey: string; authDomain: string; projectId: string; storageBucket?: string; messagingSenderId?: string; appId: string; measurementId?: string; crashlyticsCollectionEnabled?: boolean; automaticDataCollectionEnabled?: boolean; userId?: string; customKeys?: Record; customAttributes?: Record; } declare global { interface Window { firebase?: any; } } export declare class FirebaseCrashlyticsProvider extends BaseErrorTrackingProvider { readonly id = "firebase-crashlytics"; readonly name = "Firebase Crashlytics"; readonly version = "1.0.0"; private firebase?; private crashlytics?; private firebaseApp?; private _crashlyticsConfig; private scriptLoaded; protected doInitialize(config: FirebaseCrashlyticsConfig): Promise; private loadFirebaseSDK; protected doShutdown(): Promise; protected doUpdateConsent(consent: ConsentSettings): Promise; protected doLogError(error: Error, context: ErrorContext): Promise; protected doLogMessage(message: string, level: 'debug' | 'info' | 'warning'): Promise; protected doSetUserContext(user: Record): void; protected doSetExtraContext(key: string, value: any): void; protected doSetTags(tags: Record): void; protected doCaptureException(exception: Error, context: ErrorContext): Promise; protected doProviderReset(): Promise; protected doSetDebugMode(enabled: boolean): void; /** * Send any unsent crash reports */ sendUnsentReports(): Promise; /** * Delete any unsent crash reports */ deleteUnsentReports(): Promise; /** * Check if the app crashed on the previous execution */ didCrashOnPreviousExecution(): boolean; /** * Check for unsent crash reports */ checkForUnsentReports(): Promise; /** * Set a custom key-value pair */ setCustomKey(key: string, value: string | number | boolean): void; /** * Set multiple custom key-value pairs */ setCustomKeys(keys: Record): void; /** * Set a custom attribute */ setAttribute(key: string, value: string): void; /** * Set multiple custom attributes */ setAttributes(attributes: Record): void; /** * Enable or disable crash collection */ setCrashlyticsCollectionEnabled(enabled: boolean): void; } export {};