@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
TypeScript
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