UNPKG

@react-native-firebase/app

Version:

A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto

101 lines 3.4 kB
import type { ReactNativeFirebase, Utils } from './app'; /** * Internal types for React Native Firebase * These types are used internally across multiple files and should not be exported to consumers */ /** * Firebase JSON configuration from firebase.json file * Structure: { "react-native": { [key: string]: boolean | string }, ... } */ export type FirebaseJsonConfig = Record<string, unknown>; /** * Configuration for module namespace registration */ export interface ModuleConfig { namespace: string; nativeModuleName?: string | string[]; hasMultiAppSupport?: boolean; hasCustomUrlOrRegionSupport?: boolean; nativeEvents?: boolean | string[]; disablePrependCustomUrlOrRegion?: boolean; turboModule?: boolean; } /** * Extended configuration for namespace registration including native module details */ export interface NamespaceConfig extends ModuleConfig { nativeModuleName: string | string[]; nativeEvents: boolean | string[]; ModuleClass: new (app: ReactNativeFirebase.FirebaseAppBase, config: ModuleConfig, customUrlOrRegion?: string | null) => ReactNativeFirebase.FirebaseModule; statics?: object; version?: string; } /** * Type for a Firebase module getter function that can optionally accept * a custom URL/region/databaseId parameter */ export type ModuleGetter = { (customUrlOrRegionOrDatabaseId?: string): ReactNativeFirebase.FirebaseModule; [key: string]: unknown; }; /** * Type for Firebase root object with module getters */ export interface FirebaseRoot { initializeApp: (options: ReactNativeFirebase.FirebaseAppOptions, configOrName?: string | ReactNativeFirebase.FirebaseAppConfig) => Promise<ReactNativeFirebase.FirebaseApp>; setReactNativeAsyncStorage: (asyncStorage: ReactNativeFirebase.ReactNativeAsyncStorage) => void; app: (name?: string) => ReactNativeFirebase.FirebaseApp; apps: ReactNativeFirebase.FirebaseApp[]; SDK_VERSION: string; setLogLevel: (logLevel: ReactNativeFirebase.LogLevelString) => void; utils: Utils.Statics & (() => Utils.Module); [key: string]: unknown; } /** * Native error types */ export interface NativeErrorUserInfo { code?: string; message?: string; nativeErrorCode?: string | number; nativeErrorMessage?: string; [key: string]: any; } export interface NativeError { userInfo?: NativeErrorUserInfo; message?: string; customData?: any; operationType?: string; } /** * AsyncStorage interface compatible with React Native AsyncStorage * Internal version used by the library */ export interface AsyncStorageStatic { setItem: (key: string, value: string) => Promise<void>; getItem: (key: string) => Promise<string | null>; removeItem: (key: string) => Promise<void>; } /** * Common utility types */ export interface DataUrlParts { base64String: string | undefined; mediaType: string | undefined; } export interface Observer<T> { next: (value: T) => void; error?: (error: Error) => void; complete?: () => void; } export interface SerializedValue { type: string; value: any; } export interface Deferred<T> { promise: Promise<T>; resolve: ((value: T) => void) | null; reject: ((reason?: any) => void) | null; } export type Callback<T> = ((error: Error | null, result?: T) => void) | ((error: Error | null) => void); //# sourceMappingURL=internal.d.ts.map