firebase is a global namespace from which all Firebase
 * services are accessed.
 */
declare namespace firebase {
  /**
   * @hidden
   */
  type NextFnerror.email, error.phoneNumber, and
     *     error.credential ({@link firebase.auth.AuthCredential})
     *     may be provided, depending on the type of credential. You can recover
     *     from this error by signing in with error.credential directly
     *     via {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided.
     *     You have to link the credential to the existing user with that email if
     *     you wish to continue signing in with that credential. To do so, call
     *     {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
     *     error.email via one of the providers returned and then
     *     {@link firebase.User.linkWithCredential} the original credential to that
     *     newly signed in user.error.email, error.phoneNumber, and
     *     error.credential ({@link firebase.auth.AuthCredential})
     *     may be provided, depending on the type of credential. You can recover
     *     from this error by signing in with error.credential directly
     *     via {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided.
     *     You have to link the credential to the existing user with that email if
     *     you wish to continue signing in with that credential. To do so, call
     *     {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
     *     error.email via one of the providers returned and then
     *     {@link firebase.User.linkWithCredential} the original credential to that
     *     newly signed in user.error.phoneNumber and
     *     error.credential ({@link firebase.auth.AuthCredential})
     *     are provided in this case. You can recover from this error by signing in
     *     with that credential directly via
     *     {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided. You can
     *     recover from this error by signing in with that credential directly via
     *     {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided.
     *     You have to link the credential to the existing user with that email if
     *     you wish to continue signing in with that credential. To do so, call
     *     {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
     *     error.email via one of the providers returned and then
     *     {@link firebase.User.linkWithCredential} the original credential to that
     *     newly signed in user.remoteConfig.getValue(key).asBoolean().
     */
    getBoolean(key: string): boolean;
    /**
     * Gets the value for the given key as a number.
     *
     * Convenience method for calling remoteConfig.getValue(key).asNumber().
     */
    getNumber(key: string): number;
    /**
     * Gets the value for the given key as a String.
     *
     * Convenience method for calling remoteConfig.getValue(key).asString().
     */
    getString(key: string): string;
    /**
     * Gets the {@link Value} for the given key.
     */
    getValue(key: string): Value;
    /**
     * Defines the log level to use.
     */
    setLogLevel(logLevel: LogLevel): void;
  }
  /**
   * Indicates the source of a value.
   *
   * Number(value) || 0.
     */
    asNumber(): number;
    /**
     * Gets the value as a string.
     */
    asString(): string;
    /**
     * Gets the {@link ValueSource} for the given key.
     */
    getSource(): ValueSource;
  }
  /**
   * Defines configuration options for the Remote Config SDK.
   */
  export interface Settings {
    /**
     * Defines the maximum age in milliseconds of an entry in the config cache before
     * it is considered stale. Defaults to 43200000 (Twelve hours).
     */
    minimumFetchIntervalMillis: number;
    /**
     * Defines the maximum amount of milliseconds to wait for a response when fetching
     * configuration from the Remote Config server. Defaults to 60000 (One minute).
     */
    fetchTimeoutMillis: number;
  }
  /**
   * Summarizes the outcome of the last attempt to fetch config from the Firebase Remote Config server.
   *
   * PASSWORD_RESET: password reset code generated via
     *     {@link firebase.auth.Auth.sendPasswordResetEmail}.VERIFY_EMAIL: email verification code generated via
     *     {@link firebase.User.sendEmailVerification}.RECOVER_EMAIL: email change revocation code generated via
     *     {@link firebase.User.updateEmail}.EMAIL_SIGNIN: email sign in code generated via
     *     {@link firebase.auth.Auth.sendSignInLinkToEmail}.url: Sets the link continue/state URL, which has different meanings * in different contexts:
*error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided. You can
     *     recover from this error by signing in with that credential directly via
     *     {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
     *     ({@link firebase.auth.AuthCredential}) fields are also provided.
     *     You have to link the credential to the existing user with that email if
     *     you wish to continue signing in with that credential. To do so, call
     *     {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
     *     error.email via one of the providers returned and then
     *     {@link firebase.User.linkWithCredential} the original credential to that
     *     newly signed in user.error.email, error.phoneNumber, and
   *     error.credential ({@link firebase.auth.AuthCredential})
   *     may be provided, depending on the type of credential. You can recover
   *     from this error by signing in with error.credential directly
   *     via {@link firebase.auth.Auth.signInWithCredential}.error.email and error.credential
   *     ({@link firebase.auth.AuthCredential}) fields are also provided.
   *     You have to link the credential to the existing user with that email if
   *     you wish to continue signing in with that credential. To do so, call
   *     {@link firebase.auth.Auth.fetchSignInMethodsForEmail}, sign in to
   *     error.email via one of the providers returned and then
   *     {@link firebase.User.linkWithCredential} the original credential to that
   *     newly signed in user.