export interface AnalyticsEvent { name: string; parameters?: Record; } export interface AnalyticsService { logEvent(eventName: string, parameters?: Record): void; setUserProperties(properties: Record): void; setUserId(userId: string): void; isSupported(): boolean; } export interface RemoteConfigValue { asBoolean(): boolean; asString(): string; asNumber(): number; getSource(): 'static' | 'default' | 'remote'; } export interface RemoteConfigService { fetchAndActivate(): Promise; getValue(key: string): RemoteConfigValue; getAll(): Record; isSupported(): boolean; } export interface FCMNotificationPayload { title?: string; body?: string; icon?: string; badge?: string; image?: string; tag?: string; requireInteraction?: boolean; } export interface FCMDataPayload { [key: string]: string; } export interface FCMMessage { notification?: FCMNotificationPayload; data?: FCMDataPayload; messageId?: string; from?: string; collapseKey?: string; } export interface FCMPermissionState { status: 'granted' | 'denied' | 'default'; token: string | null; } export interface FCMState { isSupported: boolean; permission: FCMPermissionState; } export interface FCMService { requestPermission(): Promise; getToken(): Promise; deleteToken(): Promise; onMessage(callback: (message: FCMMessage) => void): () => void; isSupported(): boolean; getPermissionStatus(): FCMPermissionState; } export interface FirebaseService { analytics: AnalyticsService; remoteConfig: RemoteConfigService; messaging: FCMService; isConfigured(): boolean; isDevelopment(): boolean; } export interface FirebaseConfig { apiKey: string; authDomain: string; projectId: string; storageBucket: string; messagingSenderId: string; appId: string; measurementId?: string; vapidKey?: string; } export interface FirebaseInitOptions { enableAnalytics?: boolean; enableRemoteConfig?: boolean; enableMessaging?: boolean; enableDevelopmentMode?: boolean; } //# sourceMappingURL=firebase.interface.d.ts.map