React-native-firebase: 馃敟 TypeScript errors

Created on 23 Sep 2019  路  40Comments  路  Source: invertase/react-native-firebase


Issue



I'm testing the Authentication part of v6. Functionally it works well, but I do get TypeScript errors when I run yarn tsc:

node_modules/@react-native-firebase/app/lib/index.d.ts:395:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

395   export default module;
      ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1179:9 - error TS1095: A 'set' accessor cannot have a return type annotation.

1179     set languageCode(code: string): void;
             ~~~~~~~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1589:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1589   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1590:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1590   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1593:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1593   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1596:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1596   export default module;
       ~~~~~~


Found 6 errors.

For now, I'm hiding lib errors using yarn tsc --skipLibCheck, but I'd rather not use the --skipLibCheck of course.


Project Files






iOS

Click To Expand

#### `ios/Podfile`: - [ ] I'm not using Pods - [x] I'm using Pods and my Podfile looks like:

platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

target 'promo' do
  # Pods for promo
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/React'
  pod 'React-DevSupport', :path => '../node_modules/react-native/React'
  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'

  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

  target 'promoTests' do
    inherit! :search_paths
    # Pods for testing
  end

  use_native_modules!
end

target 'promo-tvOS' do
  # Pods for promo-tvOS

  target 'promo-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end

end
#### `AppDelegate.m`:
/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

@import Firebase;

#import "AppDelegate.h"

#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

#import "RNSplashScreen.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  [FIRApp configure];

  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"promo"
                                            initialProperties:nil];

  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];

  // Show splash screen, make sure that JavaScript fully loads
  [RNSplashScreen show];

  return YES;
}

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end


Android

Click To Expand

#### Have you converted to AndroidX? - [ ] my application is an AndroidX application? - [ ] I am using `android/gradle.settings` `jetifier=true` for Android compatibility? - [ ] I am using the NPM package `jetifier` for react-native compatibility? #### `android/build.gradle`:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "28.0.3"
        minSdkVersion = 16
        compileSdkVersion = 28
        targetSdkVersion = 28
        supportLibVersion = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.4.1")
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }

        google()
        jcenter()
    }
}
#### `android/app/build.gradle`:
apply plugin: "com.android.application"

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
 *   bundleCommand: "ram-bundle",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
    entryFile: "index.js",
    enableHermes: false,  // clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

/**
 * The preferred build flavor of JavaScriptCore.
 *
 * For example, to use the international variant, you can use:
 * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
 *
 * The international variant includes ICU i18n library and necessary data
 * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
 * give correct results when using with locales other than en-US.  Note that
 * this variant is about 6MiB larger per architecture than default.
 */
def jscFlavor = 'org.webkit:android-jsc:+'

/**
 * Whether to enable the Hermes VM.
 *
 * This should be set on project.ext.react and mirrored here.  If it is not set
 * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
 * and the benefits of using Hermes will therefore be sharply reduced.
 */
def enableHermes = project.ext.react.get("enableHermes", false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "nl.qscope.promo"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://facebook.github.io/react-native/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }

        }
    }

    packagingOptions {
        pickFirst '**/armeabi-v7a/libc++_shared.so'
        pickFirst '**/x86/libc++_shared.so'
        pickFirst '**/arm64-v8a/libc++_shared.so'
        pickFirst '**/x86_64/libc++_shared.so'
        pickFirst '**/x86/libjsc.so'
        pickFirst '**/armeabi-v7a/libjsc.so'
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'

    if (enableHermes) {
      def hermesPath = "../../node_modules/hermesvm/android/";
      debugImplementation files(hermesPath + "hermes-debug.aar")
      releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
      implementation jscFlavor
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
#### `android/settings.gradle`:
rootProject.name = 'promo'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
#### `MainApplication.java`:
package nl.qscope.promo;

import android.app.Application;
import android.util.Log;

import com.facebook.react.PackageList;
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for example:
      // packages.add(new MyReactNativePackage());
      return packages;
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}
#### `AndroidManifest.xml`:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="nl.qscope.promo">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>


Environment

Click To Expand

**`react-native info` output:**

System:
    OS: macOS 10.14.5
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 5.14 GB / 32.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 12.10.0 - ~/.nvm/versions/node/v12.10.0/bin/node
    Yarn: 1.17.3 - /usr/local/bin/yarn
    npm: 6.10.3 - ~/.nvm/versions/node/v12.10.0/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.4, macOS 10.14, tvOS 12.4, watchOS 5.3
  IDEs:
    Android Studio: 3.5 AI-191.8026.42.35.5791312
    Xcode: 10.3/10G8 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6 
    react-native: 0.60.5 => 0.60.5
- **Platform that you're experiencing the issue on**: - [ ] iOS - [ ] Android - [ ] **iOS** but have not tested behavior on Android - [ ] **Android** but have not tested behavior on iOS - [x] Both - **`react-native-firebase` version you're using that has this issue:** - 0.60.5 - **`Firebase` module(s) you're using that has the issue:** - Authentication - **Are you using `TypeScript`?** - `Yes`



Bug Authentication Typings >= 6

Most helpful comment

this happened to me after migrating from v5 - v6.

i just added this line to tsconfig.json to please my pipelines but i dont think that this is an actual fix
"skipLibCheck": true

All 40 comments

Could you try 0.5.3 of the pre-release packages please? I think these were fixed?

cc @IljaDaderko

Tried both 0.5.3 and 0.5.4. Still got errors, somewhat different though:

node_modules/@react-native-firebase/app/lib/index.d.ts:395:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

395   export default module;
      ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1589:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1589   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1590:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1590   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1593:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1593   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

node_modules/@react-native-firebase/auth/lib/index.d.ts:1596:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1596   export default module;
       ~~~~~~

Found 5 errors.

(These are the errors for 0.5.4)

@Salakar No, this is new to me as well. Will need to take another look. At first glance it looks like ts is highlighting "semantic" errors i.e. no imports in declarations etc...

Weird, not sure why it doesn't show up in any of our typescript tests or validations though 馃

Just tried locally, all seems to be passing now with latest updates.

I get similar errors somehow on 6.0.3 but it's hard to say why (I checked on both 3.6.4 and 3.5.3 TS versions). I get this both on a local machine and on CI so it's not any kind of cache.

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1350:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1350   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1351:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1351   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1352:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1352   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
       ~~~~~~

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1355:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1355   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1361:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1361   export default defaultExport;
       ~~~~~~

node_modules/@react-native-firebase/analytics/lib/index.d.ts:1383:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

1383 namespace ReactNativeFirebase {
     ~~~~~~~~~

node_modules/@react-native-firebase/app/lib/index.d.ts:395:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

my tsConfig:

{
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "isolatedModules": true,
    "noUnusedLocals": true,
    "jsx": "react-native",
    "lib": [
      "esnext"
    ],
    "moduleResolution": "node",
    "noEmit": true,
    "strict": true,
    "target": "esnext",
    "resolveJsonModule": true,
    "types": [
      "node",
      "jest"
    ],
    "downlevelIteration": true
  },
  "include": [
    "packages/[redacted]/src/**/*",
    "packages/[redacted]/__mocks__/**/*",
    "packages/[redacted]/**/*"
  ],
  "exclude": [
    "node_modules",
    "babel.config.js",
    "metro.config.js",
    "jest.config.js"
  ]
}

@IljaDaderko

Also tracking in https://github.com/invertase/react-native-firebase/issues/2732 - have confirmed it's an issue on all modules. Unfortunately the fix requires a substantial change to all the type definitions so tracking this for 6.1.0.

Frustratingly it didn't show up on any of our tests before we released v6 because of a single tsconfig.json option 馃槴 but we can reproduce now

this happened to me after migrating from v5 - v6.

i just added this line to tsconfig.json to please my pipelines but i dont think that this is an actual fix
"skipLibCheck": true

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

This is still a problem for me, even after upgrading to v6.2.0 of the following Firebase libs:

    "@react-native-firebase/app": "6.2.0",
    "@react-native-firebase/dynamic-links": "6.2.0",

This is the tsc result:

node_modules/@react-native-firebase/app/lib/index.d.ts:395:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

395   export default module;
      ~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:562:22 - error TS2315: Type 'Function' is not generic.

562     onLink(listener: Function<DynamicLink>): Function;
                         ~~~~~~~~~~~~~~~~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:568:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

568   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:569:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

569   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:570:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

570   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:573:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

573   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

node_modules/@react-native-firebase/dynamic-links/lib/index.d.ts:579:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

579   export default defaultExport;
      ~~~~~~

node_modules/@types/react-native/index.d.ts:8916:9 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'require' must be of type 'Require', but here has type 'NodeRequire'.

8916     var require: NodeRequire;

Running TypeScript v3.7.4. The "skipLibCheck": true workaround "works" but I'd rather leave it disabled.

Yeah apologies, we still need to get around to fixing these. It was a derp on our end during development and we didn't have these issues flagging 馃槶

No need to apologize. I wasn鈥檛 trying to exert pressure or anything, just fending off the stale bot :D

If you need more details to investigate this let me know.

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

@stale Don't close this just yet

having same issue with

    "@react-native-firebase/analytics": "^6.2.0",
    "@react-native-firebase/app": "^6.2.0",
    "@react-native-firebase/perf": "^6.2.0",
"typescript": "^3.7.2"

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

still valid. 6.3.0

Is there any workaround for now?

@almeynman yes, see @jerameel comment above.

add: "skipLibCheck": true to tsconfig.json

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

still valid

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

I can confirm that this issue is still present.

GIven the frequent staleness, anyone have a PR? That would help move it along

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

it's still valid

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

Still issue to me for @react-native-firebase/dynamic-links

image

Hello 馃憢, to help manage issues we automatically close stale issues.
This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs.
Thank you for your contributions.

Still issue to me for @react-native-firebase/dynamic-links

This clearly needs some community help as it's sat stale for a while. We would welcome any PRs that addressed the errors/warnings seen

Yes please 馃檹 PRs would be welcome

We happily accept types PRs #3810 is an example
If someone generates one, there will even be an "artifact" on the top-right-ish of the Action "Create Test Patches" which others can try, to validate.
We will need to the community to drive this, all the available Invertase resources are booked for quite a while as there is paying work (true! it exists) and then after that there is a big backlog of changed / new functionality in the upstream APIs to cover, a mch higher priority than types

Why does this issue have [v6] in the name? It's still a problem on the latest versions of @react-native-firebase/* packages.

Specifically, as of this comment, these packages/versions:

  • "@react-native-firebase/analytics": "7.6.1"
  • "@react-native-firebase/app": "8.4.1"
  • "@react-native-firebase/crashlytics": "^8.4.2"

Because it was originally logged when v5 and v6 were co-existing. It's a historical context, nothing semantically useful anymore

The entire list of type declaration conflicts can be seen by making these changes to the monrepo's tsconfig.json:

-    "skipLibCheck": true,
+    "skipLibCheck": false,
     "experimentalDecorators": true,
     "emitDecoratorMetadata": true,
-    "lib": ["es2015", "es2016", "esnext", "dom"]
+    "lib": ["es2015", "es2016", "esnext"]

Removing dom just hides type conflicts between typescript/lib/lib.dom.d.ts and @types/react-native; those conflicts are unrelated to this issue.


Here's the full list of type conflicts between the packages in this monorepo (as of commit 55cd752f)

yarn run v1.22.4
$ tsc --project .
packages/admob/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:401:11 - error TS2713: Cannot access 'AdsConsentDebugGeography.DISABLED' because 'AdsConsentDebugGeography' is a type, but not a namespace. Did you mean to retrieve the type of the property 'DISABLED' in 'AdsConsentDebugGeography' with 'AdsConsentDebugGeography["DISABLED"]'?

401         | AdsConsentDebugGeography.DISABLED
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:402:11 - error TS2713: Cannot access 'AdsConsentDebugGeography.EEA' because 'AdsConsentDebugGeography' is a type, but not a namespace. Did you mean to retrieve the type of the property 'EEA' in 'AdsConsentDebugGeography' with 'AdsConsentDebugGeography["EEA"]'?

402         | AdsConsentDebugGeography.EEA
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:403:11 - error TS2713: Cannot access 'AdsConsentDebugGeography.NOT_EEA' because 'AdsConsentDebugGeography' is a type, but not a namespace. Did you mean to retrieve the type of the property 'NOT_EEA' in 'AdsConsentDebugGeography' with 'AdsConsentDebugGeography["NOT_EEA"]'?

403         | AdsConsentDebugGeography.NOT_EEA,
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:427:11 - error TS2713: Cannot access 'AdsConsentStatus.UNKNOWN' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'UNKNOWN' in 'AdsConsentStatus' with 'AdsConsentStatus["UNKNOWN"]'?

427         | AdsConsentStatus.UNKNOWN
              ~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:428:11 - error TS2713: Cannot access 'AdsConsentStatus.NON_PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'NON_PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["NON_PERSONALIZED"]'?

428         | AdsConsentStatus.NON_PERSONALIZED
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:429:11 - error TS2713: Cannot access 'AdsConsentStatus.PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["PERSONALIZED"]'?

429         | AdsConsentStatus.PERSONALIZED,
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:446:7 - error TS2713: Cannot access 'AdsConsentStatus.UNKNOWN' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'UNKNOWN' in 'AdsConsentStatus' with 'AdsConsentStatus["UNKNOWN"]'?

446       AdsConsentStatus.UNKNOWN | AdsConsentStatus.NON_PERSONALIZED | AdsConsentStatus.PERSONALIZED
          ~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:446:34 - error TS2713: Cannot access 'AdsConsentStatus.NON_PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'NON_PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["NON_PERSONALIZED"]'?

446       AdsConsentStatus.UNKNOWN | AdsConsentStatus.NON_PERSONALIZED | AdsConsentStatus.PERSONALIZED
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:446:70 - error TS2713: Cannot access 'AdsConsentStatus.PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["PERSONALIZED"]'?

446       AdsConsentStatus.UNKNOWN | AdsConsentStatus.NON_PERSONALIZED | AdsConsentStatus.PERSONALIZED
                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:540:9 - error TS2713: Cannot access 'AdsConsentStatus.UNKNOWN' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'UNKNOWN' in 'AdsConsentStatus' with 'AdsConsentStatus["UNKNOWN"]'?

540       | AdsConsentStatus.UNKNOWN
            ~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:541:9 - error TS2713: Cannot access 'AdsConsentStatus.NON_PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'NON_PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["NON_PERSONALIZED"]'?

541       | AdsConsentStatus.NON_PERSONALIZED
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:542:9 - error TS2713: Cannot access 'AdsConsentStatus.PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["PERSONALIZED"]'?

542       | AdsConsentStatus.PERSONALIZED;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:562:9 - error TS2713: Cannot access 'AdsConsentStatus.UNKNOWN' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'UNKNOWN' in 'AdsConsentStatus' with 'AdsConsentStatus["UNKNOWN"]'?

562       | AdsConsentStatus.UNKNOWN
            ~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:563:9 - error TS2713: Cannot access 'AdsConsentStatus.NON_PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'NON_PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["NON_PERSONALIZED"]'?

563       | AdsConsentStatus.NON_PERSONALIZED
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:564:9 - error TS2713: Cannot access 'AdsConsentStatus.PERSONALIZED' because 'AdsConsentStatus' is a type, but not a namespace. Did you mean to retrieve the type of the property 'PERSONALIZED' in 'AdsConsentStatus' with 'AdsConsentStatus["PERSONALIZED"]'?

564       | AdsConsentStatus.PERSONALIZED;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:771:9 - error TS2713: Cannot access 'MaxAdContentRating.G' because 'MaxAdContentRating' is a type, but not a namespace. Did you mean to retrieve the type of the property 'G' in 'MaxAdContentRating' with 'MaxAdContentRating["G"]'?

771       | MaxAdContentRating.G
            ~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:772:9 - error TS2713: Cannot access 'MaxAdContentRating.PG' because 'MaxAdContentRating' is a type, but not a namespace. Did you mean to retrieve the type of the property 'PG' in 'MaxAdContentRating' with 'MaxAdContentRating["PG"]'?

772       | MaxAdContentRating.PG
            ~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:773:9 - error TS2713: Cannot access 'MaxAdContentRating.T' because 'MaxAdContentRating' is a type, but not a namespace. Did you mean to retrieve the type of the property 'T' in 'MaxAdContentRating' with 'MaxAdContentRating["T"]'?

773       | MaxAdContentRating.T
            ~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:774:9 - error TS2713: Cannot access 'MaxAdContentRating.MA' because 'MaxAdContentRating' is a type, but not a namespace. Did you mean to retrieve the type of the property 'MA' in 'MaxAdContentRating' with 'MaxAdContentRating["MA"]'?

774       | MaxAdContentRating.MA;
            ~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:846:9 - error TS2713: Cannot access 'AdEventType.LOADED' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'LOADED' in 'AdEventType' with 'AdEventType["LOADED"]'?

846       | AdEventType.LOADED
            ~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:847:9 - error TS2713: Cannot access 'AdEventType.ERROR' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'ERROR' in 'AdEventType' with 'AdEventType["ERROR"]'?

847       | AdEventType.ERROR
            ~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:848:9 - error TS2713: Cannot access 'AdEventType.OPENED' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'OPENED' in 'AdEventType' with 'AdEventType["OPENED"]'?

848       | AdEventType.OPENED
            ~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:849:9 - error TS2713: Cannot access 'AdEventType.CLICKED' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'CLICKED' in 'AdEventType' with 'AdEventType["CLICKED"]'?

849       | AdEventType.CLICKED
            ~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:850:9 - error TS2713: Cannot access 'AdEventType.LEFT_APPLICATION' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'LEFT_APPLICATION' in 'AdEventType' with 'AdEventType["LEFT_APPLICATION"]'?

850       | AdEventType.LEFT_APPLICATION
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:851:9 - error TS2713: Cannot access 'AdEventType.CLOSED' because 'AdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'CLOSED' in 'AdEventType' with 'AdEventType["CLOSED"]'?

851       | AdEventType.CLOSED
            ~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:852:9 - error TS2713: Cannot access 'RewardedAdEventType.LOADED' because 'RewardedAdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'LOADED' in 'RewardedAdEventType' with 'RewardedAdEventType["LOADED"]'?

852       | RewardedAdEventType.LOADED
            ~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:853:9 - error TS2713: Cannot access 'RewardedAdEventType.EARNED_REWARD' because 'RewardedAdEventType' is a type, but not a namespace. Did you mean to retrieve the type of the property 'EARNED_REWARD' in 'RewardedAdEventType' with 'RewardedAdEventType["EARNED_REWARD"]'?

853       | RewardedAdEventType.EARNED_REWARD,
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:1185:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1185   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/admob/lib/index.d.ts:1186:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1186   import React from 'react';
       ~~~~~~

packages/admob/lib/index.d.ts:1186:21 - error TS2307: Cannot find module 'react' or its corresponding type declarations.

1186   import React from 'react';
                         ~~~~~~~

packages/admob/lib/index.d.ts:1187:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1187   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/admob/lib/index.d.ts:1188:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1188   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/admob/lib/index.d.ts:1189:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1189   import BannerAd = FirebaseAdMobTypes.BannerAd;
       ~~~~~~

packages/admob/lib/index.d.ts:1192:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1192   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/admob/lib/index.d.ts:1210:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1210   export default defaultExport;
       ~~~~~~

packages/admob/lib/index.d.ts:1230:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

1230 namespace ReactNativeFirebase {
     ~~~~~~~~~

packages/analytics/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/analytics/lib/index.d.ts:1265:34 - error TS2304: Cannot find name 'SetCheckoutOptionEventParameters'.

1265     logSetCheckoutOption(params: SetCheckoutOptionEventParameters): Promise<void>;
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/analytics/lib/index.d.ts:1485:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1485   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/analytics/lib/index.d.ts:1486:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1486   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/analytics/lib/index.d.ts:1487:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1487   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
       ~~~~~~

packages/analytics/lib/index.d.ts:1490:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1490   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/analytics/lib/index.d.ts:1496:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1496   export default defaultExport;
       ~~~~~~

packages/analytics/lib/index.d.ts:1518:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

1518 namespace ReactNativeFirebase {
     ~~~~~~~~~

packages/app/lib/index.d.ts:549:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

549   export default module;
      ~~~~~~

packages/auth/lib/index.d.ts:1639:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1639   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/auth/lib/index.d.ts:1640:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1640   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/auth/lib/index.d.ts:1641:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1641   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/auth/lib/index.d.ts:1644:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1644   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/auth/lib/index.d.ts:1650:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1650   export default defaultExport;
       ~~~~~~

packages/crashlytics/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/crashlytics/lib/index.d.ts:254:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

254   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/crashlytics/lib/index.d.ts:255:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

255   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/crashlytics/lib/index.d.ts:256:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

256   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/crashlytics/lib/index.d.ts:259:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

259   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/crashlytics/lib/index.d.ts:265:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

265   export default defaultExport;
      ~~~~~~

packages/crashlytics/lib/index.d.ts:286:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

286 namespace ReactNativeFirebase {
    ~~~~~~~~~

packages/database/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/database/lib/index.d.ts:267:37 - error TS2304: Cannot find name 'value'.

267     update(values: { [key: string]: value }, onComplete?: Function): Promise<void>;
                                        ~~~~~

packages/database/lib/index.d.ts:918:37 - error TS2304: Cannot find name 'value'.

918     update(values: { [key: string]: value }, onComplete?: Function): Promise<void>;
                                        ~~~~~

packages/database/lib/index.d.ts:1253:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1253   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/database/lib/index.d.ts:1254:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1254   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/database/lib/index.d.ts:1255:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1255   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/database/lib/index.d.ts:1258:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1258   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/database/lib/index.d.ts:1264:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1264   export default defaultExport;
       ~~~~~~

packages/database/lib/index.d.ts:1286:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

1286 namespace ReactNativeFirebase {
     ~~~~~~~~~

packages/dynamic-links/lib/index.d.ts:543:22 - error TS2315: Type 'Function' is not generic.

543     onLink(listener: Function<DynamicLink>): Function;
                         ~~~~~~~~~~~~~~~~~~~~~

packages/dynamic-links/lib/index.d.ts:571:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

571   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/dynamic-links/lib/index.d.ts:572:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

572   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/dynamic-links/lib/index.d.ts:573:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

573   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/dynamic-links/lib/index.d.ts:576:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

576   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/dynamic-links/lib/index.d.ts:582:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

582   export default defaultExport;
      ~~~~~~

packages/firestore/lib/index.d.ts:1965:66 - error TS2314: Generic type 'Promise<T>' requires 1 type argument(s).

1965     runTransaction(updateFunction: (transaction: Transaction) => Promise): Promise<any>;
                                                                      ~~~~~~~

packages/firestore/lib/index.d.ts:2028:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

2028   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/firestore/lib/index.d.ts:2029:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

2029   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/firestore/lib/index.d.ts:2030:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

2030   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/firestore/lib/index.d.ts:2033:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

2033   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/firestore/lib/index.d.ts:2039:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

2039   export default defaultExport;
       ~~~~~~

packages/functions/lib/index.d.ts:364:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

364   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/functions/lib/index.d.ts:365:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

365   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/functions/lib/index.d.ts:366:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

366   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
      ~~~~~~

packages/functions/lib/index.d.ts:369:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

369   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/functions/lib/index.d.ts:375:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

375   export default defaultExport;
      ~~~~~~

packages/iid/lib/index.d.ts:136:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

136   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/iid/lib/index.d.ts:137:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

137   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/iid/lib/index.d.ts:138:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

138   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
      ~~~~~~

packages/iid/lib/index.d.ts:141:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

141   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/iid/lib/index.d.ts:147:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

147   export default defaultExport;
      ~~~~~~

packages/in-app-messaging/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/in-app-messaging/lib/index.d.ts:152:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

152   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/in-app-messaging/lib/index.d.ts:153:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

153   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/in-app-messaging/lib/index.d.ts:154:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

154   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/in-app-messaging/lib/index.d.ts:157:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

157   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/in-app-messaging/lib/index.d.ts:163:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

163   export default module;
      ~~~~~~

packages/in-app-messaging/lib/index.d.ts:185:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

185 namespace ReactNativeFirebase {
    ~~~~~~~~~

packages/messaging/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/messaging/lib/index.d.ts:611:41 - error TS1015: Parameter cannot have question mark and initializer.

611     getToken(authorizedEntity?: string, scope?: string = 'FCM'): Promise<string>;
                                            ~~~~~

packages/messaging/lib/index.d.ts:611:41 - error TS2371: A parameter initializer is only allowed in a function or constructor implementation.

611     getToken(authorizedEntity?: string, scope?: string = 'FCM'): Promise<string>;
                                            ~~~~~~~~~~~~~~~~~~~~~~

packages/messaging/lib/index.d.ts:626:44 - error TS1015: Parameter cannot have question mark and initializer.

626     deleteToken(authorizedEntity?: string, scope?: string = 'FCM'): Promise<void>;
                                               ~~~~~

packages/messaging/lib/index.d.ts:626:44 - error TS2371: A parameter initializer is only allowed in a function or constructor implementation.

626     deleteToken(authorizedEntity?: string, scope?: string = 'FCM'): Promise<void>;
                                               ~~~~~~~~~~~~~~~~~~~~~~

packages/messaging/lib/index.d.ts:900:5 - error TS7010: 'setBackgroundMessageHandler', which lacks return-type annotation, implicitly has an 'any' return type.

900     setBackgroundMessageHandler(handler: (message: RemoteMessage) => Promise<any>);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/messaging/lib/index.d.ts:954:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

954   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/messaging/lib/index.d.ts:955:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

955   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/messaging/lib/index.d.ts:956:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

956   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/messaging/lib/index.d.ts:959:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

959   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/messaging/lib/index.d.ts:965:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

965   export default defaultExport;
      ~~~~~~

packages/messaging/lib/index.d.ts:987:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

987 namespace ReactNativeFirebase {
    ~~~~~~~~~

packages/ml-natural-language/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/ml-natural-language/lib/index.d.ts:229:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

229   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/ml-natural-language/lib/index.d.ts:230:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

230   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/ml-natural-language/lib/index.d.ts:231:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

231   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
      ~~~~~~

packages/ml-natural-language/lib/index.d.ts:234:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

234   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/ml-natural-language/lib/index.d.ts:240:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

240   export default defaultExport;
      ~~~~~~

packages/ml-natural-language/lib/index.d.ts:263:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

263 namespace ReactNativeFirebase {
    ~~~~~~~~~

packages/ml-vision/lib/BarcodeDetectorTypes.d.ts:52:18 - error TS2304: Cannot find name 'VisionRectangle'.

52     boundingBox: VisionRectangle;
                    ~~~~~~~~~~~~~~~

packages/ml-vision/lib/BarcodeDetectorTypes.d.ts:57:19 - error TS2304: Cannot find name 'VisionPoint'.

57     cornerPoints: VisionPoint[];
                     ~~~~~~~~~~~

packages/ml-vision/lib/BarcodeDetectorTypes.d.ts:181:16 - error TS2304: Cannot find name 'VisionGeoPoint'.

181     geoPoint?: VisionGeoPoint;
                   ~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:674:20 - error TS2430: Interface 'VisionDocumentText' incorrectly extends interface 'VisionText'.
  Types of property 'blocks' are incompatible.
    Type 'VisionDocumentTextBlock[]' is not assignable to type 'VisionTextBlock[]'.
      Type 'VisionDocumentTextBlock' is missing the following properties from type 'VisionTextBlock': lines, cornerPoints

674   export interface VisionDocumentText extends VisionText {
                       ~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1173:32 - error TS2304: Cannot find name 'VisionBarcodeDetectorOptions'.

1173       barcodeDetectorOptions?: VisionBarcodeDetectorOptions,
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1174:16 - error TS2304: Cannot find name 'VisionBarcode'.

1174     ): Promise<VisionBarcode[]>;
                    ~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1180:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1180   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/ml-vision/lib/index.d.ts:1181:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1181   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/ml-vision/lib/index.d.ts:1182:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1182   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/ml-vision/lib/index.d.ts:1185:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1185   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1187:69 - error TS2339: Property 'VisionBarcodeFormat' does not exist on type 'typeof FirebaseVisionTypes'.

1187   export const VisionBarcodeFormat: {} & typeof FirebaseVisionTypes.VisionBarcodeFormat;
                                                                         ~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1190:72 - error TS2339: Property 'VisionBarcodeValueType' does not exist on type 'typeof FirebaseVisionTypes'.

1190   export const VisionBarcodeValueType: {} & typeof FirebaseVisionTypes.VisionBarcodeValueType;
                                                                            ~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1191:72 - error TS2339: Property 'VisionBarcodeEmailType' does not exist on type 'typeof FirebaseVisionTypes'.

1191   export const VisionBarcodeEmailType: {} & typeof FirebaseVisionTypes.VisionBarcodeEmailType;
                                                                            ~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1192:72 - error TS2339: Property 'VisionBarcodePhoneType' does not exist on type 'typeof FirebaseVisionTypes'.

1192   export const VisionBarcodePhoneType: {} & typeof FirebaseVisionTypes.VisionBarcodePhoneType;
                                                                            ~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1193:74 - error TS2339: Property 'VisionBarcodeAddressType' does not exist on type 'typeof FirebaseVisionTypes'.

1193   export const VisionBarcodeAddressType: {} & typeof FirebaseVisionTypes.VisionBarcodeAddressType;
                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1196:74 - error TS2694: Namespace '"/Users/Matt/Development/react-native-firebase/packages/ml-vision/lib/index".FirebaseVisionTypes' has no exported member 'VisionBarcodeWifiEncryptionType'.

1196   export const VisionBarcodeWifiEncryptionType: {} & FirebaseVisionTypes.VisionBarcodeWifiEncryptionType;
                                                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

packages/ml-vision/lib/index.d.ts:1207:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1207   export default defaultExport;
       ~~~~~~

packages/ml-vision/lib/index.d.ts:1229:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

1229 namespace ReactNativeFirebase {
     ~~~~~~~~~

packages/perf/lib/index.d.ts:18:10 - error TS2440: Import declaration conflicts with local declaration of 'ReactNativeFirebase'.

18 import { ReactNativeFirebase } from '@react-native-firebase/app';
            ~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:112:5 - error TS7010: 'putAttribute', which lacks return-type annotation, implicitly has an 'any' return type.

112     putAttribute(attribute: string, value: string);
        ~~~~~~~~~~~~

packages/perf/lib/index.d.ts:158:5 - error TS7010: 'putMetric', which lacks return-type annotation, implicitly has an 'any' return type.

158     putMetric(metricName: string, value: number);
        ~~~~~~~~~

packages/perf/lib/index.d.ts:172:5 - error TS7010: 'incrementMetric', which lacks return-type annotation, implicitly has an 'any' return type.

172     incrementMetric(metricName: string, incrementBy: number);
        ~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:185:5 - error TS7010: 'removeMetric', which lacks return-type annotation, implicitly has an 'any' return type.

185     removeMetric(metricName: string);
        ~~~~~~~~~~~~

packages/perf/lib/index.d.ts:259:5 - error TS7010: 'putAttribute', which lacks return-type annotation, implicitly has an 'any' return type.

259     putAttribute(attribute: string, value: string);
        ~~~~~~~~~~~~

packages/perf/lib/index.d.ts:272:5 - error TS7010: 'removeAttribute', which lacks return-type annotation, implicitly has an 'any' return type.

272     removeAttribute(attribute: string);
        ~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:288:5 - error TS7010: 'setHttpResponseCode', which lacks return-type annotation, implicitly has an 'any' return type.

288     setHttpResponseCode(code: number | null);
        ~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:302:5 - error TS7010: 'setRequestPayloadSize', which lacks return-type annotation, implicitly has an 'any' return type.

302     setRequestPayloadSize(bytes: number | null);
        ~~~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:316:5 - error TS7010: 'setResponsePayloadSize', which lacks return-type annotation, implicitly has an 'any' return type.

316     setResponsePayloadSize(bytes: number | null);
        ~~~~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:330:5 - error TS7010: 'setResponseContentType', which lacks return-type annotation, implicitly has an 'any' return type.

330     setResponseContentType(contentType: string | null);
        ~~~~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:448:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

448   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/perf/lib/index.d.ts:449:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

449   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/perf/lib/index.d.ts:450:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

450   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/perf/lib/index.d.ts:453:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

453   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/perf/lib/index.d.ts:459:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

459   export default defaultExport;
      ~~~~~~

packages/perf/lib/index.d.ts:480:1 - error TS1046: Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.

480 namespace ReactNativeFirebase {
    ~~~~~~~~~

packages/remote-config/lib/index.d.ts:522:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

522   import { ReactNativeFirebase } from '@react-native-firebase/app';
      ~~~~~~

packages/remote-config/lib/index.d.ts:523:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

523   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
      ~~~~~~

packages/remote-config/lib/index.d.ts:524:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

524   import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics;
      ~~~~~~

packages/remote-config/lib/index.d.ts:527:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

527   export const firebase = firebaseNamedExport;
                              ~~~~~~~~~~~~~~~~~~~

packages/remote-config/lib/index.d.ts:533:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

533   export default defaultExport;
      ~~~~~~

packages/storage/lib/index.d.ts:1102:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1102   import { ReactNativeFirebase } from '@react-native-firebase/app';
       ~~~~~~

packages/storage/lib/index.d.ts:1103:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1103   import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
       ~~~~~~

packages/storage/lib/index.d.ts:1104:3 - error TS2667: Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.

1104   import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
       ~~~~~~

packages/storage/lib/index.d.ts:1107:27 - error TS1254: A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.

1107   export const firebase = firebaseNamedExport;
                               ~~~~~~~~~~~~~~~~~~~

packages/storage/lib/index.d.ts:1113:3 - error TS2666: Exports and export assignments are not permitted in module augmentations.

1113   export default defaultExport;
       ~~~~~~


So it seems any PR to fix this should include that change to the tsconfig.json - do you have anything in mind for a PR?

I don't think I'll be able to fix this, at least not yet, as I'm still new to TypeScript, & these type declaration files are some of the most complex I've seen so far. Definitely don't want to make it worse!

Pinging this thread since there are many subscribers:

If you want to try skipLibCheck: false-compatible types, check out these patch-package files. Install a patchfile for each RNFB library you use: https://gist.github.com/davidgovea/2feea6af41b41f76fae1a9c14465cb69

It's working for me! But I only use app & analytics in production. Would appreciate any feedback.
Tracking the work in PR #4306

@davidgovea did you know I added auto-patch-package generation here :-) - check it out: https://github.com/invertase/react-native-firebase/actions/runs/271992461 (it's off the "Checks" area on the PR then the "Create Test Patches" action

Thank you for the PR in general though! I would love to hear positive feedback and I'm excited to merge them. I use most of the modules myself and I'll give them a try in my work project to see how it goes also

Was this page helpful?
0 / 5 - 0 ratings