diff --git a/docs/reference/ai/lib.mdx b/docs/reference/ai/lib.mdx
new file mode 100644
index 0000000000..cc97080fd7
--- /dev/null
+++ b/docs/reference/ai/lib.mdx
@@ -0,0 +1,9019 @@
+[**react-native-firebase**](../README.mdx)
+
+***
+
+[react-native-firebase](../modules.mdx) / ai/lib
+
+# ai/lib
+
+## Enumerations
+
+### AIErrorCode
+
+Defined in: [ai/lib/types/error.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L65)
+
+Standardized error codes that [AIError](#aierror) can have.
+
+#### Enumeration Members
+
+##### API\_NOT\_ENABLED
+
+> **API\_NOT\_ENABLED**: `"api-not-enabled"`
+
+Defined in: [ai/lib/types/error.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L82)
+
+An error due to the Firebase API not being enabled in the Console.
+
+##### ERROR
+
+> **ERROR**: `"error"`
+
+Defined in: [ai/lib/types/error.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L67)
+
+A generic error occurred.
+
+##### FETCH\_ERROR
+
+> **FETCH\_ERROR**: `"fetch-error"`
+
+Defined in: [ai/lib/types/error.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L76)
+
+An error occurred while performing a fetch.
+
+##### INVALID\_CONTENT
+
+> **INVALID\_CONTENT**: `"invalid-content"`
+
+Defined in: [ai/lib/types/error.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L79)
+
+An error associated with a Content object.
+
+##### INVALID\_SCHEMA
+
+> **INVALID\_SCHEMA**: `"invalid-schema"`
+
+Defined in: [ai/lib/types/error.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L85)
+
+An error due to invalid Schema input.
+
+##### NO\_API\_KEY
+
+> **NO\_API\_KEY**: `"no-api-key"`
+
+Defined in: [ai/lib/types/error.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L88)
+
+An error occurred due to a missing Firebase API key.
+
+##### NO\_APP\_ID
+
+> **NO\_APP\_ID**: `"no-app-id"`
+
+Defined in: [ai/lib/types/error.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L91)
+
+An error occurred due to a missing Firebase app ID.
+
+##### NO\_MODEL
+
+> **NO\_MODEL**: `"no-model"`
+
+Defined in: [ai/lib/types/error.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L94)
+
+An error occurred due to a model name not being specified during initialization.
+
+##### NO\_PROJECT\_ID
+
+> **NO\_PROJECT\_ID**: `"no-project-id"`
+
+Defined in: [ai/lib/types/error.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L97)
+
+An error occurred due to a missing project ID.
+
+##### PARSE\_FAILED
+
+> **PARSE\_FAILED**: `"parse-failed"`
+
+Defined in: [ai/lib/types/error.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L100)
+
+An error occurred while parsing.
+
+##### REQUEST\_ERROR
+
+> **REQUEST\_ERROR**: `"request-error"`
+
+Defined in: [ai/lib/types/error.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L70)
+
+An error occurred in a request.
+
+##### RESPONSE\_ERROR
+
+> **RESPONSE\_ERROR**: `"response-error"`
+
+Defined in: [ai/lib/types/error.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L73)
+
+An error occurred in a response.
+
+##### SESSION\_CLOSED
+
+> **SESSION\_CLOSED**: `"session-closed"`
+
+Defined in: [ai/lib/types/error.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L106)
+
+An error occurred due to a session being closed.
+
+##### UNSUPPORTED
+
+> **UNSUPPORTED**: `"unsupported"`
+
+Defined in: [ai/lib/types/error.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L103)
+
+An error occurred due an attempt to use an unsupported feature.
+
+***
+
+### BlockReason
+
+Defined in: [ai/lib/types/enums.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L142)
+
+Reason that a prompt was blocked.
+
+#### Enumeration Members
+
+##### BLOCKLIST
+
+> **BLOCKLIST**: `"BLOCKLIST"`
+
+Defined in: [ai/lib/types/enums.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L154)
+
+Content was blocked because it contained terms from the terminology blocklist.
+
+##### OTHER
+
+> **OTHER**: `"OTHER"`
+
+Defined in: [ai/lib/types/enums.ts:150](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L150)
+
+Content was blocked, but the reason is uncategorized.
+
+##### PROHIBITED\_CONTENT
+
+> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
+
+Defined in: [ai/lib/types/enums.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L158)
+
+Content was blocked due to prohibited content.
+
+##### SAFETY
+
+> **SAFETY**: `"SAFETY"`
+
+Defined in: [ai/lib/types/enums.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L146)
+
+Content was blocked by safety settings.
+
+***
+
+### FinishReason
+
+Defined in: [ai/lib/types/enums.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L165)
+
+Reason that a candidate finished.
+
+#### Enumeration Members
+
+##### BLOCKLIST
+
+> **BLOCKLIST**: `"BLOCKLIST"`
+
+Defined in: [ai/lib/types/enums.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L189)
+
+The candidate content contained forbidden terms.
+
+##### MALFORMED\_FUNCTION\_CALL
+
+> **MALFORMED\_FUNCTION\_CALL**: `"MALFORMED_FUNCTION_CALL"`
+
+Defined in: [ai/lib/types/enums.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L201)
+
+The function call generated by the model was invalid.
+
+##### MAX\_TOKENS
+
+> **MAX\_TOKENS**: `"MAX_TOKENS"`
+
+Defined in: [ai/lib/types/enums.ts:173](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L173)
+
+The maximum number of tokens as specified in the request was reached.
+
+##### OTHER
+
+> **OTHER**: `"OTHER"`
+
+Defined in: [ai/lib/types/enums.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L185)
+
+Unknown reason.
+
+##### PROHIBITED\_CONTENT
+
+> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
+
+Defined in: [ai/lib/types/enums.ts:193](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L193)
+
+The candidate content potentially contained prohibited content.
+
+##### RECITATION
+
+> **RECITATION**: `"RECITATION"`
+
+Defined in: [ai/lib/types/enums.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L181)
+
+The candidate content was flagged for recitation reasons.
+
+##### SAFETY
+
+> **SAFETY**: `"SAFETY"`
+
+Defined in: [ai/lib/types/enums.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L177)
+
+The candidate content was flagged for safety reasons.
+
+##### SPII
+
+> **SPII**: `"SPII"`
+
+Defined in: [ai/lib/types/enums.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L197)
+
+The candidate content potentially contained Sensitive Personally Identifiable Information (SPII).
+
+##### STOP
+
+> **STOP**: `"STOP"`
+
+Defined in: [ai/lib/types/enums.ts:169](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L169)
+
+Natural stop point of the model or provided stop sequence.
+
+***
+
+### FunctionCallingMode
+
+Defined in: [ai/lib/types/enums.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L209)
+
+Function calling mode for the model.
+
+#### Enumeration Members
+
+##### ANY
+
+> **ANY**: `"ANY"`
+
+Defined in: [ai/lib/types/enums.ts:221](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L221)
+
+Model is constrained to always predicting a function call only.
+If `allowed_function_names` is set, the predicted function call will be
+limited to any one of `allowed_function_names`, else the predicted
+function call will be any one of the provided `function_declarations`.
+
+##### AUTO
+
+> **AUTO**: `"AUTO"`
+
+Defined in: [ai/lib/types/enums.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L214)
+
+Default model behavior; model decides to predict either a function call
+or a natural language response.
+
+##### NONE
+
+> **NONE**: `"NONE"`
+
+Defined in: [ai/lib/types/enums.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L226)
+
+Model will not predict any function call. Model behavior is same as when
+not passing any function declarations.
+
+***
+
+### HarmBlockMethod
+
+Defined in: [ai/lib/types/enums.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L74)
+
+This property is not supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)).
+
+#### Enumeration Members
+
+##### PROBABILITY
+
+> **PROBABILITY**: `"PROBABILITY"`
+
+Defined in: [ai/lib/types/enums.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L82)
+
+The harm block method uses the probability score.
+
+##### SEVERITY
+
+> **SEVERITY**: `"SEVERITY"`
+
+Defined in: [ai/lib/types/enums.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L78)
+
+The harm block method uses both probability and severity scores.
+
+***
+
+### HarmBlockThreshold
+
+Defined in: [ai/lib/types/enums.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L45)
+
+Threshold above which a prompt or candidate will be blocked.
+
+#### Enumeration Members
+
+##### BLOCK\_LOW\_AND\_ABOVE
+
+> **BLOCK\_LOW\_AND\_ABOVE**: `"BLOCK_LOW_AND_ABOVE"`
+
+Defined in: [ai/lib/types/enums.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L49)
+
+Content with `NEGLIGIBLE` will be allowed.
+
+##### BLOCK\_MEDIUM\_AND\_ABOVE
+
+> **BLOCK\_MEDIUM\_AND\_ABOVE**: `"BLOCK_MEDIUM_AND_ABOVE"`
+
+Defined in: [ai/lib/types/enums.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L53)
+
+Content with `NEGLIGIBLE` and `LOW` will be allowed.
+
+##### BLOCK\_NONE
+
+> **BLOCK\_NONE**: `"BLOCK_NONE"`
+
+Defined in: [ai/lib/types/enums.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L61)
+
+All content will be allowed.
+
+##### BLOCK\_ONLY\_HIGH
+
+> **BLOCK\_ONLY\_HIGH**: `"BLOCK_ONLY_HIGH"`
+
+Defined in: [ai/lib/types/enums.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L57)
+
+Content with `NEGLIGIBLE`, `LOW`, and `MEDIUM` will be allowed.
+
+##### OFF
+
+> **OFF**: `"OFF"`
+
+Defined in: [ai/lib/types/enums.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L66)
+
+All content will be allowed. This is the same as `BLOCK_NONE`, but the metadata corresponding
+to the [HarmCategory](#harmcategory) will not be present in the response.
+
+***
+
+### HarmCategory
+
+Defined in: [ai/lib/types/enums.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L34)
+
+Harm categories that would cause prompts or candidates to be blocked.
+
+#### Enumeration Members
+
+##### HARM\_CATEGORY\_DANGEROUS\_CONTENT
+
+> **HARM\_CATEGORY\_DANGEROUS\_CONTENT**: `"HARM_CATEGORY_DANGEROUS_CONTENT"`
+
+Defined in: [ai/lib/types/enums.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L38)
+
+##### HARM\_CATEGORY\_HARASSMENT
+
+> **HARM\_CATEGORY\_HARASSMENT**: `"HARM_CATEGORY_HARASSMENT"`
+
+Defined in: [ai/lib/types/enums.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L37)
+
+##### HARM\_CATEGORY\_HATE\_SPEECH
+
+> **HARM\_CATEGORY\_HATE\_SPEECH**: `"HARM_CATEGORY_HATE_SPEECH"`
+
+Defined in: [ai/lib/types/enums.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L35)
+
+##### HARM\_CATEGORY\_SEXUALLY\_EXPLICIT
+
+> **HARM\_CATEGORY\_SEXUALLY\_EXPLICIT**: `"HARM_CATEGORY_SEXUALLY_EXPLICIT"`
+
+Defined in: [ai/lib/types/enums.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L36)
+
+***
+
+### HarmProbability
+
+Defined in: [ai/lib/types/enums.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L89)
+
+Probability that a prompt or candidate matches a harm category.
+
+#### Enumeration Members
+
+##### HIGH
+
+> **HIGH**: `"HIGH"`
+
+Defined in: [ai/lib/types/enums.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L105)
+
+Content has a high chance of being unsafe.
+
+##### LOW
+
+> **LOW**: `"LOW"`
+
+Defined in: [ai/lib/types/enums.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L97)
+
+Content has a low chance of being unsafe.
+
+##### MEDIUM
+
+> **MEDIUM**: `"MEDIUM"`
+
+Defined in: [ai/lib/types/enums.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L101)
+
+Content has a medium chance of being unsafe.
+
+##### NEGLIGIBLE
+
+> **NEGLIGIBLE**: `"NEGLIGIBLE"`
+
+Defined in: [ai/lib/types/enums.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L93)
+
+Content has a negligible chance of being unsafe.
+
+***
+
+### HarmSeverity
+
+Defined in: [ai/lib/types/enums.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L112)
+
+Harm severity levels.
+
+#### Enumeration Members
+
+##### HARM\_SEVERITY\_HIGH
+
+> **HARM\_SEVERITY\_HIGH**: `"HARM_SEVERITY_HIGH"`
+
+Defined in: [ai/lib/types/enums.ts:128](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L128)
+
+High level of harm severity.
+
+##### HARM\_SEVERITY\_LOW
+
+> **HARM\_SEVERITY\_LOW**: `"HARM_SEVERITY_LOW"`
+
+Defined in: [ai/lib/types/enums.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L120)
+
+Low level of harm severity.
+
+##### HARM\_SEVERITY\_MEDIUM
+
+> **HARM\_SEVERITY\_MEDIUM**: `"HARM_SEVERITY_MEDIUM"`
+
+Defined in: [ai/lib/types/enums.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L124)
+
+Medium level of harm severity.
+
+##### HARM\_SEVERITY\_NEGLIGIBLE
+
+> **HARM\_SEVERITY\_NEGLIGIBLE**: `"HARM_SEVERITY_NEGLIGIBLE"`
+
+Defined in: [ai/lib/types/enums.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L116)
+
+Negligible level of harm severity.
+
+##### HARM\_SEVERITY\_UNSUPPORTED
+
+> **HARM\_SEVERITY\_UNSUPPORTED**: `"HARM_SEVERITY_UNSUPPORTED"`
+
+Defined in: [ai/lib/types/enums.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L135)
+
+Harm severity is not supported.
+
+###### Remarks
+
+The GoogleAI backend does not support `HarmSeverity`, so this value is used as a fallback.
+
+***
+
+### Modality
+
+Defined in: [ai/lib/types/enums.ts:233](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L233)
+
+Content part modality.
+
+#### Enumeration Members
+
+##### AUDIO
+
+> **AUDIO**: `"AUDIO"`
+
+Defined in: [ai/lib/types/enums.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L253)
+
+Audio.
+
+##### DOCUMENT
+
+> **DOCUMENT**: `"DOCUMENT"`
+
+Defined in: [ai/lib/types/enums.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L257)
+
+Document (for example, PDF).
+
+##### IMAGE
+
+> **IMAGE**: `"IMAGE"`
+
+Defined in: [ai/lib/types/enums.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L245)
+
+Image.
+
+##### MODALITY\_UNSPECIFIED
+
+> **MODALITY\_UNSPECIFIED**: `"MODALITY_UNSPECIFIED"`
+
+Defined in: [ai/lib/types/enums.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L237)
+
+Unspecified modality.
+
+##### TEXT
+
+> **TEXT**: `"TEXT"`
+
+Defined in: [ai/lib/types/enums.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L241)
+
+Plain text.
+
+##### VIDEO
+
+> **VIDEO**: `"VIDEO"`
+
+Defined in: [ai/lib/types/enums.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L249)
+
+Video.
+
+***
+
+### SchemaType
+
+Defined in: [ai/lib/types/schema.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L24)
+
+Contains the list of OpenAPI data types
+as defined by the
+[OpenAPI specification](https://swagger.io/docs/specification/data-models/data-types/)
+
+#### Enumeration Members
+
+##### ARRAY
+
+> **ARRAY**: `"array"`
+
+Defined in: [ai/lib/types/schema.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L34)
+
+Array type.
+
+##### BOOLEAN
+
+> **BOOLEAN**: `"boolean"`
+
+Defined in: [ai/lib/types/schema.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L32)
+
+Boolean type.
+
+##### INTEGER
+
+> **INTEGER**: `"integer"`
+
+Defined in: [ai/lib/types/schema.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L30)
+
+Integer type.
+
+##### NUMBER
+
+> **NUMBER**: `"number"`
+
+Defined in: [ai/lib/types/schema.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L28)
+
+Number type.
+
+##### OBJECT
+
+> **OBJECT**: `"object"`
+
+Defined in: [ai/lib/types/schema.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L36)
+
+Object type.
+
+##### STRING
+
+> **STRING**: `"string"`
+
+Defined in: [ai/lib/types/schema.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L26)
+
+String type.
+
+## Classes
+
+### AIError
+
+Defined in: [ai/lib/errors.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L27)
+
+Error class for the Vertex AI in Firebase SDK.
+
+#### Extends
+
+- `FirebaseError`
+
+#### Constructors
+
+##### Constructor
+
+> **new AIError**(`code`, `message`, `customErrorData?`): [`AIError`](#aierror)
+
+Defined in: [ai/lib/errors.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L35)
+
+Constructs a new instance of the `AIError` class.
+
+###### Parameters
+
+###### code
+
+[`AIErrorCode`](#aierrorcode)
+
+The error code from [AIErrorCode](#aierrorcode).
+
+###### message
+
+`string`
+
+A human-readable message describing the error.
+
+###### customErrorData?
+
+[`CustomErrorData`](#customerrordata-1)
+
+Optional error data.
+
+###### Returns
+
+[`AIError`](#aierror)
+
+###### Overrides
+
+`FirebaseError.constructor`
+
+#### Properties
+
+##### code
+
+> `readonly` **code**: [`AIErrorCode`](#aierrorcode)
+
+Defined in: [ai/lib/errors.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L36)
+
+The error code from [AIErrorCode](#aierrorcode).
+
+###### Inherited from
+
+`FirebaseError.code`
+
+##### customErrorData?
+
+> `readonly` `optional` **customErrorData**: [`CustomErrorData`](#customerrordata-1)
+
+Defined in: [ai/lib/errors.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L38)
+
+Optional error data.
+
+***
+
+### `abstract` AIModel
+
+Defined in: [ai/lib/models/ai-model.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L30)
+
+Base class for Firebase AI model APIs.
+
+Instances of this class are associated with a specific Firebase AI [Backend](#abstract-backend)
+and provide methods for interacting with the configured generative model.
+
+#### Extended by
+
+- [`GenerativeModel`](#generativemodel)
+- [`ImagenModel`](#imagenmodel)
+- [`LiveGenerativeModel`](#livegenerativemodel)
+
+#### Constructors
+
+##### Constructor
+
+> `protected` **new AIModel**(`ai`, `modelName`): [`AIModel`](#abstract-aimodel)
+
+Defined in: [ai/lib/models/ai-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L59)
+
+**`Internal`**
+
+Constructs a new instance of the [AIModel](#abstract-aimodel) class.
+
+This constructor should only be called from subclasses that provide
+a model API.
+
+###### Parameters
+
+###### ai
+
+[`AI`](#ai)
+
+an [AI](#ai) instance.
+
+###### modelName
+
+`string`
+
+The name of the model being used. It can be in one of the following formats:
+- `my-model` (short name, will resolve to `publishers/google/models/my-model`)
+- `models/my-model` (will resolve to `publishers/google/models/my-model`)
+- `publishers/my-publisher/models/my-model` (fully qualified model name)
+
+###### Returns
+
+[`AIModel`](#abstract-aimodel)
+
+###### Throws
+
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
+
+#### Properties
+
+##### \_apiSettings
+
+> `protected` **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+
+**`Internal`**
+
+##### model
+
+> `readonly` **model**: `string`
+
+Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
+
+#### Methods
+
+##### normalizeModelName()
+
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+
+Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+
+**`Internal`**
+
+Normalizes the given model name to a fully qualified model resource name.
+
+###### Parameters
+
+###### modelName
+
+`string`
+
+The model name to normalize.
+
+###### backendType
+
+[`BackendType`](#backendtype-3)
+
+###### Returns
+
+`string`
+
+The fully qualified model resource name.
+
+***
+
+### ArraySchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L216)
+
+Schema class for "array" types.
+The `items` param should refer to the type of item that can be a member
+of the array.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new ArraySchema**(`schemaParams`, `items`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:217](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L217)
+
+###### Parameters
+
+###### schemaParams
+
+[`SchemaParams`](#schemaparams)
+
+###### items
+
+[`TypedSchema`](#typedschema)
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items
+
+> **items**: [`TypedSchema`](#typedschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L219)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L230)
+
+**`Internal`**
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### `abstract` Backend
+
+Defined in: [ai/lib/backend.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L29)
+
+Abstract base class representing the configuration for an AI service backend.
+This class should not be instantiated directly. Use its subclasses; [GoogleAIBackend](#googleaibackend) for
+the Gemini Developer API (via [Google AI](https://ai.google/)), and
+[VertexAIBackend](#vertexaibackend) for the Vertex AI Gemini API.
+
+#### Extended by
+
+- [`GoogleAIBackend`](#googleaibackend)
+- [`VertexAIBackend`](#vertexaibackend)
+
+#### Constructors
+
+##### Constructor
+
+> `protected` **new Backend**(`type`): [`Backend`](#abstract-backend)
+
+Defined in: [ai/lib/backend.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L39)
+
+Protected constructor for use by subclasses.
+
+###### Parameters
+
+###### type
+
+[`BackendType`](#backendtype-3)
+
+The backend type.
+
+###### Returns
+
+[`Backend`](#abstract-backend)
+
+#### Properties
+
+##### backendType
+
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+
+Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+
+Specifies the backend type.
+
+#### Methods
+
+##### \_getModelPath()
+
+> `abstract` **\_getModelPath**(`project`, `model`): `string`
+
+Defined in: [ai/lib/backend.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L46)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### model
+
+`string`
+
+###### Returns
+
+`string`
+
+##### \_getTemplatePath()
+
+> `abstract` **\_getTemplatePath**(`project`, `templateId`): `string`
+
+Defined in: [ai/lib/backend.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L51)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### templateId
+
+`string`
+
+###### Returns
+
+`string`
+
+***
+
+### BooleanSchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L174)
+
+Schema class for "boolean" types.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new BooleanSchema**(`schemaParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L175)
+
+###### Parameters
+
+###### schemaParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+
+**`Internal`**
+
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### ChatSession
+
+Defined in: [ai/lib/methods/chat-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L46)
+
+ChatSession class that enables sending chat messages and stores
+history of sent and received messages so far.
+
+#### Constructors
+
+##### Constructor
+
+> **new ChatSession**(`apiSettings`, `model`, `params?`, `requestOptions?`): [`ChatSession`](#chatsession)
+
+Defined in: [ai/lib/methods/chat-session.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L51)
+
+###### Parameters
+
+###### apiSettings
+
+`ApiSettings`
+
+###### model
+
+`string`
+
+###### params?
+
+[`StartChatParams`](#startchatparams)
+
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+###### Returns
+
+[`ChatSession`](#chatsession)
+
+#### Properties
+
+##### model
+
+> **model**: `string`
+
+Defined in: [ai/lib/methods/chat-session.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L53)
+
+##### params?
+
+> `optional` **params**: [`StartChatParams`](#startchatparams)
+
+Defined in: [ai/lib/methods/chat-session.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L54)
+
+##### requestOptions?
+
+> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [ai/lib/methods/chat-session.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L55)
+
+#### Methods
+
+##### getHistory()
+
+> **getHistory**(): `Promise`\<[`Content`](#content)[]\>
+
+Defined in: [ai/lib/methods/chat-session.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L69)
+
+Gets the chat history so far. Blocked prompts are not added to history.
+Neither blocked candidates nor the prompts that generated them are added
+to history.
+
+###### Returns
+
+`Promise`\<[`Content`](#content)[]\>
+
+##### sendMessage()
+
+> **sendMessage**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+Defined in: [ai/lib/methods/chat-session.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L78)
+
+Sends a chat message and receives a non-streaming
+[GenerateContentResult](#generatecontentresult)
+
+###### Parameters
+
+###### request
+
+`string` | (`string` \| [`Part`](#part))[]
+
+###### Returns
+
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+##### sendMessageStream()
+
+> **sendMessageStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+Defined in: [ai/lib/methods/chat-session.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L123)
+
+Sends a chat message and receives the response as a
+[GenerateContentStreamResult](#generatecontentstreamresult) containing an iterable stream
+and a response promise.
+
+###### Parameters
+
+###### request
+
+`string` | (`string` \| [`Part`](#part))[]
+
+###### Returns
+
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+***
+
+### GenerativeModel
+
+Defined in: [ai/lib/models/generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L45)
+
+Class for generative model APIs.
+
+#### Extends
+
+- [`AIModel`](#abstract-aimodel)
+
+#### Constructors
+
+##### Constructor
+
+> **new GenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
+
+Defined in: [ai/lib/models/generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L53)
+
+###### Parameters
+
+###### ai
+
+[`AI`](#ai)
+
+###### modelParams
+
+[`ModelParams`](#modelparams)
+
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+###### Returns
+
+[`GenerativeModel`](#generativemodel)
+
+###### Overrides
+
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### \_apiSettings
+
+> `protected` **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+
+**`Internal`**
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+
+##### generationConfig
+
+> **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/models/generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L46)
+
+##### model
+
+> `readonly` **model**: `string`
+
+Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`model`](#model)
+
+##### requestOptions?
+
+> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [ai/lib/models/generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L48)
+
+##### safetySettings
+
+> **safetySettings**: [`SafetySetting`](#safetysetting)[]
+
+Defined in: [ai/lib/models/generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L47)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: [`Content`](#content)
+
+Defined in: [ai/lib/models/generative-model.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L51)
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/models/generative-model.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L50)
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/models/generative-model.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L49)
+
+#### Methods
+
+##### countTokens()
+
+> **countTokens**(`request`): `Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
+
+Defined in: [ai/lib/models/generative-model.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L139)
+
+Counts the tokens in the provided request.
+
+###### Parameters
+
+###### request
+
+`string` | [`CountTokensRequest`](#counttokensrequest) | (`string` \| [`Part`](#part))[]
+
+###### Returns
+
+`Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
+
+##### generateContent()
+
+> **generateContent**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+Defined in: [ai/lib/models/generative-model.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L67)
+
+Makes a single non-streaming call to the model
+and returns an object containing a single [GenerateContentResponse](#generatecontentresponse).
+
+###### Parameters
+
+###### request
+
+`string` | [`GenerateContentRequest`](#generatecontentrequest) | (`string` \| [`Part`](#part))[]
+
+###### Returns
+
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+##### generateContentStream()
+
+> **generateContentStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+Defined in: [ai/lib/models/generative-model.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L92)
+
+Makes a single streaming call to the model
+and returns an object containing an iterable stream that iterates
+over all chunks in the streaming response as well as
+a promise that returns the final aggregated response.
+
+###### Parameters
+
+###### request
+
+`string` | [`GenerateContentRequest`](#generatecontentrequest) | (`string` \| [`Part`](#part))[]
+
+###### Returns
+
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+##### startChat()
+
+> **startChat**(`startChatParams?`): [`ChatSession`](#chatsession)
+
+Defined in: [ai/lib/models/generative-model.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L115)
+
+Gets a new [ChatSession](#chatsession) instance which can be used for
+multi-turn chats.
+
+###### Parameters
+
+###### startChatParams?
+
+[`StartChatParams`](#startchatparams)
+
+###### Returns
+
+[`ChatSession`](#chatsession)
+
+##### normalizeModelName()
+
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+
+Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+
+**`Internal`**
+
+Normalizes the given model name to a fully qualified model resource name.
+
+###### Parameters
+
+###### modelName
+
+`string`
+
+The model name to normalize.
+
+###### backendType
+
+[`BackendType`](#backendtype-3)
+
+###### Returns
+
+`string`
+
+The fully qualified model resource name.
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+
+***
+
+### GoogleAIBackend
+
+Defined in: [ai/lib/backend.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L62)
+
+Configuration class for the Gemini Developer API.
+
+Use this with [AIOptions](#aioptions-1) when initializing the AI service via
+[getAI()](#getai) to specify the Gemini Developer API as the backend.
+
+#### Extends
+
+- [`Backend`](#abstract-backend)
+
+#### Constructors
+
+##### Constructor
+
+> **new GoogleAIBackend**(): [`GoogleAIBackend`](#googleaibackend)
+
+Defined in: [ai/lib/backend.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L66)
+
+Creates a configuration object for the Gemini Developer API backend.
+
+###### Returns
+
+[`GoogleAIBackend`](#googleaibackend)
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
+
+#### Properties
+
+##### backendType
+
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+
+Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+
+Specifies the backend type.
+
+###### Inherited from
+
+[`Backend`](#abstract-backend).[`backendType`](#backendtype)
+
+#### Methods
+
+##### \_getModelPath()
+
+> **\_getModelPath**(`project`, `model`): `string`
+
+Defined in: [ai/lib/backend.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L73)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### model
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
+
+##### \_getTemplatePath()
+
+> **\_getTemplatePath**(`project`, `templateId`): `string`
+
+Defined in: [ai/lib/backend.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L80)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### templateId
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
+
+***
+
+### ImagenImageFormat
+
+Defined in: [ai/lib/requests/imagen-image-format.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L37)
+
+**`Beta`**
+
+Defines the image format for images generated by Imagen.
+
+Use this class to specify the desired format (JPEG or PNG) and compression quality
+for images generated by Imagen. This is typically included as part of
+[ImagenModelParams](#imagenmodelparams).
+
+#### Example
+
+```javascript
+const imagenModelParams = {
+ // ... other ImagenModelParams
+ imageFormat: ImagenImageFormat.jpeg(75) // JPEG with a compression level of 75.
+}
+```
+
+#### Properties
+
+##### compressionQuality?
+
+> `optional` **compressionQuality**: `number`
+
+Defined in: [ai/lib/requests/imagen-image-format.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L45)
+
+**`Beta`**
+
+The level of compression (a number between 0 and 100).
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [ai/lib/requests/imagen-image-format.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L41)
+
+**`Beta`**
+
+The MIME type.
+
+#### Methods
+
+##### jpeg()
+
+> `static` **jpeg**(`compressionQuality?`): [`ImagenImageFormat`](#imagenimageformat)
+
+Defined in: [ai/lib/requests/imagen-image-format.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L59)
+
+**`Beta`**
+
+Creates an [ImagenImageFormat](#imagenimageformat) for a JPEG image.
+
+###### Parameters
+
+###### compressionQuality?
+
+`number`
+
+The level of compression (a number between 0 and 100).
+
+###### Returns
+
+[`ImagenImageFormat`](#imagenimageformat)
+
+An [ImagenImageFormat](#imagenimageformat) object for a JPEG image.
+
+##### png()
+
+> `static` **png**(): [`ImagenImageFormat`](#imagenimageformat)
+
+Defined in: [ai/lib/requests/imagen-image-format.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L75)
+
+**`Beta`**
+
+Creates an [ImagenImageFormat](#imagenimageformat) for a PNG image.
+
+###### Returns
+
+[`ImagenImageFormat`](#imagenimageformat)
+
+An [ImagenImageFormat](#imagenimageformat) object for a PNG image.
+
+***
+
+### ImagenModel
+
+Defined in: [ai/lib/models/imagen-model.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L55)
+
+**`Beta`**
+
+Class for Imagen model APIs.
+
+This class provides methods for generating images using the Imagen model.
+
+#### Example
+
+```javascript
+const imagen = new ImagenModel(
+ ai,
+ {
+ model: 'imagen-3.0-generate-002'
+ }
+);
+
+const response = await imagen.generateImages('A photo of a cat');
+if (response.images.length > 0) {
+ console.log(response.images[0].bytesBase64Encoded);
+}
+```
+
+#### Extends
+
+- [`AIModel`](#abstract-aimodel)
+
+#### Constructors
+
+##### Constructor
+
+> **new ImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
+
+Defined in: [ai/lib/models/imagen-model.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L75)
+
+**`Beta`**
+
+Constructs a new instance of the [ImagenModel](#imagenmodel) class.
+
+###### Parameters
+
+###### ai
+
+[`AI`](#ai)
+
+an [AI](#ai) instance.
+
+###### modelParams
+
+[`ImagenModelParams`](#imagenmodelparams)
+
+Parameters to use when making requests to Imagen.
+
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+Additional options to use when making requests.
+
+###### Returns
+
+[`ImagenModel`](#imagenmodel)
+
+###### Throws
+
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
+
+###### Overrides
+
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### \_apiSettings
+
+> `protected` **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+
+**`Internal`**
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`ImagenGenerationConfig`](#imagengenerationconfig)
+
+Defined in: [ai/lib/models/imagen-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L59)
+
+**`Beta`**
+
+The Imagen generation configuration.
+
+##### model
+
+> `readonly` **model**: `string`
+
+Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+
+**`Beta`**
+
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`model`](#model)
+
+##### requestOptions?
+
+> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [ai/lib/models/imagen-model.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L78)
+
+**`Beta`**
+
+Additional options to use when making requests.
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`ImagenSafetySettings`](#imagensafetysettings)
+
+Defined in: [ai/lib/models/imagen-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L63)
+
+**`Beta`**
+
+Safety settings for filtering inappropriate content.
+
+#### Methods
+
+##### generateImages()
+
+> **generateImages**(`prompt`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+Defined in: [ai/lib/models/imagen-model.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L104)
+
+**`Beta`**
+
+Generates images using the Imagen model and returns them as
+base64-encoded strings.
+
+###### Parameters
+
+###### prompt
+
+`string`
+
+A text prompt describing the image(s) to generate.
+
+###### Returns
+
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
+object containing the generated images.
+
+###### Throws
+
+If the request to generate images fails. This happens if the
+prompt is blocked.
+
+###### Remarks
+
+If the prompt was not blocked, but one or more of the generated images were filtered, the
+returned object will have a `filteredReason` property.
+If all images are filtered, the `images` array will be empty.
+
+##### generateImagesGCS()
+
+> **generateImagesGCS**(`prompt`, `gcsURI`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+
+Defined in: [ai/lib/models/imagen-model.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L141)
+
+**`Internal`**
+
+Generates images to Cloud Storage for Firebase using the Imagen model.
+
+ This method is temporarily internal.
+
+###### Parameters
+
+###### prompt
+
+`string`
+
+A text prompt describing the image(s) to generate.
+
+###### gcsURI
+
+`string`
+
+The URI of file stored in a Cloud Storage for Firebase bucket.
+This should be a directory. For example, `gs://my-bucket/my-directory/`.
+
+###### Returns
+
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+
+A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
+object containing the URLs of the generated images.
+
+###### Throws
+
+If the request fails to generate images fails. This happens if
+the prompt is blocked.
+
+###### Remarks
+
+If the prompt was not blocked, but one or more of the generated images were filtered, the
+returned object will have a `filteredReason` property.
+If all images are filtered, the `images` array will be empty.
+
+##### normalizeModelName()
+
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+
+Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+
+**`Internal`**
+
+Normalizes the given model name to a fully qualified model resource name.
+
+###### Parameters
+
+###### modelName
+
+`string`
+
+The model name to normalize.
+
+###### backendType
+
+[`BackendType`](#backendtype-3)
+
+###### Returns
+
+`string`
+
+The fully qualified model resource name.
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+
+***
+
+### IntegerSchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L148)
+
+Schema class for "integer" types.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new IntegerSchema**(`schemaParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L149)
+
+###### Parameters
+
+###### schemaParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+
+**`Internal`**
+
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### LiveGenerativeModel
+
+Defined in: [ai/lib/models/live-generative-model.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L44)
+
+**`Beta`**
+
+Class for Live generative model APIs. The Live API enables low-latency, two-way multimodal
+interactions with Gemini.
+
+This class should only be instantiated with [getLiveGenerativeModel](#getlivegenerativemodel).
+
+#### Extends
+
+- [`AIModel`](#abstract-aimodel)
+
+#### Constructors
+
+##### Constructor
+
+> **new LiveGenerativeModel**(`ai`, `modelParams`, `_webSocketHandler`): [`LiveGenerativeModel`](#livegenerativemodel)
+
+Defined in: [ai/lib/models/live-generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L53)
+
+**`Internal`**
+
+###### Parameters
+
+###### ai
+
+[`AI`](#ai)
+
+###### modelParams
+
+[`LiveModelParams`](#livemodelparams)
+
+###### \_webSocketHandler
+
+`WebSocketHandler`
+
+**`Internal`**
+
+###### Returns
+
+[`LiveGenerativeModel`](#livegenerativemodel)
+
+###### Overrides
+
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### \_apiSettings
+
+> `protected` **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+
+**`Internal`**
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+
+##### generationConfig
+
+> **generationConfig**: [`LiveGenerationConfig`](#livegenerationconfig)
+
+Defined in: [ai/lib/models/live-generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L45)
+
+**`Beta`**
+
+##### model
+
+> `readonly` **model**: `string`
+
+Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+
+**`Beta`**
+
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`model`](#model)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: [`Content`](#content)
+
+Defined in: [ai/lib/models/live-generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L48)
+
+**`Beta`**
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/models/live-generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L47)
+
+**`Beta`**
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/models/live-generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L46)
+
+**`Beta`**
+
+#### Methods
+
+##### connect()
+
+> **connect**(): `Promise`\<[`LiveSession`](#livesession)\>
+
+Defined in: [ai/lib/models/live-generative-model.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L76)
+
+**`Beta`**
+
+Starts a [LiveSession](#livesession).
+
+###### Returns
+
+`Promise`\<[`LiveSession`](#livesession)\>
+
+A [LiveSession](#livesession).
+
+###### Throws
+
+If the connection failed to be established with the server.
+
+##### normalizeModelName()
+
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+
+Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+
+**`Internal`**
+
+Normalizes the given model name to a fully qualified model resource name.
+
+###### Parameters
+
+###### modelName
+
+`string`
+
+The model name to normalize.
+
+###### backendType
+
+[`BackendType`](#backendtype-3)
+
+###### Returns
+
+`string`
+
+The fully qualified model resource name.
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+
+***
+
+### LiveSession
+
+Defined in: [ai/lib/methods/live-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L46)
+
+**`Beta`**
+
+Represents an active, real-time, bidirectional conversation with the model.
+
+This class should only be instantiated by calling [LiveGenerativeModel.connect](#connect).
+
+#### Constructors
+
+##### Constructor
+
+> **new LiveSession**(`webSocketHandler`, `serverMessages`): [`LiveSession`](#livesession)
+
+Defined in: [ai/lib/methods/live-session.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L63)
+
+**`Internal`**
+
+###### Parameters
+
+###### webSocketHandler
+
+`WebSocketHandler`
+
+###### serverMessages
+
+`AsyncGenerator`\<`unknown`\>
+
+###### Returns
+
+[`LiveSession`](#livesession)
+
+#### Properties
+
+##### inConversation
+
+> **inConversation**: `boolean` = `false`
+
+Defined in: [ai/lib/methods/live-session.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L58)
+
+**`Beta`**
+
+Indicates whether this Live session is being controlled by an `AudioConversationController`.
+
+##### isClosed
+
+> **isClosed**: `boolean` = `false`
+
+Defined in: [ai/lib/methods/live-session.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L52)
+
+**`Beta`**
+
+Indicates whether this Live session is closed.
+
+#### Methods
+
+##### close()
+
+> **close**(): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L272)
+
+**`Beta`**
+
+Closes this session.
+All methods on this session will throw an error once this resolves.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### receive()
+
+> **receive**(): `AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
+
+Defined in: [ai/lib/methods/live-session.ts:225](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L225)
+
+**`Beta`**
+
+Yields messages received from the server.
+This can only be used by one consumer at a time.
+
+###### Returns
+
+`AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
+
+An `AsyncGenerator` that yields server messages as they arrive.
+
+###### Throws
+
+If the session is already closed, or if we receive a response that we don't support.
+
+##### send()
+
+> **send**(`request`, `turnComplete?`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L77)
+
+**`Beta`**
+
+Sends content to the server.
+
+###### Parameters
+
+###### request
+
+The message to send to the model.
+
+`string` | (`string` \| [`Part`](#part))[]
+
+###### turnComplete?
+
+`boolean` = `true`
+
+Indicates if the turn is complete. Defaults to false.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Throws
+
+If this session has been closed.
+
+##### sendAudioRealtime()
+
+> **sendAudioRealtime**(`blob`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L143)
+
+**`Beta`**
+
+Sends audio data to the server in realtime.
+
+###### Parameters
+
+###### blob
+
+[`GenerativeContentBlob`](#generativecontentblob)
+
+The base64-encoded PCM data to send to the server in realtime.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Remarks
+
+The server requires that the audio data is base64-encoded 16-bit PCM at 16kHz
+little-endian.
+
+###### Example
+
+```javascript
+// const pcmData = ... base64-encoded 16-bit PCM at 16kHz little-endian.
+const blob = { mimeType: "audio/pcm", data: pcmData };
+liveSession.sendAudioRealtime(blob);
+```
+
+###### Throws
+
+If this session has been closed.
+
+##### sendFunctionResponses()
+
+> **sendFunctionResponses**(`functionResponses`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L200)
+
+**`Beta`**
+
+Sends function responses to the server.
+
+###### Parameters
+
+###### functionResponses
+
+[`FunctionResponse`](#functionresponse-2)[]
+
+The function responses to send.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Throws
+
+If this session has been closed.
+
+##### ~~sendMediaChunks()~~
+
+> **sendMediaChunks**(`mediaChunks`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L289)
+
+**`Beta`**
+
+Sends realtime input to the server.
+
+###### Parameters
+
+###### mediaChunks
+
+[`GenerativeContentBlob`](#generativecontentblob)[]
+
+The media chunks to send.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Deprecated
+
+Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
+
+###### Throws
+
+If this session has been closed.
+
+##### ~~sendMediaStream()~~
+
+> **sendMediaStream**(`mediaChunkStream`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L317)
+
+**`Beta`**
+
+###### Parameters
+
+###### mediaChunkStream
+
+`ReadableStream`\<[`GenerativeContentBlob`](#generativecontentblob)\>
+
+The stream of [GenerativeContentBlob](#generativecontentblob) to send.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Deprecated
+
+Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
+
+Sends a stream of [GenerativeContentBlob](#generativecontentblob).
+
+###### Throws
+
+If this session has been closed.
+
+##### sendTextRealtime()
+
+> **sendTextRealtime**(`text`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L109)
+
+**`Beta`**
+
+Sends text to the server in realtime.
+
+###### Parameters
+
+###### text
+
+`string`
+
+The text data to send.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Example
+
+```javascript
+liveSession.sendTextRealtime("Hello, how are you?");
+```
+
+###### Throws
+
+If this session has been closed.
+
+##### sendVideoRealtime()
+
+> **sendVideoRealtime**(`blob`): `Promise`\<`void`\>
+
+Defined in: [ai/lib/methods/live-session.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L176)
+
+**`Beta`**
+
+Sends video data to the server in realtime.
+
+###### Parameters
+
+###### blob
+
+[`GenerativeContentBlob`](#generativecontentblob)
+
+The base64-encoded video data to send to the server in realtime.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Remarks
+
+The server requires that the video is sent as individual video frames at 1 FPS. It
+is recommended to set `mimeType` to `image/jpeg`.
+
+###### Example
+
+```javascript
+// const videoFrame = ... base64-encoded JPEG data
+const blob = { mimeType: "image/jpeg", data: videoFrame };
+liveSession.sendVideoRealtime(blob);
+```
+
+###### Throws
+
+If this session has been closed.
+
+***
+
+### NumberSchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L161)
+
+Schema class for "number" types.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new NumberSchema**(`schemaParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L162)
+
+###### Parameters
+
+###### schemaParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+
+**`Internal`**
+
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### ObjectSchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L242)
+
+Schema class for "object" types.
+The `properties` param must be a map of `Schema` objects.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new ObjectSchema**(`schemaParams`, `properties`, `optionalProperties?`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L243)
+
+###### Parameters
+
+###### schemaParams
+
+[`SchemaParams`](#schemaparams)
+
+###### properties
+
+###### optionalProperties?
+
+`string`[] = `[]`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### optionalProperties
+
+> **optionalProperties**: `string`[] = `[]`
+
+Defined in: [ai/lib/requests/schema-builder.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L248)
+
+##### properties
+
+> **properties**: `object`
+
+Defined in: [ai/lib/requests/schema-builder.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L245)
+
+###### Index Signature
+
+\[`k`: `string`\]: [`TypedSchema`](#typedschema)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:259](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L259)
+
+**`Internal`**
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### `abstract` Schema
+
+Defined in: [ai/lib/requests/schema-builder.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L35)
+
+Parent class encompassing all Schema types, with static methods that
+allow building specific Schema types. This class can be converted with
+`JSON.stringify()` into a JSON string accepted by Vertex AI REST endpoints.
+(This string conversion is automatically done when calling SDK methods.)
+
+#### Extended by
+
+- [`IntegerSchema`](#integerschema)
+- [`NumberSchema`](#numberschema)
+- [`BooleanSchema`](#booleanschema)
+- [`StringSchema`](#stringschema)
+- [`ArraySchema`](#arrayschema)
+- [`ObjectSchema`](#objectschema)
+
+#### Implements
+
+- [`SchemaInterface`](#schemainterface)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new Schema**(`schemaParams`): [`Schema`](#abstract-schema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L68)
+
+###### Parameters
+
+###### schemaParams
+
+[`SchemaInterface`](#schemainterface)
+
+###### Returns
+
+[`Schema`](#abstract-schema)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`description`](#description-9)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`example`](#example-8)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`format`](#format-8)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`items`](#items-8)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`maxItems`](#maxitems-8)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`minItems`](#minitems-8)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`nullable`](#nullable-8)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`type`](#type-12)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+
+**`Internal`**
+
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+***
+
+### StringSchema
+
+Defined in: [ai/lib/requests/schema-builder.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L188)
+
+Schema class for "string" types. Can be used with or without
+enum values.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new StringSchema**(`schemaParams?`, `enumValues?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L190)
+
+###### Parameters
+
+###### schemaParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### enumValues?
+
+`string`[]
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/requests/schema-builder.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L189)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`type`](#type-5)
+
+#### Methods
+
+##### toJSON()
+
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/requests/schema-builder.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L201)
+
+**`Internal`**
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
+###### Overrides
+
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+
+##### array()
+
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+
+###### Parameters
+
+###### arrayParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ArraySchema`](#arrayschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`array`](#array-6)
+
+##### boolean()
+
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+
+###### Parameters
+
+###### booleanParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`BooleanSchema`](#booleanschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+
+##### enumString()
+
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+
+###### Parameters
+
+###### stringParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+
+###### Parameters
+
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`IntegerSchema`](#integerschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
+
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+
+###### Parameters
+
+###### numberParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`NumberSchema`](#numberschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`number`](#number-6)
+
+##### object()
+
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+
+###### Parameters
+
+###### objectParams
+
+[`SchemaParams`](#schemaparams) & `object`
+
+###### Returns
+
+[`ObjectSchema`](#objectschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`object`](#object-6)
+
+##### string()
+
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+
+###### Parameters
+
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+***
+
+### TemplateGenerativeModel
+
+Defined in: [ai/lib/models/template-generative-model.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L34)
+
+**`Beta`**
+
+[GenerativeModel](#generativemodel) APIs that execute on a server-side template.
+
+This class should only be instantiated with [getTemplateGenerativeModel](#gettemplategenerativemodel).
+
+#### Properties
+
+##### \_apiSettings
+
+> **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/template-generative-model.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L38)
+
+**`Internal`**
+
+##### requestOptions?
+
+> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [ai/lib/models/template-generative-model.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L43)
+
+**`Beta`**
+
+Additional options to use when making requests.
+
+#### Methods
+
+##### generateContent()
+
+> **generateContent**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+Defined in: [ai/lib/models/template-generative-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L63)
+
+**`Beta`**
+
+Makes a single non-streaming call to the model and returns an object
+containing a single [GenerateContentResponse](#generatecontentresponse).
+
+###### Parameters
+
+###### templateId
+
+`string`
+
+The ID of the server-side template to execute.
+
+###### templateVariables
+
+`object`
+
+A key-value map of variables to populate the
+template with.
+
+###### Returns
+
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+##### generateContentStream()
+
+> **generateContentStream**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+Defined in: [ai/lib/models/template-generative-model.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L87)
+
+**`Beta`**
+
+Makes a single streaming call to the model and returns an object
+containing an iterable stream that iterates over all chunks in the
+streaming response as well as a promise that returns the final aggregated
+response.
+
+###### Parameters
+
+###### templateId
+
+`string`
+
+The ID of the server-side template to execute.
+
+###### templateVariables
+
+`object`
+
+A key-value map of variables to populate the
+template with.
+
+###### Returns
+
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+***
+
+### TemplateImagenModel
+
+Defined in: [ai/lib/models/template-imagen-model.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L32)
+
+**`Beta`**
+
+Class for Imagen model APIs that execute on a server-side template.
+
+This class should only be instantiated with [getTemplateImagenModel](#gettemplateimagenmodel).
+
+#### Properties
+
+##### \_apiSettings
+
+> **\_apiSettings**: `ApiSettings`
+
+Defined in: [ai/lib/models/template-imagen-model.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L36)
+
+**`Internal`**
+
+##### requestOptions?
+
+> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [ai/lib/models/template-imagen-model.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L41)
+
+**`Beta`**
+
+Additional options to use when making requests.
+
+#### Methods
+
+##### generateImages()
+
+> **generateImages**(`templateId`, `templateVariables`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+Defined in: [ai/lib/models/template-imagen-model.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L61)
+
+**`Beta`**
+
+Makes a single call to the model and returns an object containing a single
+[ImagenGenerationResponse](#imagengenerationresponse).
+
+###### Parameters
+
+###### templateId
+
+`string`
+
+The ID of the server-side template to execute.
+
+###### templateVariables
+
+`object`
+
+A key-value map of variables to populate the
+template with.
+
+###### Returns
+
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+***
+
+### VertexAIBackend
+
+Defined in: [ai/lib/backend.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L93)
+
+Configuration class for the Vertex AI Gemini API.
+
+Use this with [AIOptions](#aioptions-1) when initializing the AI service via
+[getAI()](#getai) to specify the Vertex AI Gemini API as the backend.
+
+#### Extends
+
+- [`Backend`](#abstract-backend)
+
+#### Constructors
+
+##### Constructor
+
+> **new VertexAIBackend**(`location?`): [`VertexAIBackend`](#vertexaibackend)
+
+Defined in: [ai/lib/backend.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L108)
+
+Creates a configuration object for the Vertex AI backend.
+
+###### Parameters
+
+###### location?
+
+`string` = `DEFAULT_LOCATION`
+
+The region identifier, defaulting to `us-central1`;
+see [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
+for a list of supported locations.
+
+###### Returns
+
+[`VertexAIBackend`](#vertexaibackend)
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
+
+#### Properties
+
+##### backendType
+
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+
+Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+
+Specifies the backend type.
+
+###### Inherited from
+
+[`Backend`](#abstract-backend).[`backendType`](#backendtype)
+
+##### location
+
+> `readonly` **location**: `string`
+
+Defined in: [ai/lib/backend.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L99)
+
+The region identifier.
+See [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
+for a list of supported locations.
+
+#### Methods
+
+##### \_getModelPath()
+
+> **\_getModelPath**(`project`, `model`): `string`
+
+Defined in: [ai/lib/backend.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L120)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### model
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
+
+##### \_getTemplatePath()
+
+> **\_getTemplatePath**(`project`, `templateId`): `string`
+
+Defined in: [ai/lib/backend.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L127)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### templateId
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
+
+## Interfaces
+
+### AI
+
+Defined in: [ai/lib/public-types.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L88)
+
+An instance of the Firebase AI SDK.
+
+Do not create this instance directly. Instead, use [getAI()](#getai).
+
+#### Properties
+
+##### app
+
+> **app**: `FirebaseApp`
+
+Defined in: [ai/lib/public-types.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L92)
+
+The @firebase/app#FirebaseApp this [AI](#ai) instance is associated with.
+
+##### appCheck?
+
+> `optional` **appCheck**: `AppCheck` \| `null`
+
+Defined in: [ai/lib/public-types.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L93)
+
+##### auth?
+
+> `optional` **auth**: `Module` \| `null`
+
+Defined in: [ai/lib/public-types.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L94)
+
+##### backend
+
+> **backend**: [`Backend`](#abstract-backend)
+
+Defined in: [ai/lib/public-types.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L100)
+
+A [Backend](#abstract-backend) instance that specifies the configuration for the target backend,
+either the Gemini Developer API (using [GoogleAIBackend](#googleaibackend)) or the
+Vertex AI Gemini API (using [VertexAIBackend](#vertexaibackend)).
+
+##### ~~location~~
+
+> **location**: `string`
+
+Defined in: [ai/lib/public-types.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L110)
+
+###### Deprecated
+
+use `AI.backend.location` instead.
+
+The location configured for this AI service instance, relevant for Vertex AI backends.
+
+##### options?
+
+> `optional` **options**: [`AIOptions`](#aioptions-1)
+
+Defined in: [ai/lib/public-types.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L104)
+
+Options applied to this [AI](#ai) instance.
+
+***
+
+### AIOptions
+
+Defined in: [ai/lib/public-types.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L33)
+
+Options for initializing the AI service using [getAI()](#getai).
+This allows specifying which backend to use (Vertex AI Gemini API or Gemini Developer API)
+and configuring its specific options (like location for Vertex AI).
+
+#### Properties
+
+##### appCheck?
+
+> `optional` **appCheck**: `AppCheck` \| `null`
+
+Defined in: [ai/lib/public-types.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L43)
+
+##### auth?
+
+> `optional` **auth**: `Module` \| `null`
+
+Defined in: [ai/lib/public-types.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L44)
+
+##### backend?
+
+> `optional` **backend**: [`Backend`](#abstract-backend)
+
+Defined in: [ai/lib/public-types.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L38)
+
+The backend configuration to use for the AI service instance.
+Defaults to the Gemini Developer API backend ([GoogleAIBackend](#googleaibackend)).
+
+##### useLimitedUseAppCheckTokens?
+
+> `optional` **useLimitedUseAppCheckTokens**: `boolean`
+
+Defined in: [ai/lib/public-types.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L42)
+
+Whether to use App Check limited use tokens. Defaults to false.
+
+***
+
+### AudioTranscriptionConfig
+
+Defined in: [ai/lib/types/requests.ts:434](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L434)
+
+**`Beta`**
+
+Configuration for audio transcription in Live sessions.
+
+***
+
+### BaseParams
+
+Defined in: [ai/lib/types/requests.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L33)
+
+Base parameters for a number of methods.
+
+#### Extended by
+
+- [`ModelParams`](#modelparams)
+- [`GenerateContentRequest`](#generatecontentrequest)
+- [`StartChatParams`](#startchatparams)
+
+#### Properties
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+
+Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+
+***
+
+### Citation
+
+Defined in: [ai/lib/types/responses.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L178)
+
+A single citation.
+
+#### Properties
+
+##### endIndex?
+
+> `optional` **endIndex**: `number`
+
+Defined in: [ai/lib/types/responses.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L180)
+
+##### license?
+
+> `optional` **license**: `string`
+
+Defined in: [ai/lib/types/responses.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L182)
+
+##### publicationDate?
+
+> `optional` **publicationDate**: [`Date`](#date)
+
+Defined in: [ai/lib/types/responses.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L194)
+
+The publication date of the cited source, if available.
+
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+
+##### startIndex?
+
+> `optional` **startIndex**: `number`
+
+Defined in: [ai/lib/types/responses.ts:179](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L179)
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/responses.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L188)
+
+The title of the cited source, if available.
+
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+
+##### uri?
+
+> `optional` **uri**: `string`
+
+Defined in: [ai/lib/types/responses.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L181)
+
+***
+
+### CitationMetadata
+
+Defined in: [ai/lib/types/responses.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L170)
+
+Citation metadata that may be found on a [GenerateContentCandidate](#generatecontentcandidate).
+
+#### Properties
+
+##### citations
+
+> **citations**: [`Citation`](#citation)[]
+
+Defined in: [ai/lib/types/responses.ts:171](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L171)
+
+***
+
+### Content
+
+Defined in: [ai/lib/types/content.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L24)
+
+Content type for both prompts and response candidates.
+
+#### Properties
+
+##### parts
+
+> **parts**: [`Part`](#part)[]
+
+Defined in: [ai/lib/types/content.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L26)
+
+##### role
+
+> **role**: `"function"` \| `"user"` \| `"model"` \| `"system"`
+
+Defined in: [ai/lib/types/content.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L25)
+
+***
+
+### CountTokensRequest
+
+Defined in: [ai/lib/types/requests.ts:218](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L218)
+
+Params for calling [GenerativeModel.countTokens](#counttokens)
+
+#### Properties
+
+##### contents
+
+> **contents**: [`Content`](#content)[]
+
+Defined in: [ai/lib/types/requests.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L219)
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L231)
+
+Configuration options that control how the model generates a response.
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+Defined in: [ai/lib/types/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L223)
+
+Instructions that direct the model to behave a certain way.
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/types/requests.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L227)
+
+[Tool](#tool) configuration.
+
+***
+
+### CountTokensResponse
+
+Defined in: [ai/lib/types/responses.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L395)
+
+Response from calling [GenerativeModel.countTokens](#counttokens).
+
+#### Properties
+
+##### promptTokensDetails?
+
+> `optional` **promptTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+
+Defined in: [ai/lib/types/responses.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L413)
+
+The breakdown, by modality, of how many tokens are consumed by the prompt.
+
+##### ~~totalBillableCharacters?~~
+
+> `optional` **totalBillableCharacters**: `number`
+
+Defined in: [ai/lib/types/responses.ts:409](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L409)
+
+###### Deprecated
+
+Use `totalTokens` instead. This property is undefined when using models greater than `gemini-1.5-*`.
+
+The total number of billable characters counted across all instances
+from the request.
+
+This property is only supported when using the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property is not supported and will default to 0.
+
+##### totalTokens
+
+> **totalTokens**: `number`
+
+Defined in: [ai/lib/types/responses.ts:399](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L399)
+
+The total number of tokens counted across all instances from the request.
+
+***
+
+### CustomErrorData
+
+Defined in: [ai/lib/types/error.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L46)
+
+Details object that contains data originating from a bad HTTP response.
+
+#### Properties
+
+##### errorDetails?
+
+> `optional` **errorDetails**: [`ErrorDetails`](#errordetails-1)[]
+
+Defined in: [ai/lib/types/error.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L57)
+
+Optional additional details about the error.
+
+##### response?
+
+> `optional` **response**: [`GenerateContentResponse`](#generatecontentresponse)
+
+Defined in: [ai/lib/types/error.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L54)
+
+Response from a [GenerateContentRequest](#generatecontentrequest)
+
+##### status?
+
+> `optional` **status**: `number`
+
+Defined in: [ai/lib/types/error.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L48)
+
+HTTP status code of the error response.
+
+##### statusText?
+
+> `optional` **statusText**: `string`
+
+Defined in: [ai/lib/types/error.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L51)
+
+HTTP status text of the error response.
+
+***
+
+### Date
+
+Defined in: [ai/lib/types/responses.ts:354](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L354)
+
+Protobuf google.type.Date
+
+#### Properties
+
+##### day
+
+> **day**: `number`
+
+Defined in: [ai/lib/types/responses.ts:357](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L357)
+
+##### month
+
+> **month**: `number`
+
+Defined in: [ai/lib/types/responses.ts:356](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L356)
+
+##### year
+
+> **year**: `number`
+
+Defined in: [ai/lib/types/responses.ts:355](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L355)
+
+***
+
+### EnhancedGenerateContentResponse
+
+Defined in: [ai/lib/types/responses.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L55)
+
+Response object wrapped with helper methods.
+
+#### Extends
+
+- [`GenerateContentResponse`](#generatecontentresponse)
+
+#### Properties
+
+##### candidates?
+
+> `optional` **candidates**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
+
+Defined in: [ai/lib/types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
+
+###### Inherited from
+
+[`GenerateContentResponse`](#generatecontentresponse).[`candidates`](#candidates-1)
+
+##### functionCalls()
+
+> **functionCalls**: () => [`FunctionCall`](#functioncall-1)[] \| `undefined`
+
+Defined in: [ai/lib/types/responses.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L76)
+
+Aggregates and returns every [FunctionCall](#functioncall-1) from the first candidate of
+[GenerateContentResponse](#generatecontentresponse).
+
+###### Returns
+
+[`FunctionCall`](#functioncall-1)[] \| `undefined`
+
+###### Throws
+
+If the prompt or candidate was blocked.
+
+##### inlineDataParts()
+
+> **inlineDataParts**: () => [`InlineDataPart`](#inlinedatapart)[] \| `undefined`
+
+Defined in: [ai/lib/types/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L69)
+
+Aggregates and returns all [InlineDataPart](#inlinedatapart)s from the [GenerateContentResponse](#generatecontentresponse)'s
+first candidate.
+
+###### Returns
+
+[`InlineDataPart`](#inlinedatapart)[] \| `undefined`
+
+An array of [InlineDataPart](#inlinedatapart)s containing data from the response, if available.
+
+###### Throws
+
+If the prompt or candidate was blocked.
+
+##### promptFeedback?
+
+> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+
+Defined in: [ai/lib/types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
+
+###### Inherited from
+
+[`GenerateContentResponse`](#generatecontentresponse).[`promptFeedback`](#promptfeedback-1)
+
+##### text()
+
+> **text**: () => `string`
+
+Defined in: [ai/lib/types/responses.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L60)
+
+Returns the text string from the response, if available.
+Throws if the prompt or candidate was blocked.
+
+###### Returns
+
+`string`
+
+##### thoughtSummary()
+
+> **thoughtSummary**: () => `string` \| `undefined`
+
+Defined in: [ai/lib/types/responses.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L91)
+
+Aggregates and returns every [TextPart](#textpart) with their `thought` property set
+to `true` from the first candidate of [GenerateContentResponse](#generatecontentresponse).
+
+###### Returns
+
+`string` \| `undefined`
+
+###### Throws
+
+If the prompt or candidate was blocked.
+
+###### Remarks
+
+Thought summaries provide a brief overview of the model's internal thinking process,
+offering insight into how it arrived at the final answer. This can be useful for
+debugging, understanding the model's reasoning, and verifying its accuracy.
+
+Thoughts will only be included if [ThinkingConfig.includeThoughts](#includethoughts) is
+set to `true`.
+
+##### usageMetadata?
+
+> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+
+Defined in: [ai/lib/types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
+
+###### Inherited from
+
+[`GenerateContentResponse`](#generatecontentresponse).[`usageMetadata`](#usagemetadata-1)
+
+***
+
+### ErrorDetails
+
+Defined in: [ai/lib/types/error.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L25)
+
+Details object that may be included in an error response.
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+Any other relevant information about the error.
+
+#### Properties
+
+##### @type?
+
+> `optional` **@type**: `string`
+
+Defined in: [ai/lib/types/error.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L26)
+
+##### domain?
+
+> `optional` **domain**: `string`
+
+Defined in: [ai/lib/types/error.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L32)
+
+The domain where the error occurred.
+
+##### metadata?
+
+> `optional` **metadata**: `Record`\<`string`, `unknown`\>
+
+Defined in: [ai/lib/types/error.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L35)
+
+Additional metadata about the error.
+
+##### reason?
+
+> `optional` **reason**: `string`
+
+Defined in: [ai/lib/types/error.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L29)
+
+The reason for the error.
+
+***
+
+### FileData
+
+Defined in: [ai/lib/types/content.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L201)
+
+Data pointing to a file uploaded on Google Cloud Storage.
+
+#### Properties
+
+##### fileUri
+
+> **fileUri**: `string`
+
+Defined in: [ai/lib/types/content.ts:203](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L203)
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [ai/lib/types/content.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L202)
+
+***
+
+### FileDataPart
+
+Defined in: [ai/lib/types/content.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L130)
+
+Content part interface if the part represents [FileData](#filedata)
+
+#### Properties
+
+##### fileData
+
+> **fileData**: [`FileData`](#filedata)
+
+Defined in: [ai/lib/types/content.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L135)
+
+##### functionCall?
+
+> `optional` **functionCall**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L133)
+
+##### functionResponse?
+
+> `optional` **functionResponse**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L134)
+
+##### inlineData?
+
+> `optional` **inlineData**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L132)
+
+##### text?
+
+> `optional` **text**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L131)
+
+##### thought?
+
+> `optional` **thought**: `boolean`
+
+Defined in: [ai/lib/types/content.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L136)
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:140](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L140)
+
+**`Internal`**
+
+***
+
+### FunctionCall
+
+Defined in: [ai/lib/types/content.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L149)
+
+A predicted [FunctionCall](#functioncall-1) returned from the model
+that contains a string representing the [FunctionDeclaration.name](#name-1)
+and a structured JSON object containing the parameters and their values.
+
+#### Properties
+
+##### args
+
+> **args**: `object`
+
+Defined in: [ai/lib/types/content.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L160)
+
+##### id?
+
+> `optional` **id**: `string`
+
+Defined in: [ai/lib/types/content.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L158)
+
+The id of the function call. This must be sent back in the associated [FunctionResponse](#functionresponse-2).
+
+###### Remarks
+
+This property is only supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property will be
+`undefined`.
+
+##### name
+
+> **name**: `string`
+
+Defined in: [ai/lib/types/content.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L159)
+
+***
+
+### FunctionCallingConfig
+
+Defined in: [ai/lib/types/requests.ts:350](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L350)
+
+#### Properties
+
+##### allowedFunctionNames?
+
+> `optional` **allowedFunctionNames**: `string`[]
+
+Defined in: [ai/lib/types/requests.ts:352](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L352)
+
+##### mode?
+
+> `optional` **mode**: [`FunctionCallingMode`](#functioncallingmode)
+
+Defined in: [ai/lib/types/requests.ts:351](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L351)
+
+***
+
+### FunctionCallPart
+
+Defined in: [ai/lib/types/content.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L98)
+
+Content part interface if the part represents a [FunctionCall](#functioncall-1).
+
+#### Properties
+
+##### functionCall
+
+> **functionCall**: [`FunctionCall`](#functioncall-1)
+
+Defined in: [ai/lib/types/content.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L101)
+
+##### functionResponse?
+
+> `optional` **functionResponse**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L102)
+
+##### inlineData?
+
+> `optional` **inlineData**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L100)
+
+##### text?
+
+> `optional` **text**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L99)
+
+##### thought?
+
+> `optional` **thought**: `boolean`
+
+Defined in: [ai/lib/types/content.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L103)
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L107)
+
+**`Internal`**
+
+***
+
+### FunctionDeclaration
+
+Defined in: [ai/lib/types/requests.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L264)
+
+Structured representation of a function declaration as defined by the
+[OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3).
+Included
+in this declaration are the function name and parameters. This
+`FunctionDeclaration` is a representation of a block of code that can be used
+as a Tool by the model and executed by the client.
+
+#### Properties
+
+##### description
+
+> **description**: `string`
+
+Defined in: [ai/lib/types/requests.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L275)
+
+Description and purpose of the function. Model uses it to decide
+how and whether to call the function.
+
+##### name
+
+> **name**: `string`
+
+Defined in: [ai/lib/types/requests.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L270)
+
+The name of the function to call. Must start with a letter or an
+underscore. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with
+a max length of 64.
+
+##### parameters?
+
+> `optional` **parameters**: [`ObjectSchemaInterface`](#objectschemainterface)
+
+Defined in: [ai/lib/types/requests.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L281)
+
+Optional. Describes the parameters to this function in JSON Schema Object
+format. Reflects the Open API 3.03 Parameter Object. Parameter names are
+case-sensitive. For a function with no parameters, this can be left unset.
+
+***
+
+### FunctionDeclarationsTool
+
+Defined in: [ai/lib/types/requests.ts:325](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L325)
+
+A `FunctionDeclarationsTool` is a piece of code that enables the system to
+interact with external systems to perform an action, or set of actions,
+outside of knowledge and scope of the model.
+
+#### Properties
+
+##### functionDeclarations?
+
+> `optional` **functionDeclarations**: [`FunctionDeclaration`](#functiondeclaration)[]
+
+Defined in: [ai/lib/types/requests.ts:336](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L336)
+
+Optional. One or more function declarations
+to be passed to the model along with the current user query. Model may
+decide to call a subset of these functions by populating
+[FunctionCall](#functioncall-1) in the response. User should
+provide a [FunctionResponse](#functionresponse-2) for each
+function call in the next turn. Based on the function responses, the model will
+generate the final response back to the user. Maximum 64 function
+declarations can be provided.
+
+***
+
+### FunctionResponse
+
+Defined in: [ai/lib/types/content.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L172)
+
+The result output from a [FunctionCall](#functioncall-1) that contains a string
+representing the [FunctionDeclaration.name](#name-1)
+and a structured JSON object containing any output
+from the function is used as context to the model.
+This should contain the result of a [FunctionCall](#functioncall-1)
+made based on model prediction.
+
+#### Properties
+
+##### id?
+
+> `optional` **id**: `string`
+
+Defined in: [ai/lib/types/content.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L180)
+
+The id of the [FunctionCall](#functioncall-1).
+
+###### Remarks
+
+This property is only supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property will be
+`undefined`.
+
+##### name
+
+> **name**: `string`
+
+Defined in: [ai/lib/types/content.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L181)
+
+##### response
+
+> **response**: `object`
+
+Defined in: [ai/lib/types/content.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L182)
+
+***
+
+### FunctionResponsePart
+
+Defined in: [ai/lib/types/content.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L114)
+
+Content part interface if the part represents [FunctionResponse](#functionresponse-2).
+
+#### Properties
+
+##### functionCall?
+
+> `optional` **functionCall**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L117)
+
+##### functionResponse
+
+> **functionResponse**: [`FunctionResponse`](#functionresponse-2)
+
+Defined in: [ai/lib/types/content.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L118)
+
+##### inlineData?
+
+> `optional` **inlineData**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L116)
+
+##### text?
+
+> `optional` **text**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L115)
+
+##### thought?
+
+> `optional` **thought**: `boolean`
+
+Defined in: [ai/lib/types/content.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L119)
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L123)
+
+**`Internal`**
+
+***
+
+### GenerateContentCandidate
+
+Defined in: [ai/lib/types/responses.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L156)
+
+A candidate returned as part of a [GenerateContentResponse](#generatecontentresponse).
+
+#### Properties
+
+##### citationMetadata?
+
+> `optional` **citationMetadata**: [`CitationMetadata`](#citationmetadata)
+
+Defined in: [ai/lib/types/responses.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L162)
+
+##### content
+
+> **content**: [`Content`](#content)
+
+Defined in: [ai/lib/types/responses.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L158)
+
+##### finishMessage?
+
+> `optional` **finishMessage**: `string`
+
+Defined in: [ai/lib/types/responses.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L160)
+
+##### finishReason?
+
+> `optional` **finishReason**: [`FinishReason`](#finishreason)
+
+Defined in: [ai/lib/types/responses.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L159)
+
+##### groundingMetadata?
+
+> `optional` **groundingMetadata**: [`GroundingMetadata`](#groundingmetadata-2)
+
+Defined in: [ai/lib/types/responses.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L163)
+
+##### index
+
+> **index**: `number`
+
+Defined in: [ai/lib/types/responses.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L157)
+
+##### safetyRatings?
+
+> `optional` **safetyRatings**: [`SafetyRating`](#safetyrating)[]
+
+Defined in: [ai/lib/types/responses.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L161)
+
+***
+
+### GenerateContentRequest
+
+Defined in: [ai/lib/types/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L65)
+
+Request sent through [GenerativeModel.generateContent](#generatecontent)
+
+#### Extends
+
+- [`BaseParams`](#baseparams)
+
+#### Properties
+
+##### contents
+
+> **contents**: [`Content`](#content)[]
+
+Defined in: [ai/lib/types/requests.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L66)
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`generationConfig`](#generationconfig-3)
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+
+Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`safetySettings`](#safetysettings-2)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+Defined in: [ai/lib/types/requests.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L69)
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L68)
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/types/requests.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L67)
+
+***
+
+### GenerateContentResponse
+
+Defined in: [ai/lib/types/responses.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L101)
+
+Individual response from [GenerativeModel.generateContent](#generatecontent) and
+[GenerativeModel.generateContentStream](#generatecontentstream).
+`generateContentStream()` will return one in each chunk until
+the stream is done.
+
+#### Extended by
+
+- [`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)
+
+#### Properties
+
+##### candidates?
+
+> `optional` **candidates**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
+
+Defined in: [ai/lib/types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
+
+##### promptFeedback?
+
+> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+
+Defined in: [ai/lib/types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
+
+##### usageMetadata?
+
+> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+
+Defined in: [ai/lib/types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
+
+***
+
+### GenerateContentResult
+
+Defined in: [ai/lib/types/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L33)
+
+Result object returned from [GenerativeModel.generateContent](#generatecontent) call.
+
+#### Properties
+
+##### response
+
+> **response**: [`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)
+
+Defined in: [ai/lib/types/responses.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L34)
+
+***
+
+### GenerateContentStreamResult
+
+Defined in: [ai/lib/types/responses.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L45)
+
+Result object returned from [GenerativeModel.generateContentStream](#generatecontentstream) call.
+Iterate over `stream` to get chunks as they come in and/or
+use the `response` promise to get the aggregated response when
+the stream is done.
+
+#### Properties
+
+##### response
+
+> **response**: `Promise`\<[`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)\>
+
+Defined in: [ai/lib/types/responses.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L47)
+
+##### stream
+
+> **stream**: `AsyncGenerator`\<[`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)\>
+
+Defined in: [ai/lib/types/responses.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L46)
+
+***
+
+### GenerationConfig
+
+Defined in: [ai/lib/types/requests.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L93)
+
+Config options for content-related requests
+
+#### Properties
+
+##### candidateCount?
+
+> `optional` **candidateCount**: `number`
+
+Defined in: [ai/lib/types/requests.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L94)
+
+##### frequencyPenalty?
+
+> `optional` **frequencyPenalty**: `number`
+
+Defined in: [ai/lib/types/requests.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L101)
+
+##### maxOutputTokens?
+
+> `optional` **maxOutputTokens**: `number`
+
+Defined in: [ai/lib/types/requests.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L96)
+
+##### presencePenalty?
+
+> `optional` **presencePenalty**: `number`
+
+Defined in: [ai/lib/types/requests.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L100)
+
+##### responseMimeType?
+
+> `optional` **responseMimeType**: `string`
+
+Defined in: [ai/lib/types/requests.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L108)
+
+Output response MIME type of the generated candidate text.
+Supported MIME types are `text/plain` (default, text output),
+`application/json` (JSON response in the candidates), and
+`text/x.enum`.
+
+##### responseModalities?
+
+> `optional` **responseModalities**: [`ResponseModality`](#responsemodality)[]
+
+Defined in: [ai/lib/types/requests.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L127)
+
+**`Beta`**
+
+Generation modalities to be returned in generation responses.
+
+###### Remarks
+
+- Multimodal response generation is only supported by some Gemini models and versions; see [model versions](https://firebase.google.com/docs/vertex-ai/models).
+ - Only image generation (`ResponseModality.IMAGE`) is supported.
+
+##### responseSchema?
+
+> `optional` **responseSchema**: [`SchemaRequest`](#schemarequest) \| [`TypedSchema`](#typedschema)
+
+Defined in: [ai/lib/types/requests.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L117)
+
+Output response schema of the generated candidate text. This
+value can be a class generated with a [Schema](#abstract-schema) static method
+like `Schema.string()` or `Schema.object()` or it can be a plain
+JS object matching the [SchemaRequest](#schemarequest) interface.
+ Note: This only applies when the specified `responseMIMEType` supports a schema; currently
+this is limited to `application/json` and `text/x.enum`.
+
+##### stopSequences?
+
+> `optional` **stopSequences**: `string`[]
+
+Defined in: [ai/lib/types/requests.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L95)
+
+##### temperature?
+
+> `optional` **temperature**: `number`
+
+Defined in: [ai/lib/types/requests.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L97)
+
+##### thinkingConfig?
+
+> `optional` **thinkingConfig**: [`ThinkingConfig`](#thinkingconfig-1)
+
+Defined in: [ai/lib/types/requests.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L131)
+
+Configuration for "thinking" behavior of compatible Gemini models.
+
+##### topK?
+
+> `optional` **topK**: `number`
+
+Defined in: [ai/lib/types/requests.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L99)
+
+##### topP?
+
+> `optional` **topP**: `number`
+
+Defined in: [ai/lib/types/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L98)
+
+***
+
+### GenerativeContentBlob
+
+Defined in: [ai/lib/types/content.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L189)
+
+Interface for sending an image.
+
+#### Properties
+
+##### data
+
+> **data**: `string`
+
+Defined in: [ai/lib/types/content.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L194)
+
+Image as a base64 string.
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [ai/lib/types/content.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L190)
+
+***
+
+### GoogleAICitationMetadata
+
+Defined in: [ai/lib/types/googleai.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L68)
+
+**`Internal`**
+
+#### Properties
+
+##### citationSources
+
+> **citationSources**: [`Citation`](#citation)[]
+
+Defined in: [ai/lib/types/googleai.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L69)
+
+***
+
+### GoogleAICountTokensRequest
+
+Defined in: [ai/lib/types/googleai.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L33)
+
+**`Internal`**
+
+#### Properties
+
+##### generateContentRequest
+
+> **generateContentRequest**: `object`
+
+Defined in: [ai/lib/types/googleai.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L34)
+
+###### contents
+
+> **contents**: [`Content`](#content)[]
+
+###### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+###### model
+
+> **model**: `string`
+
+###### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+###### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+***
+
+### GoogleAIGenerateContentCandidate
+
+Defined in: [ai/lib/types/googleai.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L55)
+
+**`Internal`**
+
+#### Properties
+
+##### citationMetadata?
+
+> `optional` **citationMetadata**: [`GoogleAICitationMetadata`](#googleaicitationmetadata)
+
+Defined in: [ai/lib/types/googleai.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L61)
+
+##### content
+
+> **content**: [`Content`](#content)
+
+Defined in: [ai/lib/types/googleai.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L57)
+
+##### finishMessage?
+
+> `optional` **finishMessage**: `string`
+
+Defined in: [ai/lib/types/googleai.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L59)
+
+##### finishReason?
+
+> `optional` **finishReason**: [`FinishReason`](#finishreason)
+
+Defined in: [ai/lib/types/googleai.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L58)
+
+##### groundingMetadata?
+
+> `optional` **groundingMetadata**: [`GroundingMetadata`](#groundingmetadata-2)
+
+Defined in: [ai/lib/types/googleai.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L62)
+
+##### index
+
+> **index**: `number`
+
+Defined in: [ai/lib/types/googleai.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L56)
+
+##### safetyRatings?
+
+> `optional` **safetyRatings**: [`SafetyRating`](#safetyrating)[]
+
+Defined in: [ai/lib/types/googleai.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L60)
+
+***
+
+### GoogleAIGenerateContentResponse
+
+Defined in: [ai/lib/types/googleai.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L46)
+
+**`Internal`**
+
+#### Properties
+
+##### candidates?
+
+> `optional` **candidates**: [`GoogleAIGenerateContentCandidate`](#googleaigeneratecontentcandidate)[]
+
+Defined in: [ai/lib/types/googleai.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L47)
+
+##### promptFeedback?
+
+> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+
+Defined in: [ai/lib/types/googleai.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L48)
+
+##### usageMetadata?
+
+> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+
+Defined in: [ai/lib/types/googleai.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L49)
+
+***
+
+### GoogleSearch
+
+Defined in: [ai/lib/types/requests.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L317)
+
+Specifies the Google Search configuration.
+
+#### Remarks
+
+Currently, this is an empty object, but it's reserved for future configuration options.
+
+***
+
+### GoogleSearchTool
+
+Defined in: [ai/lib/types/requests.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L295)
+
+A tool that allows a Gemini model to connect to Google Search to access and incorporate
+up-to-date information from the web into its responses.
+
+Important: If using Grounding with Google Search, you are required to comply with the
+"Grounding with Google Search" usage requirements for your chosen API provider: [Gemini Developer API](https://ai.google.dev/gemini-api/terms#grounding-with-google-search)
+or Vertex AI Gemini API (see [Service Terms](https://cloud.google.com/terms/service-terms)
+section within the Service Specific Terms).
+
+#### Properties
+
+##### googleSearch
+
+> **googleSearch**: [`GoogleSearch`](#googlesearch)
+
+Defined in: [ai/lib/types/requests.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L306)
+
+Specifies the Google Search configuration.
+Currently, this is an empty object, but it's reserved for future configuration options.
+Specifies the Google Search configuration.
+
+When using this feature, you are required to comply with the "Grounding with Google Search"
+usage requirements for your chosen API provider: [Gemini Developer API](https://ai.google.dev/gemini-api/terms#grounding-with-google-search)
+or Vertex AI Gemini API (see [Service Terms](https://cloud.google.com/terms/service-terms)
+section within the Service Specific Terms).
+
+***
+
+### ~~GroundingAttribution~~
+
+Defined in: [ai/lib/types/responses.ts:296](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L296)
+
+#### Deprecated
+
+#### Properties
+
+##### ~~confidenceScore?~~
+
+> `optional` **confidenceScore**: `number`
+
+Defined in: [ai/lib/types/responses.ts:298](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L298)
+
+##### ~~retrievedContext?~~
+
+> `optional` **retrievedContext**: [`RetrievedContextAttribution`](#retrievedcontextattribution)
+
+Defined in: [ai/lib/types/responses.ts:300](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L300)
+
+##### ~~segment~~
+
+> **segment**: [`Segment`](#segment-2)
+
+Defined in: [ai/lib/types/responses.ts:297](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L297)
+
+##### ~~web?~~
+
+> `optional` **web**: [`WebAttribution`](#webattribution)
+
+Defined in: [ai/lib/types/responses.ts:299](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L299)
+
+***
+
+### GroundingChunk
+
+Defined in: [ai/lib/types/responses.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L237)
+
+Represents a chunk of retrieved data that supports a claim in the model's response. This is part
+of the grounding information provided when grounding is enabled.
+
+#### Properties
+
+##### web?
+
+> `optional` **web**: [`WebGroundingChunk`](#webgroundingchunk)
+
+Defined in: [ai/lib/types/responses.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L241)
+
+Contains details if the grounding chunk is from a web source.
+
+***
+
+### GroundingMetadata
+
+Defined in: [ai/lib/types/responses.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L209)
+
+Metadata returned when grounding is enabled.
+
+Currently, only Grounding with Google Search is supported (see [GoogleSearchTool](#googlesearchtool)).
+
+Important: If using Grounding with Google Search, you are required to comply with the
+"Grounding with Google Search" usage requirements for your chosen API provider: [Gemini Developer API](https://ai.google.dev/gemini-api/terms#grounding-with-google-search)
+or Vertex AI Gemini API (see [Service Terms](https://cloud.google.com/terms/service-terms)
+section within the Service Specific Terms).
+
+#### Properties
+
+##### groundingChunks?
+
+> `optional` **groundingChunks**: [`GroundingChunk`](#groundingchunk)[]
+
+Defined in: [ai/lib/types/responses.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L214)
+
+A list of [GroundingChunk](#groundingchunk) objects. Each chunk represents a piece of retrieved content
+(for example, from a web page). that the model used to ground its response.
+
+##### groundingSupports?
+
+> `optional` **groundingSupports**: [`GroundingSupport`](#groundingsupport)[]
+
+Defined in: [ai/lib/types/responses.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L219)
+
+A list of [GroundingSupport](#groundingsupport) objects. Each object details how specific segments of the
+model's response are supported by the `groundingChunks`.
+
+##### ~~retrievalQueries?~~
+
+> `optional` **retrievalQueries**: `string`[]
+
+Defined in: [ai/lib/types/responses.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L228)
+
+###### Deprecated
+
+Use [GroundingSupport](#groundingsupport) instead.
+
+##### webSearchQueries?
+
+> `optional` **webSearchQueries**: `string`[]
+
+Defined in: [ai/lib/types/responses.ts:224](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L224)
+
+A list of web search queries that the model performed to gather the grounding information.
+These can be used to allow users to explore the search results themselves.
+
+***
+
+### GroundingSupport
+
+Defined in: [ai/lib/types/responses.ts:277](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L277)
+
+Provides information about how a specific segment of the model's response is supported by the
+retrieved grounding chunks.
+
+#### Properties
+
+##### groundingChunkIndices?
+
+> `optional` **groundingChunkIndices**: `number`[]
+
+Defined in: [ai/lib/types/responses.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L289)
+
+A list of indices that refer to specific [GroundingChunk](#groundingchunk) objects within the
+[GroundingMetadata.groundingChunks](#groundingchunks) array. These referenced chunks
+are the sources that support the claim made in the associated `segment` of the response.
+For example, an array `[1, 3, 4]` means that `groundingChunks[1]`, `groundingChunks[3]`,
+and `groundingChunks[4]` are the retrieved content supporting this part of the response.
+
+##### segment?
+
+> `optional` **segment**: [`Segment`](#segment-2)
+
+Defined in: [ai/lib/types/responses.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L281)
+
+Specifies the segment of the model's response content that this grounding support pertains to.
+
+***
+
+### ImagenGCSImage
+
+Defined in: [ai/lib/types/imagen/responses.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L42)
+
+**`Beta`**
+
+An image generated by Imagen, stored in a Cloud Storage for Firebase bucket.
+
+This feature is not available yet.
+
+#### Properties
+
+##### gcsURI
+
+> **gcsURI**: `string`
+
+Defined in: [ai/lib/types/imagen/responses.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L54)
+
+**`Beta`**
+
+The URI of the file stored in a Cloud Storage for Firebase bucket.
+
+###### Example
+
+```ts
+`"gs://bucket-name/path/sample_0.jpg"`.
+```
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [ai/lib/types/imagen/responses.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L48)
+
+**`Beta`**
+
+The MIME type of the image; either `"image/png"` or `"image/jpeg"`.
+
+To request a different format, set the `imageFormat` property in your [ImagenGenerationConfig](#imagengenerationconfig).
+
+***
+
+### ImagenGenerationConfig
+
+Defined in: [ai/lib/types/imagen/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L54)
+
+**`Beta`**
+
+Configuration options for generating images with Imagen.
+
+See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images-imagen) for
+more details.
+
+#### Properties
+
+##### addWatermark?
+
+> `optional` **addWatermark**: `boolean`
+
+Defined in: [ai/lib/types/imagen/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L98)
+
+**`Beta`**
+
+Whether to add an invisible watermark to generated images.
+
+If set to `true`, an invisible SynthID watermark is embedded in generated images to indicate
+that they are AI generated. If set to `false`, watermarking will be disabled.
+
+For Imagen 3 models, the default value is `true`; see the addWatermark
+documentation for more details.
+
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this will default to true,
+and cannot be turned off.
+
+##### aspectRatio?
+
+> `optional` **aspectRatio**: [`ImagenAspectRatio`](#imagenaspectratio)
+
+Defined in: [ai/lib/types/imagen/requests.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L79)
+
+**`Beta`**
+
+The aspect ratio of the generated images. The default value is square 1:1.
+Supported aspect ratios depend on the Imagen model, see (ImagenAspectRatio:type)
+for more details.
+
+##### imageFormat?
+
+> `optional` **imageFormat**: [`ImagenImageFormat`](#imagenimageformat)
+
+Defined in: [ai/lib/types/imagen/requests.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L85)
+
+**`Beta`**
+
+The image format of the generated images. The default is PNG.
+
+See [ImagenImageFormat](#imagenimageformat) for more details.
+
+##### negativePrompt?
+
+> `optional` **negativePrompt**: `string`
+
+Defined in: [ai/lib/types/imagen/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L65)
+
+**`Beta`**
+
+A description of what should be omitted from the generated images.
+
+Support for negative prompts depends on the Imagen model.
+
+See the [documentation](http://firebase.google.com/docs/vertex-ai/model-parameters#imagen) for more details.
+
+This is no longer supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)) in versions
+greater than `imagen-3.0-generate-002`.
+
+##### numberOfImages?
+
+> `optional` **numberOfImages**: `number`
+
+Defined in: [ai/lib/types/imagen/requests.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L73)
+
+**`Beta`**
+
+The number of images to generate. The default value is 1.
+
+The number of sample images that may be generated in each request depends on the model
+(typically up to 4); see the sampleCount
+documentation for more details.
+
+***
+
+### ImagenGenerationResponse
+
+Defined in: [ai/lib/types/imagen/responses.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L62)
+
+**`Beta`**
+
+The response from a request to generate images with Imagen.
+
+#### Type Parameters
+
+##### T
+
+`T` *extends* [`ImagenInlineImage`](#imageninlineimage) \| [`ImagenGCSImage`](#imagengcsimage)
+
+#### Properties
+
+##### filteredReason?
+
+> `optional` **filteredReason**: `string`
+
+Defined in: [ai/lib/types/imagen/responses.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L81)
+
+**`Beta`**
+
+The reason that images were filtered out. This property will only be defined if one
+or more images were filtered.
+
+Images may be filtered out due to the (ImagenSafetyFilterLevel:type),
+(ImagenPersonFilterLevel:type), or filtering included in the model.
+The filter levels may be adjusted in your [ImagenSafetySettings](#imagensafetysettings).
+
+See the [Responsible AI and usage guidelines for Imagen](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen)
+for more details.
+
+##### images
+
+> **images**: `T`[]
+
+Defined in: [ai/lib/types/imagen/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L69)
+
+**`Beta`**
+
+The images generated by Imagen.
+
+The number of images generated may be fewer than the number requested if one or more were
+filtered out; see `filteredReason`.
+
+***
+
+### ImagenInlineImage
+
+Defined in: [ai/lib/types/imagen/responses.ts:23](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L23)
+
+**`Beta`**
+
+An image generated by Imagen, represented as inline data.
+
+#### Properties
+
+##### bytesBase64Encoded
+
+> **bytesBase64Encoded**: `string`
+
+Defined in: [ai/lib/types/imagen/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L33)
+
+**`Beta`**
+
+The base64-encoded image data.
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [ai/lib/types/imagen/responses.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L29)
+
+**`Beta`**
+
+The MIME type of the image; either `"image/png"` or `"image/jpeg"`.
+
+To request a different format, set the `imageFormat` property in your [ImagenGenerationConfig](#imagengenerationconfig).
+
+***
+
+### ImagenModelParams
+
+Defined in: [ai/lib/types/imagen/requests.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L25)
+
+**`Beta`**
+
+Parameters for configuring an [ImagenModel](#imagenmodel).
+
+#### Properties
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`ImagenGenerationConfig`](#imagengenerationconfig)
+
+Defined in: [ai/lib/types/imagen/requests.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L39)
+
+**`Beta`**
+
+Configuration options for generating images with Imagen.
+
+##### model
+
+> **model**: `string`
+
+Defined in: [ai/lib/types/imagen/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L35)
+
+**`Beta`**
+
+The Imagen model to use for generating images.
+For example: `imagen-3.0-generate-002`.
+
+Only Imagen 3 models (named `imagen-3.0-*`) are supported.
+
+See [model versions](https://firebase.google.com/docs/vertex-ai/models)
+for a full list of supported Imagen 3 models.
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`ImagenSafetySettings`](#imagensafetysettings)
+
+Defined in: [ai/lib/types/imagen/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L43)
+
+**`Beta`**
+
+Safety settings for filtering potentially inappropriate content.
+
+***
+
+### ImagenSafetySettings
+
+Defined in: [ai/lib/types/imagen/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L200)
+
+**`Beta`**
+
+Settings for controlling the aggressiveness of filtering out sensitive content.
+
+See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images)
+for more details.
+
+#### Properties
+
+##### personFilterLevel?
+
+> `optional` **personFilterLevel**: [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel)
+
+Defined in: [ai/lib/types/imagen/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L209)
+
+**`Beta`**
+
+A filter level controlling whether generation of images containing people or faces is allowed.
+
+##### safetyFilterLevel?
+
+> `optional` **safetyFilterLevel**: [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel)
+
+Defined in: [ai/lib/types/imagen/requests.ts:205](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L205)
+
+**`Beta`**
+
+A filter level controlling how aggressive to filter out sensitive content from generated
+images.
+
+***
+
+### InlineDataPart
+
+Defined in: [ai/lib/types/content.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L61)
+
+Content part interface if the part represents an image.
+
+#### Properties
+
+##### functionCall?
+
+> `optional` **functionCall**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L64)
+
+##### functionResponse?
+
+> `optional` **functionResponse**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L65)
+
+##### inlineData
+
+> **inlineData**: [`GenerativeContentBlob`](#generativecontentblob)
+
+Defined in: [ai/lib/types/content.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L63)
+
+##### text?
+
+> `optional` **text**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L62)
+
+##### thought?
+
+> `optional` **thought**: `boolean`
+
+Defined in: [ai/lib/types/content.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L70)
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L74)
+
+**`Internal`**
+
+##### videoMetadata?
+
+> `optional` **videoMetadata**: [`VideoMetadata`](#videometadata-1)
+
+Defined in: [ai/lib/types/content.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L69)
+
+Applicable if `inlineData` is a video.
+
+***
+
+### LiveGenerationConfig
+
+Defined in: [ai/lib/types/requests.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L139)
+
+**`Beta`**
+
+Configuration parameters used by [LiveGenerativeModel](#livegenerativemodel) to control live content generation.
+
+#### Properties
+
+##### frequencyPenalty?
+
+> `optional` **frequencyPenalty**: `number`
+
+Defined in: [ai/lib/types/requests.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L178)
+
+**`Beta`**
+
+Frequency penalties.
+
+##### inputAudioTranscription?
+
+> `optional` **inputAudioTranscription**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
+
+Defined in: [ai/lib/types/requests.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L191)
+
+**`Beta`**
+
+Enables transcription of audio input.
+
+When enabled, the model will respond with transcriptions of your audio input in the `inputTranscriptions` property
+in [LiveServerContent](#liveservercontent) messages. Note that the transcriptions are broken up across
+messages, so you may only receive small amounts of text per message. For example, if you ask the model
+"How are you today?", the model may transcribe that input across three messages, broken up as "How a", "re yo", "u today?".
+
+##### maxOutputTokens?
+
+> `optional` **maxOutputTokens**: `number`
+
+Defined in: [ai/lib/types/requests.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L148)
+
+**`Beta`**
+
+Specifies the maximum number of tokens that can be generated in the response. The number of
+tokens per word varies depending on the language outputted. Is unbounded by default.
+
+##### outputAudioTranscription?
+
+> `optional` **outputAudioTranscription**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
+
+Defined in: [ai/lib/types/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L200)
+
+**`Beta`**
+
+Enables transcription of audio input.
+
+When enabled, the model will respond with transcriptions of its audio output in the `outputTranscription` property
+in [LiveServerContent](#liveservercontent) messages. Note that the transcriptions are broken up across
+messages, so you may only receive small amounts of text per message. For example, if the model says
+"How are you today?", the model may transcribe that output across three messages, broken up as "How a", "re yo", "u today?".
+
+##### presencePenalty?
+
+> `optional` **presencePenalty**: `number`
+
+Defined in: [ai/lib/types/requests.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L174)
+
+**`Beta`**
+
+Positive penalties.
+
+##### responseModalities?
+
+> `optional` **responseModalities**: [`ResponseModality`](#responsemodality)[]
+
+Defined in: [ai/lib/types/requests.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L182)
+
+**`Beta`**
+
+The modalities of the response.
+
+##### speechConfig?
+
+> `optional` **speechConfig**: [`SpeechConfig`](#speechconfig-1)
+
+Defined in: [ai/lib/types/requests.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L143)
+
+**`Beta`**
+
+Configuration for speech synthesis.
+
+##### temperature?
+
+> `optional` **temperature**: `number`
+
+Defined in: [ai/lib/types/requests.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L154)
+
+**`Beta`**
+
+Controls the degree of randomness in token selection. A `temperature` value of 0 means that the highest
+probability tokens are always selected. In this case, responses for a given prompt are mostly
+deterministic, but a small amount of variation is still possible.
+
+##### topK?
+
+> `optional` **topK**: `number`
+
+Defined in: [ai/lib/types/requests.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L170)
+
+**`Beta`**
+
+Changes how the model selects token for output. A `topK` value of 1 means the select token is
+the most probable among all tokens in the model's vocabulary, while a `topK` value 3 means that
+the next token is selected from among the 3 most probably using probabilities sampled. Tokens
+are then further filtered with the highest selected `temperature` sampling. Defaults to 40
+if unspecified.
+
+##### topP?
+
+> `optional` **topP**: `number`
+
+Defined in: [ai/lib/types/requests.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L162)
+
+**`Beta`**
+
+Changes how the model selects tokens for output. Tokens are
+selected from the most to least probable until the sum of their probabilities equals the `topP`
+value. For example, if tokens A, B, and C have probabilities of 0.3, 0.2, and 0.1 respectively
+and the `topP` value is 0.5, then the model will select either A or B as the next token by using
+the `temperature` and exclude C as a candidate. Defaults to 0.95 if unset.
+
+***
+
+### LiveModelParams
+
+Defined in: [ai/lib/types/requests.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L53)
+
+**`Beta`**
+
+Params passed to [getLiveGenerativeModel](#getlivegenerativemodel).
+
+#### Properties
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`LiveGenerationConfig`](#livegenerationconfig)
+
+Defined in: [ai/lib/types/requests.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L55)
+
+**`Beta`**
+
+##### model
+
+> **model**: `string`
+
+Defined in: [ai/lib/types/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L54)
+
+**`Beta`**
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+Defined in: [ai/lib/types/requests.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L58)
+
+**`Beta`**
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L57)
+
+**`Beta`**
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/types/requests.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L56)
+
+**`Beta`**
+
+***
+
+### LiveServerContent
+
+Defined in: [ai/lib/types/responses.ts:421](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L421)
+
+**`Beta`**
+
+An incremental content update from the model.
+
+#### Properties
+
+##### inputTranscription?
+
+> `optional` **inputTranscription**: [`Transcription`](#transcription)
+
+Defined in: [ai/lib/types/responses.ts:440](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L440)
+
+**`Beta`**
+
+Transcription of the audio that was input to the model.
+
+##### interrupted?
+
+> `optional` **interrupted**: `boolean`
+
+Defined in: [ai/lib/types/responses.ts:436](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L436)
+
+**`Beta`**
+
+Indicates whether the model was interrupted by the client. An interruption occurs when
+the client sends a message before the model finishes it's turn. This is `undefined` if the
+model was not interrupted.
+
+##### modelTurn?
+
+> `optional` **modelTurn**: [`Content`](#content)
+
+Defined in: [ai/lib/types/responses.ts:426](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L426)
+
+**`Beta`**
+
+The content that the model has generated as part of the current conversation with the user.
+
+##### outputTranscription?
+
+> `optional` **outputTranscription**: [`Transcription`](#transcription)
+
+Defined in: [ai/lib/types/responses.ts:444](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L444)
+
+**`Beta`**
+
+Transcription of the audio output from the model.
+
+##### turnComplete?
+
+> `optional` **turnComplete**: `boolean`
+
+Defined in: [ai/lib/types/responses.ts:430](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L430)
+
+**`Beta`**
+
+Indicates whether the turn is complete. This is `undefined` if the turn is not complete.
+
+##### type
+
+> **type**: `"serverContent"`
+
+Defined in: [ai/lib/types/responses.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L422)
+
+**`Beta`**
+
+***
+
+### LiveServerToolCall
+
+Defined in: [ai/lib/types/responses.ts:467](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L467)
+
+**`Beta`**
+
+A request from the model for the client to execute one or more functions.
+
+#### Properties
+
+##### functionCalls
+
+> **functionCalls**: [`FunctionCall`](#functioncall-1)[]
+
+Defined in: [ai/lib/types/responses.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L472)
+
+**`Beta`**
+
+An array of function calls to run.
+
+##### type
+
+> **type**: `"toolCall"`
+
+Defined in: [ai/lib/types/responses.ts:468](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L468)
+
+**`Beta`**
+
+***
+
+### LiveServerToolCallCancellation
+
+Defined in: [ai/lib/types/responses.ts:480](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L480)
+
+**`Beta`**
+
+Notification to cancel a previous function call triggered by [LiveServerToolCall](#liveservertoolcall).
+
+#### Properties
+
+##### functionIds
+
+> **functionIds**: `string`[]
+
+Defined in: [ai/lib/types/responses.ts:485](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L485)
+
+**`Beta`**
+
+IDs of function calls that were cancelled. These refer to the `id` property of a [FunctionCall](#functioncall-1).
+
+##### type
+
+> **type**: `"toolCallCancellation"`
+
+Defined in: [ai/lib/types/responses.ts:481](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L481)
+
+**`Beta`**
+
+***
+
+### ModalityTokenCount
+
+Defined in: [ai/lib/types/responses.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L129)
+
+Represents token counting info for a single modality.
+
+#### Properties
+
+##### modality
+
+> **modality**: [`Modality`](#modality)
+
+Defined in: [ai/lib/types/responses.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L131)
+
+The modality associated with this token count.
+
+##### tokenCount
+
+> **tokenCount**: `number`
+
+Defined in: [ai/lib/types/responses.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L133)
+
+The number of tokens counted.
+
+***
+
+### ModelParams
+
+Defined in: [ai/lib/types/requests.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L42)
+
+Params passed to [getGenerativeModel](#getgenerativemodel).
+
+#### Extends
+
+- [`BaseParams`](#baseparams)
+
+#### Properties
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`generationConfig`](#generationconfig-3)
+
+##### model
+
+> **model**: `string`
+
+Defined in: [ai/lib/types/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L43)
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+
+Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`safetySettings`](#safetysettings-2)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+Defined in: [ai/lib/types/requests.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L46)
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L45)
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/types/requests.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L44)
+
+***
+
+### ObjectSchemaInterface
+
+Defined in: [ai/lib/types/schema.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L121)
+
+Interface for [ObjectSchema](#objectschema) class.
+
+#### Extends
+
+- [`SchemaInterface`](#schemainterface)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`description`](#description-9)
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+
+Optional. The enum of the property.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`enum`](#enum-2)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`example`](#example-8)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+
+Optional. The format of the property.
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
+`'date-time'`, otherwise requests will fail.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`format`](#format-8)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`items`](#items-8)
+
+##### maximum?
+
+> `optional` **maximum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+
+The maximum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`maximum`](#maximum-1)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`maxItems`](#maxitems-8)
+
+##### minimum?
+
+> `optional` **minimum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+
+The minimum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`minimum`](#minimum-1)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`minItems`](#minitems-8)
+
+##### nullable?
+
+> `optional` **nullable**: `boolean`
+
+Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+
+Optional. Whether the property is nullable.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`nullable`](#nullable-8)
+
+##### optionalProperties?
+
+> `optional` **optionalProperties**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L123)
+
+##### properties?
+
+> `optional` **properties**: `object`
+
+Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+
+Optional. Map of `Schema` objects.
+
+###### Index Signature
+
+\[`k`: `string`\]: [`SchemaInterface`](#schemainterface)
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`properties`](#properties-2)
+
+##### propertyOrdering?
+
+> `optional` **propertyOrdering**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+
+A hint suggesting the order in which the keys should appear in the generated JSON string.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`propertyOrdering`](#propertyordering-1)
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+
+The title of the property. This helps document the schema's purpose but does not typically
+constrain the generated value. It can subtly guide the model by clarifying the intent of a
+field.
+
+###### Inherited from
+
+[`SchemaInterface`](#schemainterface).[`title`](#title-3)
+
+##### type
+
+> **type**: [`OBJECT`](#object)
+
+Defined in: [ai/lib/types/schema.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L122)
+
+The type of the property. [SchemaType](#schematype).
+
+###### Overrides
+
+[`SchemaInterface`](#schemainterface).[`type`](#type-12)
+
+***
+
+### PrebuiltVoiceConfig
+
+Defined in: [ai/lib/types/requests.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L395)
+
+**`Beta`**
+
+Configuration for a pre-built voice.
+
+#### Properties
+
+##### voiceName?
+
+> `optional` **voiceName**: `string`
+
+Defined in: [ai/lib/types/requests.ts:401](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L401)
+
+**`Beta`**
+
+The voice name to use for speech synthesis.
+
+For a full list of names and demos of what each voice sounds like, see [Chirp 3: HD Voices](https://cloud.google.com/text-to-speech/docs/chirp3-hd).
+
+***
+
+### PromptFeedback
+
+Defined in: [ai/lib/types/responses.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L141)
+
+If the prompt was blocked, this will be populated with `blockReason` and
+the relevant `safetyRatings`.
+
+#### Properties
+
+##### blockReason?
+
+> `optional` **blockReason**: [`BlockReason`](#blockreason)
+
+Defined in: [ai/lib/types/responses.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L142)
+
+##### blockReasonMessage?
+
+> `optional` **blockReasonMessage**: `string`
+
+Defined in: [ai/lib/types/responses.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L149)
+
+A human-readable description of the `blockReason`.
+
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+
+##### safetyRatings
+
+> **safetyRatings**: [`SafetyRating`](#safetyrating)[]
+
+Defined in: [ai/lib/types/responses.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L143)
+
+***
+
+### RequestOptions
+
+Defined in: [ai/lib/types/requests.ts:238](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L238)
+
+Params passed to [getGenerativeModel](#getgenerativemodel).
+
+#### Properties
+
+##### baseUrl?
+
+> `optional` **baseUrl**: `string`
+
+Defined in: [ai/lib/types/requests.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L246)
+
+Base url for endpoint. Defaults to https://firebasevertexai.googleapis.com
+
+##### timeout?
+
+> `optional` **timeout**: `number`
+
+Defined in: [ai/lib/types/requests.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L242)
+
+Request timeout in milliseconds. Defaults to 180 seconds (180000ms).
+
+***
+
+### RetrievedContextAttribution
+
+Defined in: [ai/lib/types/responses.ts:345](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L345)
+
+#### Properties
+
+##### title
+
+> **title**: `string`
+
+Defined in: [ai/lib/types/responses.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L347)
+
+##### uri
+
+> **uri**: `string`
+
+Defined in: [ai/lib/types/responses.ts:346](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L346)
+
+***
+
+### SafetyRating
+
+Defined in: [ai/lib/types/responses.ts:364](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L364)
+
+A safety rating associated with a [GenerateContentCandidate](#generatecontentcandidate)
+
+#### Properties
+
+##### blocked
+
+> **blocked**: `boolean`
+
+Defined in: [ai/lib/types/responses.ts:388](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L388)
+
+##### category
+
+> **category**: [`HarmCategory`](#harmcategory)
+
+Defined in: [ai/lib/types/responses.ts:365](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L365)
+
+##### probability
+
+> **probability**: [`HarmProbability`](#harmprobability)
+
+Defined in: [ai/lib/types/responses.ts:366](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L366)
+
+##### probabilityScore
+
+> **probabilityScore**: `number`
+
+Defined in: [ai/lib/types/responses.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L380)
+
+The probability score of the harm category.
+
+This property is only supported when using the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property is not supported and will default to 0.
+
+##### severity
+
+> **severity**: [`HarmSeverity`](#harmseverity)
+
+Defined in: [ai/lib/types/responses.ts:373](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L373)
+
+The harm severity level.
+
+This property is only supported when using the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property is not supported and will default to `HarmSeverity.UNSUPPORTED`.
+
+##### severityScore
+
+> **severityScore**: `number`
+
+Defined in: [ai/lib/types/responses.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L387)
+
+The severity score of the harm category.
+
+This property is only supported when using the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property is not supported and will default to 0.
+
+***
+
+### SafetySetting
+
+Defined in: [ai/lib/types/requests.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L76)
+
+Safety setting that can be sent as part of request parameters.
+
+#### Properties
+
+##### category
+
+> **category**: [`HarmCategory`](#harmcategory)
+
+Defined in: [ai/lib/types/requests.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L77)
+
+##### method?
+
+> `optional` **method**: [`HarmBlockMethod`](#harmblockmethod)
+
+Defined in: [ai/lib/types/requests.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L86)
+
+The harm block method.
+
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), an [AIError](#aierror) will be
+thrown if this property is defined.
+
+##### threshold
+
+> **threshold**: [`HarmBlockThreshold`](#harmblockthreshold)
+
+Defined in: [ai/lib/types/requests.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L78)
+
+***
+
+### SchemaInterface
+
+Defined in: [ai/lib/types/schema.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L109)
+
+Interface for [Schema](#abstract-schema) class.
+
+#### Extends
+
+- [`SchemaShared`](#schemashared)\<[`SchemaInterface`](#schemainterface)\>
+
+#### Extended by
+
+- [`ObjectSchemaInterface`](#objectschemainterface)
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`description`](#description-12)
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+
+Optional. The enum of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`enum`](#enum-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`example`](#example-11)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+
+Optional. The format of the property.
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
+`'date-time'`, otherwise requests will fail.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`format`](#format-11)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`items`](#items-11)
+
+##### maximum?
+
+> `optional` **maximum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+
+The maximum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maximum`](#maximum-4)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maxItems`](#maxitems-11)
+
+##### minimum?
+
+> `optional` **minimum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+
+The minimum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minimum`](#minimum-4)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minItems`](#minitems-11)
+
+##### nullable?
+
+> `optional` **nullable**: `boolean`
+
+Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+
+Optional. Whether the property is nullable.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`nullable`](#nullable-11)
+
+##### properties?
+
+> `optional` **properties**: `object`
+
+Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+
+Optional. Map of `Schema` objects.
+
+###### Index Signature
+
+\[`k`: `string`\]: [`SchemaInterface`](#schemainterface)
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`properties`](#properties-5)
+
+##### propertyOrdering?
+
+> `optional` **propertyOrdering**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+
+A hint suggesting the order in which the keys should appear in the generated JSON string.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`propertyOrdering`](#propertyordering-4)
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+
+The title of the property. This helps document the schema's purpose but does not typically
+constrain the generated value. It can subtly guide the model by clarifying the intent of a
+field.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`title`](#title-6)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/types/schema.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L114)
+
+The type of the property. [SchemaType](#schematype).
+
+***
+
+### SchemaParams
+
+Defined in: [ai/lib/types/schema.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L89)
+
+Params passed to [Schema](#abstract-schema) static methods to create specific
+[Schema](#abstract-schema) classes.
+
+#### Extends
+
+- [`SchemaShared`](#schemashared)\<[`SchemaInterface`](#schemainterface)\>
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`description`](#description-12)
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+
+Optional. The enum of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`enum`](#enum-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`example`](#example-11)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+
+Optional. The format of the property.
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
+`'date-time'`, otherwise requests will fail.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`format`](#format-11)
+
+##### items?
+
+> `optional` **items**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`items`](#items-11)
+
+##### maximum?
+
+> `optional` **maximum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+
+The maximum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maximum`](#maximum-4)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maxItems`](#maxitems-11)
+
+##### minimum?
+
+> `optional` **minimum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+
+The minimum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minimum`](#minimum-4)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minItems`](#minitems-11)
+
+##### nullable?
+
+> `optional` **nullable**: `boolean`
+
+Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+
+Optional. Whether the property is nullable.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`nullable`](#nullable-11)
+
+##### properties?
+
+> `optional` **properties**: `object`
+
+Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+
+Optional. Map of `Schema` objects.
+
+###### Index Signature
+
+\[`k`: `string`\]: [`SchemaInterface`](#schemainterface)
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`properties`](#properties-5)
+
+##### propertyOrdering?
+
+> `optional` **propertyOrdering**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+
+A hint suggesting the order in which the keys should appear in the generated JSON string.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`propertyOrdering`](#propertyordering-4)
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+
+The title of the property. This helps document the schema's purpose but does not typically
+constrain the generated value. It can subtly guide the model by clarifying the intent of a
+field.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`title`](#title-6)
+
+***
+
+### SchemaRequest
+
+Defined in: [ai/lib/types/schema.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L95)
+
+Final format for [Schema](#abstract-schema) params passed to backend requests.
+
+#### Extends
+
+- [`SchemaShared`](#schemashared)\<[`SchemaRequest`](#schemarequest)\>
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`description`](#description-12)
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+
+Optional. The enum of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`enum`](#enum-5)
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`example`](#example-11)
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+
+Optional. The format of the property.
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
+`'date-time'`, otherwise requests will fail.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`format`](#format-11)
+
+##### items?
+
+> `optional` **items**: [`SchemaRequest`](#schemarequest)
+
+Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`items`](#items-11)
+
+##### maximum?
+
+> `optional` **maximum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+
+The maximum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maximum`](#maximum-4)
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`maxItems`](#maxitems-11)
+
+##### minimum?
+
+> `optional` **minimum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+
+The minimum value of a numeric type.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minimum`](#minimum-4)
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`minItems`](#minitems-11)
+
+##### nullable?
+
+> `optional` **nullable**: `boolean`
+
+Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+
+Optional. Whether the property is nullable.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`nullable`](#nullable-11)
+
+##### properties?
+
+> `optional` **properties**: `object`
+
+Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+
+Optional. Map of `Schema` objects.
+
+###### Index Signature
+
+\[`k`: `string`\]: [`SchemaRequest`](#schemarequest)
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`properties`](#properties-5)
+
+##### propertyOrdering?
+
+> `optional` **propertyOrdering**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+
+A hint suggesting the order in which the keys should appear in the generated JSON string.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`propertyOrdering`](#propertyordering-4)
+
+##### required?
+
+> `optional` **required**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L102)
+
+Optional. Array of required property.
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+
+The title of the property. This helps document the schema's purpose but does not typically
+constrain the generated value. It can subtly guide the model by clarifying the intent of a
+field.
+
+###### Inherited from
+
+[`SchemaShared`](#schemashared).[`title`](#title-6)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [ai/lib/types/schema.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L100)
+
+The type of the property. [SchemaType](#schematype).
+
+***
+
+### SchemaShared
+
+Defined in: [ai/lib/types/schema.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L44)
+
+Basic [Schema](#abstract-schema) properties shared across several Schema-related
+types.
+
+#### Extended by
+
+- [`SchemaParams`](#schemaparams)
+- [`SchemaRequest`](#schemarequest)
+- [`SchemaInterface`](#schemainterface)
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Indexable
+
+\[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### description?
+
+> `optional` **description**: `string`
+
+Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+
+Optional. The description of the property.
+
+##### enum?
+
+> `optional` **enum**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+
+Optional. The enum of the property.
+
+##### example?
+
+> `optional` **example**: `unknown`
+
+Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+
+Optional. The example of the property.
+
+##### format?
+
+> `optional` **format**: `string`
+
+Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+
+Optional. The format of the property.
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
+`'date-time'`, otherwise requests will fail.
+
+##### items?
+
+> `optional` **items**: `T`
+
+Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+
+Optional. The items of the property.
+
+##### maximum?
+
+> `optional` **maximum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+
+The maximum value of a numeric type.
+
+##### maxItems?
+
+> `optional` **maxItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+##### minimum?
+
+> `optional` **minimum**: `number`
+
+Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+
+The minimum value of a numeric type.
+
+##### minItems?
+
+> `optional` **minItems**: `number`
+
+Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+##### nullable?
+
+> `optional` **nullable**: `boolean`
+
+Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+
+Optional. Whether the property is nullable.
+
+##### properties?
+
+> `optional` **properties**: `object`
+
+Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+
+Optional. Map of `Schema` objects.
+
+###### Index Signature
+
+\[`k`: `string`\]: `T`
+
+##### propertyOrdering?
+
+> `optional` **propertyOrdering**: `string`[]
+
+Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+
+A hint suggesting the order in which the keys should appear in the generated JSON string.
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+
+The title of the property. This helps document the schema's purpose but does not typically
+constrain the generated value. It can subtly guide the model by clarifying the intent of a
+field.
+
+***
+
+### Segment
+
+Defined in: [ai/lib/types/responses.ts:309](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L309)
+
+Represents a specific segment within a [Content](#content) object, often used to
+pinpoint the exact location of text or data that grounding information refers to.
+
+#### Properties
+
+##### endIndex
+
+> **endIndex**: `number`
+
+Defined in: [ai/lib/types/responses.ts:327](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L327)
+
+The zero-based end index of the segment within the specified `Part`,
+measured in UTF-8 bytes. This offset is exclusive, meaning the character
+at this index is not included in the segment.
+
+##### partIndex
+
+> **partIndex**: `number`
+
+Defined in: [ai/lib/types/responses.ts:315](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L315)
+
+The zero-based index of the [Part](#part) object within the `parts` array
+of its parent [Content](#content) object. This identifies which part of the
+content the segment belongs to.
+
+##### startIndex
+
+> **startIndex**: `number`
+
+Defined in: [ai/lib/types/responses.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L321)
+
+The zero-based start index of the segment within the specified `Part`,
+measured in UTF-8 bytes. This offset is inclusive, starting from 0 at the
+beginning of the part's content (e.g., `Part.text`).
+
+##### text
+
+> **text**: `string`
+
+Defined in: [ai/lib/types/responses.ts:331](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L331)
+
+The text corresponding to the segment from the response.
+
+***
+
+### SpeechConfig
+
+Defined in: [ai/lib/types/requests.ts:421](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L421)
+
+**`Beta`**
+
+Configures speech synthesis.
+
+#### Properties
+
+##### voiceConfig?
+
+> `optional` **voiceConfig**: [`VoiceConfig`](#voiceconfig-1)
+
+Defined in: [ai/lib/types/requests.ts:425](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L425)
+
+**`Beta`**
+
+Configures the voice to be used in speech synthesis.
+
+***
+
+### StartChatParams
+
+Defined in: [ai/lib/types/requests.ts:207](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L207)
+
+Params for [GenerativeModel.startChat](#startchat).
+
+#### Extends
+
+- [`BaseParams`](#baseparams)
+
+#### Properties
+
+##### generationConfig?
+
+> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`generationConfig`](#generationconfig-3)
+
+##### history?
+
+> `optional` **history**: [`Content`](#content)[]
+
+Defined in: [ai/lib/types/requests.ts:208](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L208)
+
+##### safetySettings?
+
+> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+
+Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+
+###### Inherited from
+
+[`BaseParams`](#baseparams).[`safetySettings`](#safetysettings-2)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+
+Defined in: [ai/lib/types/requests.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L211)
+
+##### toolConfig?
+
+> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [ai/lib/types/requests.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L210)
+
+##### tools?
+
+> `optional` **tools**: [`Tool`](#tool)[]
+
+Defined in: [ai/lib/types/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L209)
+
+***
+
+### TextPart
+
+Defined in: [ai/lib/types/content.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L45)
+
+Content part interface if the part represents a text string.
+
+#### Properties
+
+##### functionCall?
+
+> `optional` **functionCall**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L48)
+
+##### functionResponse?
+
+> `optional` **functionResponse**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L49)
+
+##### inlineData?
+
+> `optional` **inlineData**: `undefined`
+
+Defined in: [ai/lib/types/content.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L47)
+
+##### text
+
+> **text**: `string`
+
+Defined in: [ai/lib/types/content.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L46)
+
+##### thought?
+
+> `optional` **thought**: `boolean`
+
+Defined in: [ai/lib/types/content.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L50)
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature**: `string`
+
+Defined in: [ai/lib/types/content.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L54)
+
+**`Internal`**
+
+***
+
+### ThinkingConfig
+
+Defined in: [ai/lib/types/requests.ts:363](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L363)
+
+Configuration for "thinking" behavior of compatible Gemini models.
+
+Certain models utilize a thinking process before generating a response. This allows them to
+reason through complex problems and plan a more coherent and accurate answer.
+
+#### Properties
+
+##### includeThoughts?
+
+> `optional` **includeThoughts**: `boolean`
+
+Defined in: [ai/lib/types/requests.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L387)
+
+Whether to include "thought summaries" in the model's response.
+
+###### Remarks
+
+Thought summaries provide a brief overview of the model's internal thinking process,
+offering insight into how it arrived at the final answer. This can be useful for
+debugging, understanding the model's reasoning, and verifying its accuracy.
+
+##### thinkingBudget?
+
+> `optional` **thinkingBudget**: `number`
+
+Defined in: [ai/lib/types/requests.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L377)
+
+The thinking budget, in tokens.
+
+This parameter sets an upper limit on the number of tokens the model can use for its internal
+"thinking" process. A higher budget may result in higher quality responses for complex tasks
+but can also increase latency and cost.
+
+If you don't specify a budget, the model will determine the appropriate amount
+of thinking based on the complexity of the prompt.
+
+An error will be thrown if you set a thinking budget for a model that does not support this
+feature or if the specified budget is not within the model's supported range.
+
+***
+
+### ToolConfig
+
+Defined in: [ai/lib/types/requests.ts:343](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L343)
+
+Tool config. This config is shared for all tools provided in the request.
+
+#### Properties
+
+##### functionCallingConfig?
+
+> `optional` **functionCallingConfig**: [`FunctionCallingConfig`](#functioncallingconfig)
+
+Defined in: [ai/lib/types/requests.ts:344](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L344)
+
+***
+
+### Transcription
+
+Defined in: [ai/lib/types/responses.ts:455](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L455)
+
+**`Beta`**
+
+Transcription of audio. This can be returned from a [LiveGenerativeModel](#livegenerativemodel) if transcription
+is enabled with the `inputAudioTranscription` or `outputAudioTranscription` properties on
+the [LiveGenerationConfig](#livegenerationconfig).
+
+#### Properties
+
+##### text?
+
+> `optional` **text**: `string`
+
+Defined in: [ai/lib/types/responses.ts:459](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L459)
+
+**`Beta`**
+
+The text transcription of the audio.
+
+***
+
+### UsageMetadata
+
+Defined in: [ai/lib/types/responses.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L112)
+
+Usage metadata about a [GenerateContentResponse](#generatecontentresponse).
+
+#### Properties
+
+##### candidatesTokenCount
+
+> **candidatesTokenCount**: `number`
+
+Defined in: [ai/lib/types/responses.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L114)
+
+##### candidatesTokensDetails?
+
+> `optional` **candidatesTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+
+Defined in: [ai/lib/types/responses.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L121)
+
+##### promptTokenCount
+
+> **promptTokenCount**: `number`
+
+Defined in: [ai/lib/types/responses.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L113)
+
+##### promptTokensDetails?
+
+> `optional` **promptTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+
+Defined in: [ai/lib/types/responses.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L120)
+
+##### thoughtsTokenCount?
+
+> `optional` **thoughtsTokenCount**: `number`
+
+Defined in: [ai/lib/types/responses.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L118)
+
+The number of tokens used by the model's internal "thinking" process.
+
+##### totalTokenCount
+
+> **totalTokenCount**: `number`
+
+Defined in: [ai/lib/types/responses.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L119)
+
+***
+
+### VideoMetadata
+
+Defined in: [ai/lib/types/content.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L81)
+
+Describes the input video content.
+
+#### Properties
+
+##### endOffset
+
+> **endOffset**: `string`
+
+Defined in: [ai/lib/types/content.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L91)
+
+The end offset of the video in
+protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-workflows-v1/latest/Google-Protobuf-Duration#json-mapping) format.
+
+##### startOffset
+
+> **startOffset**: `string`
+
+Defined in: [ai/lib/types/content.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L86)
+
+The start offset of the video in
+protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-workflows-v1/latest/Google-Protobuf-Duration#json-mapping) format.
+
+***
+
+### VoiceConfig
+
+Defined in: [ai/lib/types/requests.ts:409](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L409)
+
+**`Beta`**
+
+Configuration for the voice to used in speech synthesis.
+
+#### Properties
+
+##### prebuiltVoiceConfig?
+
+> `optional` **prebuiltVoiceConfig**: [`PrebuiltVoiceConfig`](#prebuiltvoiceconfig)
+
+Defined in: [ai/lib/types/requests.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L413)
+
+**`Beta`**
+
+Configures the voice using a pre-built voice configuration.
+
+***
+
+### WebAttribution
+
+Defined in: [ai/lib/types/responses.ts:337](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L337)
+
+#### Properties
+
+##### title
+
+> **title**: `string`
+
+Defined in: [ai/lib/types/responses.ts:339](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L339)
+
+##### uri
+
+> **uri**: `string`
+
+Defined in: [ai/lib/types/responses.ts:338](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L338)
+
+***
+
+### WebGroundingChunk
+
+Defined in: [ai/lib/types/responses.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L252)
+
+A grounding chunk from the web.
+
+Important: If using Grounding with Google Search, you are required to comply with the
+[Service Specific Terms](https://cloud.google.com/terms/service-terms) for "Grounding with Google Search".
+
+#### Properties
+
+##### domain?
+
+> `optional` **domain**: `string`
+
+Defined in: [ai/lib/types/responses.ts:268](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L268)
+
+The domain of the original URI from which the content was retrieved.
+
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this property will be
+`undefined`.
+
+##### title?
+
+> `optional` **title**: `string`
+
+Defined in: [ai/lib/types/responses.ts:260](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L260)
+
+The title of the retrieved web page.
+
+##### uri?
+
+> `optional` **uri**: `string`
+
+Defined in: [ai/lib/types/responses.ts:256](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L256)
+
+The URI of the retrieved web page.
+
+## Type Aliases
+
+### BackendType
+
+> **BackendType** = *typeof* [`BackendType`](#backendtype-4)\[keyof *typeof* [`BackendType`](#backendtype-4)\]
+
+Defined in: [ai/lib/public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
+
+Type alias representing valid backend types.
+It can be either `'VERTEX_AI'` or `'GOOGLE_AI'`.
+
+***
+
+### ImagenAspectRatio
+
+> **ImagenAspectRatio** = *typeof* [`ImagenAspectRatio`](#imagenaspectratio-1)\[keyof *typeof* [`ImagenAspectRatio`](#imagenaspectratio-1)\]
+
+Defined in: [ai/lib/types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
+
+**`Beta`**
+
+Aspect ratios for Imagen images.
+
+To specify an aspect ratio for generated images, set the `aspectRatio` property in your
+[ImagenGenerationConfig](#imagengenerationconfig).
+
+See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images)
+for more details and examples of the supported aspect ratios.
+
+***
+
+### ImagenPersonFilterLevel
+
+> **ImagenPersonFilterLevel** = *typeof* [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel-1)\[keyof *typeof* [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel-1)\]
+
+Defined in: [ai/lib/types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
+
+**`Beta`**
+
+A filter level controlling whether generation of images containing people or faces is allowed.
+
+See the personGeneration
+documentation for more details.
+
+***
+
+### ImagenSafetyFilterLevel
+
+> **ImagenSafetyFilterLevel** = *typeof* [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel-1)\[keyof *typeof* [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel-1)\]
+
+Defined in: [ai/lib/types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
+
+**`Beta`**
+
+A filter level controlling how aggressively to filter sensitive content.
+
+Text prompts provided as inputs and images (generated or uploaded) through Imagen on Vertex AI
+are assessed against a list of safety filters, which include 'harmful categories' (for example,
+`violence`, `sexual`, `derogatory`, and `toxic`). This filter level controls how aggressively to
+filter out potentially harmful content from responses. See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images)
+and the [Responsible AI and usage guidelines](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters)
+for more details.
+
+***
+
+### InferenceMode
+
+> **InferenceMode** = *typeof* [`InferenceMode`](#inferencemode-1)\[keyof *typeof* [`InferenceMode`](#inferencemode-1)\]
+
+Defined in: [ai/lib/types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
+
+(EXPERIMENTAL)
+Determines whether inference happens on-device or in-cloud.
+
+***
+
+### LiveResponseType
+
+> **LiveResponseType** = *typeof* [`LiveResponseType`](#liveresponsetype-1)\[keyof *typeof* [`LiveResponseType`](#liveresponsetype-1)\]
+
+Defined in: [ai/lib/types/responses.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L493)
+
+**`Beta`**
+
+The types of responses that can be returned by [LiveSession.receive](#receive).
+This is a property on all messages that can be used for type narrowing. This property is not
+returned by the server, it is assigned to a server message object once it's parsed.
+
+***
+
+### Part
+
+> **Part** = [`TextPart`](#textpart) \| [`InlineDataPart`](#inlinedatapart) \| [`FunctionCallPart`](#functioncallpart) \| [`FunctionResponsePart`](#functionresponsepart) \| [`FileDataPart`](#filedatapart)
+
+Defined in: [ai/lib/types/content.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L34)
+
+Content part - includes text, image/video, or function call/response
+part types.
+
+***
+
+### ResponseModality
+
+> **ResponseModality** = *typeof* [`ResponseModality`](#responsemodality-1)\[keyof *typeof* [`ResponseModality`](#responsemodality-1)\]
+
+Defined in: [ai/lib/types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
+
+**`Beta`**
+
+Generation modalities to be returned in generation responses.
+
+***
+
+### Role
+
+> **Role** = *typeof* [`POSSIBLE_ROLES`](#possible_roles)\[`number`\]
+
+Defined in: [ai/lib/types/enums.ts:22](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L22)
+
+Role is the producer of the content.
+
+***
+
+### Tool
+
+> **Tool** = [`FunctionDeclarationsTool`](#functiondeclarationstool) \| [`GoogleSearchTool`](#googlesearchtool)
+
+Defined in: [ai/lib/types/requests.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L253)
+
+Defines a tool that model can call to access external knowledge.
+
+***
+
+### TypedSchema
+
+> **TypedSchema** = [`IntegerSchema`](#integerschema) \| [`NumberSchema`](#numberschema) \| [`StringSchema`](#stringschema) \| [`BooleanSchema`](#booleanschema) \| [`ObjectSchema`](#objectschema) \| [`ArraySchema`](#arrayschema)
+
+Defined in: [ai/lib/requests/schema-builder.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L136)
+
+A type that includes all specific Schema types.
+
+## Variables
+
+### BackendType
+
+> `const` **BackendType**: `object`
+
+Defined in: [ai/lib/public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
+
+An enum-like object containing constants that represent the supported backends
+for the Firebase AI SDK.
+This determines which backend service (Vertex AI Gemini API or Gemini Developer API)
+the SDK will communicate with.
+
+These values are assigned to the `backendType` property within the specific backend
+configuration objects ([GoogleAIBackend](#googleaibackend) or [VertexAIBackend](#vertexaibackend)) to identify
+which service to target.
+
+#### Type Declaration
+
+##### GOOGLE\_AI
+
+> `readonly` **GOOGLE\_AI**: `"GOOGLE_AI"` = `'GOOGLE_AI'`
+
+Identifies the backend service for the Gemini Developer API ([Google AI](https://ai.google/)).
+Use this constant when creating a [GoogleAIBackend](#googleaibackend) configuration.
+
+##### VERTEX\_AI
+
+> `readonly` **VERTEX\_AI**: `"VERTEX_AI"` = `'VERTEX_AI'`
+
+Identifies the backend service for the Vertex AI Gemini API provided through Google Cloud.
+Use this constant when creating a [VertexAIBackend](#vertexaibackend) configuration.
+
+***
+
+### ImagenAspectRatio
+
+> `const` **ImagenAspectRatio**: `object`
+
+Defined in: [ai/lib/types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
+
+**`Beta`**
+
+Aspect ratios for Imagen images.
+
+To specify an aspect ratio for generated images, set the `aspectRatio` property in your
+[ImagenGenerationConfig](#imagengenerationconfig).
+
+See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images)
+for more details and examples of the supported aspect ratios.
+
+#### Type Declaration
+
+##### LANDSCAPE\_16x9
+
+> `readonly` **LANDSCAPE\_16x9**: `"16:9"` = `'16:9'`
+
+Landscape (16:9) aspect ratio.
+
+##### LANDSCAPE\_3x4
+
+> `readonly` **LANDSCAPE\_3x4**: `"3:4"` = `'3:4'`
+
+Landscape (3:4) aspect ratio.
+
+##### PORTRAIT\_4x3
+
+> `readonly` **PORTRAIT\_4x3**: `"4:3"` = `'4:3'`
+
+Portrait (4:3) aspect ratio.
+
+##### PORTRAIT\_9x16
+
+> `readonly` **PORTRAIT\_9x16**: `"9:16"` = `'9:16'`
+
+Portrait (9:16) aspect ratio.
+
+##### SQUARE
+
+> `readonly` **SQUARE**: `"1:1"` = `'1:1'`
+
+Square (1:1) aspect ratio.
+
+***
+
+### ImagenPersonFilterLevel
+
+> `const` **ImagenPersonFilterLevel**: `object`
+
+Defined in: [ai/lib/types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
+
+**`Beta`**
+
+A filter level controlling whether generation of images containing people or faces is allowed.
+
+See the personGeneration
+documentation for more details.
+
+#### Type Declaration
+
+##### ALLOW\_ADULT
+
+> `readonly` **ALLOW\_ADULT**: `"allow_adult"` = `'allow_adult'`
+
+Allow generation of images containing adults only; images of children are filtered out.
+
+Generation of images containing people or faces may require your use case to be
+reviewed and approved by Cloud support; see the [Responsible AI and usage guidelines](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#person-face-gen)
+for more details.
+
+##### ALLOW\_ALL
+
+> `readonly` **ALLOW\_ALL**: `"allow_all"` = `'allow_all'`
+
+Allow generation of images containing adults only; images of children are filtered out.
+
+Generation of images containing people or faces may require your use case to be
+reviewed and approved by Cloud support; see the [Responsible AI and usage guidelines](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#person-face-gen)
+for more details.
+
+##### BLOCK\_ALL
+
+> `readonly` **BLOCK\_ALL**: `"dont_allow"` = `'dont_allow'`
+
+Disallow generation of images containing people or faces; images of people are filtered out.
+
+***
+
+### ImagenSafetyFilterLevel
+
+> `const` **ImagenSafetyFilterLevel**: `object`
+
+Defined in: [ai/lib/types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
+
+**`Beta`**
+
+A filter level controlling how aggressively to filter sensitive content.
+
+Text prompts provided as inputs and images (generated or uploaded) through Imagen on Vertex AI
+are assessed against a list of safety filters, which include 'harmful categories' (for example,
+`violence`, `sexual`, `derogatory`, and `toxic`). This filter level controls how aggressively to
+filter out potentially harmful content from responses. See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images)
+and the [Responsible AI and usage guidelines](https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters)
+for more details.
+
+#### Type Declaration
+
+##### BLOCK\_LOW\_AND\_ABOVE
+
+> `readonly` **BLOCK\_LOW\_AND\_ABOVE**: `"block_low_and_above"` = `'block_low_and_above'`
+
+The most aggressive filtering level; most strict blocking.
+
+##### BLOCK\_MEDIUM\_AND\_ABOVE
+
+> `readonly` **BLOCK\_MEDIUM\_AND\_ABOVE**: `"block_medium_and_above"` = `'block_medium_and_above'`
+
+Blocks some sensitive prompts and responses.
+
+##### BLOCK\_NONE
+
+> `readonly` **BLOCK\_NONE**: `"block_none"` = `'block_none'`
+
+The least aggressive filtering level; blocks very few sensitive prompts and responses.
+
+Access to this feature is restricted and may require your case to be reviewed and approved by
+Cloud support.
+
+##### BLOCK\_ONLY\_HIGH
+
+> `readonly` **BLOCK\_ONLY\_HIGH**: `"block_only_high"` = `'block_only_high'`
+
+Blocks few sensitive prompts and responses.
+
+***
+
+### InferenceMode
+
+> `const` **InferenceMode**: `object`
+
+Defined in: [ai/lib/types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
+
+(EXPERIMENTAL)
+Determines whether inference happens on-device or in-cloud.
+
+#### Type Declaration
+
+##### ONLY\_IN\_CLOUD
+
+> `readonly` **ONLY\_IN\_CLOUD**: `"only_in_cloud"` = `'only_in_cloud'`
+
+##### ONLY\_ON\_DEVICE
+
+> `readonly` **ONLY\_ON\_DEVICE**: `"only_on_device"` = `'only_on_device'`
+
+##### PREFER\_ON\_DEVICE
+
+> `readonly` **PREFER\_ON\_DEVICE**: `"prefer_on_device"` = `'prefer_on_device'`
+
+***
+
+### LiveResponseType
+
+> `const` **LiveResponseType**: `object`
+
+Defined in: [ai/lib/types/responses.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L493)
+
+**`Beta`**
+
+The types of responses that can be returned by [LiveSession.receive](#receive).
+
+#### Type Declaration
+
+##### SERVER\_CONTENT
+
+> **SERVER\_CONTENT**: `string` = `'serverContent'`
+
+##### TOOL\_CALL
+
+> **TOOL\_CALL**: `string` = `'toolCall'`
+
+##### TOOL\_CALL\_CANCELLATION
+
+> **TOOL\_CALL\_CANCELLATION**: `string` = `'toolCallCancellation'`
+
+***
+
+### POSSIBLE\_ROLES
+
+> `const` **POSSIBLE\_ROLES**: readonly \[`"user"`, `"model"`, `"function"`, `"system"`\]
+
+Defined in: [ai/lib/types/enums.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L28)
+
+Possible roles.
+
+***
+
+### ResponseModality
+
+> `const` **ResponseModality**: `object`
+
+Defined in: [ai/lib/types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
+
+**`Beta`**
+
+Generation modalities to be returned in generation responses.
+
+#### Type Declaration
+
+##### AUDIO
+
+> `readonly` **AUDIO**: `"AUDIO"` = `'AUDIO'`
+
+**`Beta`**
+
+Audio.
+
+##### IMAGE
+
+> `readonly` **IMAGE**: `"IMAGE"` = `'IMAGE'`
+
+**`Beta`**
+
+Image.
+
+##### TEXT
+
+> `readonly` **TEXT**: `"TEXT"` = `'TEXT'`
+
+**`Beta`**
+
+Text.
+
+## Functions
+
+### getAI()
+
+> **getAI**(`app?`, `options?`): [`AI`](#ai)
+
+Defined in: [ai/lib/index.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L78)
+
+Returns the default [AI](#ai) instance that is associated with the provided
+@firebase/app#FirebaseApp. If no instance exists, initializes a new instance with the
+default settings.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp` = `...`
+
+The @firebase/app#FirebaseApp to use.
+
+##### options?
+
+[`AIOptions`](#aioptions-1)
+
+[AIOptions](#aioptions-1) that configure the AI instance.
+
+#### Returns
+
+[`AI`](#ai)
+
+The default [AI](#ai) instance for the given @firebase/app#FirebaseApp.
+
+#### Examples
+
+```javascript
+const ai = getAI(app);
+```
+
+```javascript
+// Get an AI instance configured to use the Gemini Developer API (via Google AI).
+const ai = getAI(app, { backend: new GoogleAIBackend() });
+```
+
+```javascript
+// Get an AI instance configured to use the Vertex AI Gemini API.
+const ai = getAI(app, { backend: new VertexAIBackend() });
+```
+
+***
+
+### getGenerativeModel()
+
+> **getGenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
+
+Defined in: [ai/lib/index.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L103)
+
+Returns a [GenerativeModel](#generativemodel) class with methods for inference
+and other functionality.
+
+#### Parameters
+
+##### ai
+
+[`AI`](#ai)
+
+##### modelParams
+
+[`ModelParams`](#modelparams)
+
+##### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+#### Returns
+
+[`GenerativeModel`](#generativemodel)
+
+***
+
+### getImagenModel()
+
+> **getImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
+
+Defined in: [ai/lib/index.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L131)
+
+**`Beta`**
+
+Returns an [ImagenModel](#imagenmodel) class with methods for using Imagen.
+
+Only Imagen 3 models (named `imagen-3.0-*`) are supported.
+
+#### Parameters
+
+##### ai
+
+[`AI`](#ai)
+
+An [AI](#ai) instance.
+
+##### modelParams
+
+[`ImagenModelParams`](#imagenmodelparams)
+
+Parameters to use when making Imagen requests.
+
+##### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+Additional options to use when making requests.
+
+#### Returns
+
+[`ImagenModel`](#imagenmodel)
+
+#### Throws
+
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
+
+***
+
+### getLiveGenerativeModel()
+
+> **getLiveGenerativeModel**(`ai`, `modelParams`): [`LiveGenerativeModel`](#livegenerativemodel)
+
+Defined in: [ai/lib/index.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L157)
+
+**`Beta`**
+
+Returns a [LiveGenerativeModel](#livegenerativemodel) class for real-time, bidirectional communication.
+
+The Live API is only supported in modern browser windows and Node >= 22.
+
+#### Parameters
+
+##### ai
+
+[`AI`](#ai)
+
+An [AI](#ai) instance.
+
+##### modelParams
+
+[`LiveModelParams`](#livemodelparams)
+
+Parameters to use when setting up a [LiveSession](#livesession).
+
+#### Returns
+
+[`LiveGenerativeModel`](#livegenerativemodel)
+
+#### Throws
+
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
+
+***
+
+### getTemplateGenerativeModel()
+
+> **getTemplateGenerativeModel**(`ai`, `requestOptions?`): [`TemplateGenerativeModel`](#templategenerativemodel)
+
+Defined in: [ai/lib/index.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L176)
+
+**`Beta`**
+
+Returns a [TemplateGenerativeModel](#templategenerativemodel) class for executing server-side Gemini templates.
+
+#### Parameters
+
+##### ai
+
+[`AI`](#ai)
+
+An [AI](#ai) instance.
+
+##### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+Additional options to use when making requests.
+
+#### Returns
+
+[`TemplateGenerativeModel`](#templategenerativemodel)
+
+***
+
+### getTemplateImagenModel()
+
+> **getTemplateImagenModel**(`ai`, `requestOptions?`): [`TemplateImagenModel`](#templateimagenmodel)
+
+Defined in: [ai/lib/index.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L191)
+
+**`Beta`**
+
+Returns a [TemplateImagenModel](#templateimagenmodel) class for executing server-side Imagen templates.
+
+#### Parameters
+
+##### ai
+
+[`AI`](#ai)
+
+An [AI](#ai) instance.
+
+##### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+Additional options to use when making requests.
+
+#### Returns
+
+[`TemplateImagenModel`](#templateimagenmodel)
diff --git a/docs/reference/analytics/lib/modular.mdx b/docs/reference/analytics/lib/modular.mdx
new file mode 100644
index 0000000000..b3873626b5
--- /dev/null
+++ b/docs/reference/analytics/lib/modular.mdx
@@ -0,0 +1,2547 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / analytics/lib/modular
+
+# analytics/lib/modular
+
+## Functions
+
+### getAnalytics()
+
+> **getAnalytics**(`app?`): `Analytics`
+
+Defined in: [analytics/lib/modular.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L50)
+
+Returns an Analytics instance for the given app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+#### Returns
+
+`Analytics`
+
+***
+
+### getAppInstanceId()
+
+> **getAppInstanceId**(`analytics`): `Promise`\<`string` \| `null`\>
+
+Defined in: [analytics/lib/modular.ts:445](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L445)
+
+Retrieve the app instance id of the application.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+#### Returns
+
+`Promise`\<`string` \| `null`\>
+
+***
+
+### getGoogleAnalyticsClientId()
+
+> **getGoogleAnalyticsClientId**(`analytics`): `Promise`\<`string`\>
+
+Defined in: [analytics/lib/modular.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L70)
+
+Retrieves a unique Google Analytics identifier for the web client.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+***
+
+### getSessionId()
+
+> **getSessionId**(`analytics`): `Promise`\<`number` \| `null`\>
+
+Defined in: [analytics/lib/modular.ts:455](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L455)
+
+Retrieves the session id from the client.
+On iOS, Firebase SDK may return an error that is handled internally and may take many minutes to return a valid value. Check native debug logs for more details.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+#### Returns
+
+`Promise`\<`number` \| `null`\>
+
+***
+
+### initializeAnalytics()
+
+> **initializeAnalytics**(`app`, `_options?`): `Analytics`
+
+Defined in: [analytics/lib/modular.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L60)
+
+Returns an Analytics instance for the given app.
+
+#### Parameters
+
+##### app
+
+`FirebaseApp`
+
+##### \_options?
+
+`AnalyticsSettings`
+
+#### Returns
+
+`Analytics`
+
+***
+
+### initiateOnDeviceConversionMeasurementWithEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithEmailAddress**(`analytics`, `emailAddress`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:922](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L922)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### emailAddress
+
+`string`
+
+Email address, properly formatted complete with domain name e.g, 'user@example.com'.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### initiateOnDeviceConversionMeasurementWithHashedEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithHashedEmailAddress**(`analytics`, `hashedEmailAddress`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:943](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L943)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### hashedEmailAddress
+
+`string`
+
+sha256-hashed of normalized email address, properly formatted complete with domain name e.g, 'user@example.com'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Link
+
+https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
+
+***
+
+### initiateOnDeviceConversionMeasurementWithHashedPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithHashedPhoneNumber**(`analytics`, `hashedPhoneNumber`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:983](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L983)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### hashedPhoneNumber
+
+`string`
+
+sha256-hashed of normalized phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Link
+
+https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
+
+***
+
+### initiateOnDeviceConversionMeasurementWithPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithPhoneNumber**(`analytics`, `phoneNumber`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:962](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L962)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### phoneNumber
+
+`string`
+
+Phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### isSupported()
+
+> **isSupported**(): `Promise`\<`boolean`\>
+
+Defined in: [analytics/lib/modular.ts:1003](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1003)
+
+Checks four different things.
+1. Checks if it's not a browser extension environment.
+2. Checks if cookies are enabled in current browser.
+3. Checks if IndexedDB is supported by the browser environment.
+4. Checks if the current browser context is valid for using IndexedDB.open().
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### logAddPaymentInfo()
+
+> **logAddPaymentInfo**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:506](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L506)
+
+E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user. Note: This is different from the in-app purchase event, which is reported automatically for Google Play-based apps.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`AddPaymentInfoEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddShippingInfo()
+
+> **logAddShippingInfo**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:525](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L525)
+
+Add Payment Info event. This event signifies that a user has submitted their payment information to your app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`AddShippingInfoParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddToCart()
+
+> **logAddToCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:536](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L536)
+
+E-Commerce Add To Cart event.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`AddToCartEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddToWishlist()
+
+> **logAddToWishlist**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:547](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L547)
+
+E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`AddToWishlistEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAppOpen()
+
+> **logAppOpen**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:558](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L558)
+
+App Open event. By logging this event when an App is moved to the foreground, developers can understand how often users leave and return during the course of a Session.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logBeginCheckout()
+
+> **logBeginCheckout**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:566](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L566)
+
+E-Commerce Begin Checkout event. This event signifies that a user has begun the process of checking out.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`BeginCheckoutEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logCampaignDetails()
+
+> **logCampaignDetails**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:577](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L577)
+
+Log this event to supply the referral details of a re-engagement campaign.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`CampaignDetailsEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logEarnVirtualCurrency()
+
+> **logEarnVirtualCurrency**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:588](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L588)
+
+Earn Virtual Currency event. This event tracks the awarding of virtual currency in your app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`EarnVirtualCurrencyEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logEvent()
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:83](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L83)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"add_payment_info"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### payment_type?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L96)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"add_shipping_info"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### shipping_tier?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L109)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"add_to_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L120)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"add_to_wishlist"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L131)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"begin_checkout"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L144)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"checkout_progress"`
+
+###### params?
+
+###### checkout_option?
+
+`string`
+
+###### checkout_step?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:155](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L155)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"exception"`
+
+###### params?
+
+###### description?
+
+`string`
+
+###### fatal?
+
+`boolean`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:166](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L166)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"generate_lead"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L176)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"login"`
+
+###### params
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L185)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"page_view"`
+
+###### params?
+
+###### page_location?
+
+`string`
+
+###### page_path?
+
+`string`
+
+###### page_title?
+
+`string`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L197)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"purchase"`
+
+###### params?
+
+###### affiliation?
+
+`string`
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### shipping?
+
+`number`
+
+###### tax?
+
+`number`
+
+###### transaction_id?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L214)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"refund"`
+
+###### params?
+
+###### affiliation?
+
+`string`
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### shipping?
+
+`number`
+
+###### tax?
+
+`number`
+
+###### transaction_id?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L230)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"remove_from_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L241)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"screen_view"`
+
+###### params?
+
+###### screen_class?
+
+`unknown`
+
+###### screen_name?
+
+`string`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L252)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"search"`
+
+###### params
+
+###### destination?
+
+`string`
+
+###### end_date?
+
+`string`
+
+###### number_of_nights?
+
+`number`
+
+###### number_of_passengers?
+
+`number`
+
+###### number_of_rooms?
+
+`number`
+
+###### origin?
+
+`string`
+
+###### search_term
+
+`string` \| `undefined`
+
+###### start_date?
+
+`string`
+
+###### travel_class?
+
+`string`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:269](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L269)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"select_content"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_id
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:279](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L279)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"select_item"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_list_id
+
+`string` \| `undefined`
+
+###### item_list_name
+
+`string` \| `undefined`
+
+###### items?
+
+`Item`[]
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:291](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L291)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"select_promotion"`
+
+###### params
+
+###### creative_name
+
+`string`
+
+###### creative_slot
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### location_id
+
+`string`
+
+###### promotion_id
+
+`string` \| `undefined`
+
+###### promotion_name
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:305](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L305)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"set_checkout_option"`
+
+###### params?
+
+###### checkout_option?
+
+`string`
+
+###### checkout_step?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:316](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L316)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"share"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_id
+
+`string` \| `undefined`
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:327](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L327)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"sign_up"`
+
+###### params
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:336](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L336)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"timing_complete"`
+
+###### params?
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:345](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L345)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"view_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:356](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L356)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"view_item"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### value?
+
+`number`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:367](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L367)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"view_item_list"`
+
+###### params?
+
+###### item_list_id?
+
+`string`
+
+###### item_list_name?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:378](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L378)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"view_promotion"`
+
+###### params?
+
+###### creative_name?
+
+`string`
+
+###### creative_slot?
+
+`string`
+
+###### items?
+
+`Item`[]
+
+###### location_id?
+
+`string`
+
+###### promotion_id?
+
+`string`
+
+###### promotion_name?
+
+`string`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:392](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L392)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`"view_search_results"`
+
+###### params
+
+###### search_term
+
+`string` \| `undefined`
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**\<`T`\>(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L402)
+
+Log a custom event with optional params.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `string`
+
+##### Parameters
+
+###### analytics
+
+`Analytics`
+
+###### name
+
+`CustomEventName`\<`T`\>
+
+###### params?
+
+###### options?
+
+`AnalyticsCallOptions`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logGenerateLead()
+
+> **logGenerateLead**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:599](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L599)
+
+Generate Lead event. Log this event when a lead has been generated in the app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`GenerateLeadEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logJoinGroup()
+
+> **logJoinGroup**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:610](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L610)
+
+Join Group event. Log this event when a user joins a group such as a guild, team or family.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`JoinGroupEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelEnd()
+
+> **logLevelEnd**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:621](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L621)
+
+Level End event.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`LevelEndEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelStart()
+
+> **logLevelStart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:629](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L629)
+
+Level Start event.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`LevelStartEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelUp()
+
+> **logLevelUp**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:640](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L640)
+
+Level Up event. This event signifies that a player has leveled up in your gaming app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`LevelUpEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLogin()
+
+> **logLogin**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:648](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L648)
+
+Login event. Apps with a login feature can report this event to signify that a user has logged in.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`LoginEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logPostScore()
+
+> **logPostScore**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:656](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L656)
+
+Post Score event. Log this event when the user posts a score in your gaming app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`PostScoreEventParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logPurchase()
+
+> **logPurchase**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:684](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L684)
+
+E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`PurchaseEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logRefund()
+
+> **logRefund**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:695](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L695)
+
+E-Commerce Refund event. This event signifies that a refund was issued.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`RefundEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logRemoveFromCart()
+
+> **logRemoveFromCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:706](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L706)
+
+Remove from cart event.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`RemoveFromCartEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logScreenView()
+
+> **logScreenView**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:517](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L517)
+
+Sets or clears the screen name and class the user is currently viewing.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### params
+
+`ScreenViewParameters`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSearch()
+
+> **logSearch**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:720](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L720)
+
+Search event. Apps that support search features can use this event to contextualize search operations by supplying the appropriate, corresponding parameters.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SearchEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectContent()
+
+> **logSelectContent**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:670](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L670)
+
+Select Content event. This general purpose event signifies that a user has selected some content of a certain type in an app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SelectContentEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectItem()
+
+> **logSelectItem**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:731](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L731)
+
+Select Item event. This event signifies that an item was selected by a user from a list.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SelectItemEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectPromotion()
+
+> **logSelectPromotion**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:759](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L759)
+
+Select promotion event. This event signifies that a user has selected a promotion offer.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SelectPromotionEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSetCheckoutOption()
+
+> **logSetCheckoutOption**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:745](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L745)
+
+Set checkout option event.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SetCheckoutOptionEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logShare()
+
+> **logShare**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:773](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L773)
+
+Share event. Apps with social features can log the Share event to identify the most viral content.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ShareEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSignUp()
+
+> **logSignUp**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:784](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L784)
+
+Sign Up event. This event indicates that a user has signed up for an account in your app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SignUpEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSpendVirtualCurrency()
+
+> **logSpendVirtualCurrency**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:795](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L795)
+
+Spend Virtual Currency event. This event tracks the sale of virtual goods in your app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`SpendVirtualCurrencyEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logTutorialBegin()
+
+> **logTutorialBegin**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:808](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L808)
+
+Tutorial Begin event. This event signifies the start of the on-boarding process in your app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logTutorialComplete()
+
+> **logTutorialComplete**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:818](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L818)
+
+Tutorial End event. Use this event to signify the user's completion of your app's on-boarding process.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logUnlockAchievement()
+
+> **logUnlockAchievement**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:829](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L829)
+
+Unlock Achievement event. Log this event when the user has unlocked an achievement in your game.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`UnlockAchievementEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewCart()
+
+> **logViewCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:843](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L843)
+
+E-commerce View Cart event. This event signifies that a user has viewed their cart.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ViewCartEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewItem()
+
+> **logViewItem**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:854](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L854)
+
+View Item event. This event signifies that some content was shown to the user.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ViewItemEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewItemList()
+
+> **logViewItemList**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:865](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L865)
+
+View Item List event. Log this event when the user has been presented with a list of items of a certain category.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ViewItemListEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewPromotion()
+
+> **logViewPromotion**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:879](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L879)
+
+View Promotion event. This event signifies that a promotion was shown to a user.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ViewPromotionEventParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewSearchResults()
+
+> **logViewSearchResults**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:893](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L893)
+
+View Search Results event. Log this event when the user has been presented with the results of a search.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params
+
+`ViewSearchResultsParameters`
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### resetAnalyticsData()
+
+> **resetAnalyticsData**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:497](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L497)
+
+Clears all analytics data for this instance from the device and resets the app instance ID.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setAnalyticsCollectionEnabled()
+
+> **setAnalyticsCollectionEnabled**(`analytics`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L422)
+
+If true, allows the device to collect analytical data and send it to Firebase. Useful for GDPR.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### enabled
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setConsent()
+
+> **setConsent**(`analytics`, `consentSettings`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:1013](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1013)
+
+Sets the applicable end user consent state for this app.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### consentSettings
+
+`ConsentSettings`
+
+See ConsentSettings.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setDefaultEventParameters()
+
+> **setDefaultEventParameters**(`analytics`, `params?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:907](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L907)
+
+Adds parameters that will be set on every event logged from the SDK, including automatic ones.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+Analytics instance.
+
+##### params?
+
+Parameters to be added to the map of parameters added to every event.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setSessionTimeoutDuration()
+
+> **setSessionTimeoutDuration**(`analytics`, `milliseconds?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:433](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L433)
+
+Sets the duration of inactivity that terminates the current session.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### milliseconds?
+
+`number` = `1800000`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### settings()
+
+> **settings**(`_options`): `void`
+
+Defined in: [analytics/lib/modular.ts:1024](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1024)
+
+Configures Firebase Analytics to use custom gtag or dataLayer names.
+Intended to be used if gtag.js script has been installed on this page independently of Firebase Analytics, and is using non-default names for either the gtag function or for dataLayer. Must be called before calling `getAnalytics()` or it won't have any effect. Web only.
+
+#### Parameters
+
+##### \_options
+
+`SettingsOptions`
+
+#### Returns
+
+`void`
+
+***
+
+### setUserId()
+
+> **setUserId**(`analytics`, `id`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:464](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L464)
+
+Gives a user a unique identification.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### id
+
+`string` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setUserProperties()
+
+> **setUserProperties**(`analytics`, `properties`, `options?`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:485](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L485)
+
+Sets multiple key/value pairs of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### properties
+
+##### options?
+
+`AnalyticsCallOptions` = `...`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setUserProperty()
+
+> **setUserProperty**(`analytics`, `name`, `value`): `Promise`\<`void`\>
+
+Defined in: [analytics/lib/modular.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L472)
+
+Sets a key/value pair of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
+
+#### Parameters
+
+##### analytics
+
+`Analytics`
+
+##### name
+
+`string`
+
+##### value
+
+`string` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/reference/app-check/lib/modular.mdx b/docs/reference/app-check/lib/modular.mdx
new file mode 100644
index 0000000000..1bdd10fd32
--- /dev/null
+++ b/docs/reference/app-check/lib/modular.mdx
@@ -0,0 +1,263 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / app-check/lib/modular
+
+# app-check/lib/modular
+
+## Classes
+
+### ReactNativeFirebaseAppCheckProvider
+
+Defined in: [app-check/lib/ReactNativeFirebaseAppCheckProvider.ts:7](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/ReactNativeFirebaseAppCheckProvider.ts#L7)
+
+#### Implements
+
+- `AppCheckProvider`
+
+#### Constructors
+
+##### Constructor
+
+> **new ReactNativeFirebaseAppCheckProvider**(): [`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider)
+
+Defined in: [app-check/lib/ReactNativeFirebaseAppCheckProvider.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/ReactNativeFirebaseAppCheckProvider.ts#L10)
+
+###### Returns
+
+[`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider)
+
+#### Properties
+
+##### providerOptions?
+
+> `optional` **providerOptions**: `ReactNativeFirebaseAppCheckProviderOptionsMap`
+
+Defined in: [app-check/lib/ReactNativeFirebaseAppCheckProvider.ts:8](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/ReactNativeFirebaseAppCheckProvider.ts#L8)
+
+#### Methods
+
+##### configure()
+
+> **configure**(`options`): `void`
+
+Defined in: [app-check/lib/ReactNativeFirebaseAppCheckProvider.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/ReactNativeFirebaseAppCheckProvider.ts#L12)
+
+###### Parameters
+
+###### options
+
+`ReactNativeFirebaseAppCheckProviderOptionsMap`
+
+###### Returns
+
+`void`
+
+##### getToken()
+
+> **getToken**(): `Promise`\<`AppCheckToken`\>
+
+Defined in: [app-check/lib/ReactNativeFirebaseAppCheckProvider.ts:16](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/ReactNativeFirebaseAppCheckProvider.ts#L16)
+
+Returns an AppCheck token.
+
+###### Returns
+
+`Promise`\<`AppCheckToken`\>
+
+###### Implementation of
+
+`AppCheckProvider.getToken`
+
+## Functions
+
+### getLimitedUseToken()
+
+> **getLimitedUseToken**(`appCheckInstance`): `Promise`\<`AppCheckTokenResult`\>
+
+Defined in: [app-check/lib/modular.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L80)
+
+Get a limited-use (consumable) App Check token.
+For use with server calls to firebase functions or custom backends using the firebase admin SDK.
+
+#### Parameters
+
+##### appCheckInstance
+
+`AppCheck`
+
+The App Check instance.
+
+#### Returns
+
+`Promise`\<`AppCheckTokenResult`\>
+
+Promise
+
+***
+
+### getToken()
+
+> **getToken**(`appCheckInstance`, `forceRefresh?`): `Promise`\<`AppCheckTokenResult`\>
+
+Defined in: [app-check/lib/modular.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L62)
+
+Get the current App Check token. Attaches to the most recent in-flight request if one is present.
+Returns null if no token is present and no token requests are in-flight.
+
+#### Parameters
+
+##### appCheckInstance
+
+`AppCheck`
+
+The App Check instance.
+
+##### forceRefresh?
+
+`boolean`
+
+Whether to force refresh the token. Optional
+
+#### Returns
+
+`Promise`\<`AppCheckTokenResult`\>
+
+Promise
+
+***
+
+### initializeAppCheck()
+
+> **initializeAppCheck**(`app?`, `options?`): `Promise`\<`AppCheck`\>
+
+Defined in: [app-check/lib/modular.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L37)
+
+Activate App Check for the given app. Can be called only once per app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+The app to initialize App Check for. Optional.
+
+##### options?
+
+`AppCheckOptions`
+
+App Check options.
+
+#### Returns
+
+`Promise`\<`AppCheck`\>
+
+Promise
+
+***
+
+### onTokenChanged()
+
+#### Call Signature
+
+> **onTokenChanged**(`appCheckInstance`, `listener`): `Unsubscribe`
+
+Defined in: [app-check/lib/modular.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L115)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+##### Parameters
+
+###### appCheckInstance
+
+`AppCheck`
+
+The App Check instance.
+
+###### listener
+
+`PartialObserver`\<`AppCheckTokenResult`\>
+
+The listener to register.
+
+##### Returns
+
+`Unsubscribe`
+
+Unsubscribe
+
+#### Call Signature
+
+> **onTokenChanged**(`appCheckInstance`, `onNext`, `onError?`, `onCompletion?`): `Unsubscribe`
+
+Defined in: [app-check/lib/modular.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L132)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+##### Parameters
+
+###### appCheckInstance
+
+`AppCheck`
+
+The App Check instance.
+
+###### onNext
+
+(`tokenResult`) => `void`
+
+The callback function for token changes.
+
+###### onError?
+
+(`error`) => `void`
+
+Optional error callback.
+
+###### onCompletion?
+
+() => `void`
+
+Optional completion callback.
+
+##### Returns
+
+`Unsubscribe`
+
+Unsubscribe
+
+***
+
+### setTokenAutoRefreshEnabled()
+
+> **setTokenAutoRefreshEnabled**(`appCheckInstance`, `isAutoRefreshEnabled`): `void`
+
+Defined in: [app-check/lib/modular.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L93)
+
+Set whether App Check will automatically refresh tokens as needed.
+
+#### Parameters
+
+##### appCheckInstance
+
+`AppCheck`
+
+The App Check instance.
+
+##### isAutoRefreshEnabled
+
+`boolean`
+
+Whether to enable auto-refresh.
+
+#### Returns
+
+`void`
diff --git a/docs/reference/app-distribution/lib/modular.mdx b/docs/reference/app-distribution/lib/modular.mdx
new file mode 100644
index 0000000000..5793baedad
--- /dev/null
+++ b/docs/reference/app-distribution/lib/modular.mdx
@@ -0,0 +1,119 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / app-distribution/lib/modular
+
+# app-distribution/lib/modular
+
+## Type Aliases
+
+### FirebaseAppDistribution
+
+> **FirebaseAppDistribution** = `FirebaseAppDistributionTypes.Module`
+
+Defined in: [app-distribution/lib/modular/index.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L4)
+
+## Functions
+
+### checkForUpdate()
+
+> **checkForUpdate**(`appDistribution`): `Promise`\<`AppDistributionRelease`\>
+
+Defined in: [app-distribution/lib/modular/index.d.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L31)
+
+Check to see whether a new distribution is available
+If not an iOS device, it always rejects, as no default response seems sensible.
+
+#### Parameters
+
+##### appDistribution
+
+`Module`
+
+#### Returns
+
+`Promise`\<`AppDistributionRelease`\>
+
+***
+
+### getAppDistribution()
+
+> **getAppDistribution**(`app?`): `Module`
+
+Defined in: [app-distribution/lib/modular/index.d.ts:9](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L9)
+
+Get an App Distribution instance for the specified app or current app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+#### Returns
+
+`Module`
+
+***
+
+### isTesterSignedIn()
+
+> **isTesterSignedIn**(`appDistribution`): `Promise`\<`boolean`\>
+
+Defined in: [app-distribution/lib/modular/index.d.ts:17](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L17)
+
+Returns true if the App Distribution tester is signed in.
+If not an iOS device, it always rejects, as neither false nor true seem like a sensible default.
+
+#### Parameters
+
+##### appDistribution
+
+`Module`
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### signInTester()
+
+> **signInTester**(`appDistribution`): `Promise`\<`void`\>
+
+Defined in: [app-distribution/lib/modular/index.d.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L25)
+
+Sign-in the App Distribution tester
+If not an iOS device, it always rejects, as no defaults seem sensible.
+
+#### Parameters
+
+##### appDistribution
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### signOutTester()
+
+> **signOutTester**(`appDistribution`): `Promise`\<`void`\>
+
+Defined in: [app-distribution/lib/modular/index.d.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/app-distribution/lib/modular/index.d.ts#L39)
+
+Sign out App Distribution tester
+If not an iOS device, it always rejects, as no default response seems sensible.
+
+#### Parameters
+
+##### appDistribution
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/docs/reference/app/lib/modular.mdx b/docs/reference/app/lib/modular.mdx
new file mode 100644
index 0000000000..751fe36fec
--- /dev/null
+++ b/docs/reference/app/lib/modular.mdx
@@ -0,0 +1,346 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / app/lib/modular
+
+# app/lib/modular
+
+## Variables
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"23.8.6"` = `sdkVersion`
+
+Defined in: [app/lib/modular.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L219)
+
+## Functions
+
+### deleteApp()
+
+> **deleteApp**(`app`): `Promise`\<`void`\>
+
+Defined in: [app/lib/modular.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L38)
+
+Renders this app unusable and frees the resources of all associated services.
+
+#### Parameters
+
+##### app
+
+`FirebaseApp`
+
+The app to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise
+
+***
+
+### getApp()
+
+> **getApp**(`name?`): `FirebaseApp`
+
+Defined in: [app/lib/modular.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L109)
+
+Retrieves an instance of a Firebase app.
+
+#### Parameters
+
+##### name?
+
+`string`
+
+The optional name of the app to return ('[DEFAULT]' if omitted).
+
+#### Returns
+
+`FirebaseApp`
+
+The requested Firebase app instance.
+
+***
+
+### getApps()
+
+> **getApps**(): `FirebaseApp`[]
+
+Defined in: [app/lib/modular.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L77)
+
+Gets the list of all initialized apps.
+
+#### Returns
+
+`FirebaseApp`[]
+
+An array of all initialized Firebase apps.
+
+***
+
+### initializeApp()
+
+> **initializeApp**(`options`, `configOrName?`): `Promise`\<`FirebaseApp`\>
+
+Defined in: [app/lib/modular.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L91)
+
+Initializes a Firebase app with the provided options and name.
+
+#### Parameters
+
+##### options
+
+`FirebaseAppOptions`
+
+Options to configure the services used in the app.
+
+##### configOrName?
+
+The optional name of the app, or config for the app to initialize (a name of '[DEFAULT]' will be used if omitted).
+
+`string` | `FirebaseAppConfig`
+
+#### Returns
+
+`Promise`\<`FirebaseApp`\>
+
+The initialized Firebase app.
+
+***
+
+### jsonGetAll()
+
+> **jsonGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [app/lib/modular.ts:164](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L164)
+
+Gets react-native-firebase specific "firebase.json" data
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native firebase.json constants
+
+***
+
+### metaGetAll()
+
+> **metaGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [app/lib/modular.ts:153](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L153)
+
+Gets react-native-firebase specific "meta" data from native Info.plist / AndroidManifest.xml
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native meta data
+
+***
+
+### onLog()
+
+> **onLog**(`logCallback`, `options?`): `void`
+
+Defined in: [app/lib/modular.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L69)
+
+Sets log handler for VertexAI only currently.
+
+#### Parameters
+
+##### logCallback
+
+The callback function to handle logs.
+
+`LogCallback` | `null`
+
+##### options?
+
+`LogOptions`
+
+Optional settings for log handling.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### preferencesClearAll()
+
+> **preferencesClearAll**(): `Promise`\<`void`\>
+
+Defined in: [app/lib/modular.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L175)
+
+Clears react-native-firebase specific native preferences
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise
+
+***
+
+### preferencesGetAll()
+
+> **preferencesGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [app/lib/modular.ts:186](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L186)
+
+Gets react-native-firebase specific native preferences
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native preferences data
+
+***
+
+### preferencesSetBool()
+
+> **preferencesSetBool**(`key`, `value`): `Promise`\<`void`\>
+
+Defined in: [app/lib/modular.ts:199](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L199)
+
+Sets react-native-firebase specific native boolean preference
+
+#### Parameters
+
+##### key
+
+`string`
+
+the name of the native preference to set
+
+##### value
+
+`boolean`
+
+the value of the native preference to set
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise
+
+***
+
+### preferencesSetString()
+
+> **preferencesSetString**(`key`, `value`): `Promise`\<`void`\>
+
+Defined in: [app/lib/modular.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L212)
+
+Sets react-native-firebase specific native string preference
+
+#### Parameters
+
+##### key
+
+`string`
+
+the name of the native preference to set
+
+##### value
+
+`string`
+
+the value of the native preference to set
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise
+
+***
+
+### registerVersion()
+
+> **registerVersion**(`_libraryKeyOrName`, `_version`, `_variant?`): `Promise`\<`void`\>
+
+Defined in: [app/lib/modular.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L55)
+
+Registers a library's name and version for platform logging purposes.
+
+#### Parameters
+
+##### \_libraryKeyOrName
+
+`string`
+
+library name or key.
+
+##### \_version
+
+`string`
+
+library version.
+
+##### \_variant?
+
+`string`
+
+library variant. Optional.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise
+
+***
+
+### setLogLevel()
+
+> **setLogLevel**(`logLevel`): `void`
+
+Defined in: [app/lib/modular.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L123)
+
+Sets the log level across all Firebase SDKs.
+
+#### Parameters
+
+##### logLevel
+
+`LogLevelString`
+
+The log level to set ('debug', 'verbose', 'info', 'warn', 'error', 'silent').
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### setReactNativeAsyncStorage()
+
+> **setReactNativeAsyncStorage**(`asyncStorage`): `void`
+
+Defined in: [app/lib/modular.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L138)
+
+The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
+If not specified, in memory persistence is used.
+
+This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
+
+#### Parameters
+
+##### asyncStorage
+
+`ReactNativeAsyncStorage`
+
+#### Returns
+
+`void`
diff --git a/docs/reference/app/lib/utils.mdx b/docs/reference/app/lib/utils.mdx
new file mode 100644
index 0000000000..bac2507191
--- /dev/null
+++ b/docs/reference/app/lib/utils.mdx
@@ -0,0 +1,15 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / app/lib/utils
+
+# app/lib/utils
+
+## Variables
+
+### default
+
+> **default**: `Statics` & () => `Module`
+
+Defined in: [app/lib/utils/index.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/utils/index.ts#L85)
diff --git a/docs/reference/app/lib/utils/UtilsStatics.mdx b/docs/reference/app/lib/utils/UtilsStatics.mdx
new file mode 100644
index 0000000000..5b6eea0081
--- /dev/null
+++ b/docs/reference/app/lib/utils/UtilsStatics.mdx
@@ -0,0 +1,15 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / app/lib/utils/UtilsStatics
+
+# app/lib/utils/UtilsStatics
+
+## Variables
+
+### default
+
+> `const` **default**: `Utils.Statics`
+
+Defined in: [app/lib/utils/UtilsStatics.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/utils/UtilsStatics.ts#L65)
diff --git a/docs/reference/auth/lib/modular.mdx b/docs/reference/auth/lib/modular.mdx
new file mode 100644
index 0000000000..66a1db1fb8
--- /dev/null
+++ b/docs/reference/auth/lib/modular.mdx
@@ -0,0 +1,2089 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / auth/lib/modular
+
+# auth/lib/modular
+
+## Interfaces
+
+### ApplicationVerifier
+
+Defined in: [auth/lib/modular/index.d.ts:318](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L318)
+
+Interface representing an application verifier.
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: `string`
+
+Defined in: [auth/lib/modular/index.d.ts:319](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L319)
+
+#### Methods
+
+##### verify()
+
+> **verify**(): `Promise`\<`string`\>
+
+Defined in: [auth/lib/modular/index.d.ts:320](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L320)
+
+###### Returns
+
+`Promise`\<`string`\>
+
+***
+
+### PasswordValidationStatus
+
+Defined in: [auth/lib/modular/index.d.ts:753](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L753)
+
+A structure indicating which password policy requirements were met or violated and what the
+requirements are.
+
+#### Properties
+
+##### containsLowercaseLetter?
+
+> `readonly` `optional` **containsLowercaseLetter**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:769](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L769)
+
+Whether the password contains a lowercase letter, or undefined if not required.
+
+##### containsNonAlphanumericCharacter?
+
+> `readonly` `optional` **containsNonAlphanumericCharacter**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:781](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L781)
+
+Whether the password contains a non-alphanumeric character, or undefined if not required.
+
+##### containsNumericCharacter?
+
+> `readonly` `optional` **containsNumericCharacter**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:777](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L777)
+
+Whether the password contains a numeric character, or undefined if not required.
+
+##### containsUppercaseLetter?
+
+> `readonly` `optional` **containsUppercaseLetter**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:773](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L773)
+
+Whether the password contains an uppercase letter, or undefined if not required.
+
+##### isValid
+
+> `readonly` **isValid**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:757](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L757)
+
+Whether the password meets all requirements.
+
+##### meetsMaxPasswordLength?
+
+> `readonly` `optional` **meetsMaxPasswordLength**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:765](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L765)
+
+Whether the password meets the maximum password length, or undefined if not required.
+
+##### meetsMinPasswordLength?
+
+> `readonly` `optional` **meetsMinPasswordLength**: `boolean`
+
+Defined in: [auth/lib/modular/index.d.ts:761](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L761)
+
+Whether the password meets the minimum password length, or undefined if not required.
+
+##### passwordPolicy
+
+> `readonly` **passwordPolicy**: `PasswordPolicy`
+
+Defined in: [auth/lib/modular/index.d.ts:785](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L785)
+
+The policy used to validate the password.
+
+***
+
+### PopupRedirectResolver
+
+Defined in: [auth/lib/modular/index.d.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L158)
+
+## Type Aliases
+
+### Persistence
+
+> **Persistence** = `object`
+
+Defined in: [auth/lib/modular/index.d.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L242)
+
+Type of Persistence.
+- 'SESSION' is used for temporary persistence such as `sessionStorage`.
+- 'LOCAL' is used for long term persistence such as `localStorage` or `IndexedDB`.
+- 'NONE' is used for in-memory, or no persistence.
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: `"SESSION"` \| `"LOCAL"` \| `"NONE"`
+
+Defined in: [auth/lib/modular/index.d.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L243)
+
+## Variables
+
+### AppleAuthProvider
+
+> **AppleAuthProvider**: `any`
+
+## Functions
+
+### applyActionCode()
+
+> **applyActionCode**(`auth`, `oobCode`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L53)
+
+Applies a verification code sent to the user by email or other out-of-band mechanism.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### oobCode
+
+`string`
+
+The out-of-band code sent to the user.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the code is applied successfully.
+
+***
+
+### beforeAuthStateChanged()
+
+> **beforeAuthStateChanged**(`auth`, `callback`, `onAbort?`): `void`
+
+Defined in: [auth/lib/modular/index.d.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L63)
+
+Adds a blocking callback that runs before an auth state change sets a new user.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### callback
+
+(`user`) => `void`
+
+A callback function to run before the auth state changes.
+
+##### onAbort?
+
+() => `void`
+
+Optional. A callback function to run if the operation is aborted.
+
+#### Returns
+
+`void`
+
+***
+
+### checkActionCode()
+
+> **checkActionCode**(`auth`, `oobCode`): `Promise`\<`ActionCodeInfo`\>
+
+Defined in: [auth/lib/modular/index.d.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L76)
+
+Checks a verification code sent to the user by email or other out-of-band mechanism.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### oobCode
+
+`string`
+
+The out-of-band code sent to the user.
+
+#### Returns
+
+`Promise`\<`ActionCodeInfo`\>
+
+A promise that resolves with the action code information.
+
+***
+
+### confirmPasswordReset()
+
+> **confirmPasswordReset**(`auth`, `oobCode`, `newPassword`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L89)
+
+Completes the password reset process, given a confirmation code and new password.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### oobCode
+
+`string`
+
+The out-of-band code sent to the user.
+
+##### newPassword
+
+`string`
+
+The new password.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the password is reset.
+
+***
+
+### connectAuthEmulator()
+
+> **connectAuthEmulator**(`auth`, `url`, `options?`): `void`
+
+Defined in: [auth/lib/modular/index.d.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L104)
+
+Changes the Auth instance to communicate with the Firebase Auth Emulator, instead of production Firebase Auth services.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### url
+
+`string`
+
+The URL of the Firebase Auth Emulator.
+
+##### options?
+
+Optional. Options for the emulator connection.
+
+This must be called synchronously immediately following the first call to initializeAuth(). Do not use with production credentials as emulator traffic is not encrypted.
+
+###### disableWarnings
+
+`boolean`
+
+#### Returns
+
+`void`
+
+***
+
+### createUserWithEmailAndPassword()
+
+> **createUserWithEmailAndPassword**(`auth`, `email`, `password`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L118)
+
+Creates a new user account associated with the specified email address and password.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+##### password
+
+`string`
+
+The user's password.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### deleteUser()
+
+> **deleteUser**(`user`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:463](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L463)
+
+Deletes and signs out the user.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the user is deleted.
+
+***
+
+### fetchSignInMethodsForEmail()
+
+> **fetchSignInMethodsForEmail**(`auth`, `email`): `Promise`\<`string`[]\>
+
+Defined in: [auth/lib/modular/index.d.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L131)
+
+Gets the list of possible sign in methods for the given email address.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+#### Returns
+
+`Promise`\<`string`[]\>
+
+A promise that resolves with the list of sign-in methods.
+
+***
+
+### getAdditionalUserInfo()
+
+> **getAdditionalUserInfo**(`userCredential`): `AdditionalUserInfo` \| `null`
+
+Defined in: [auth/lib/modular/index.d.ts:696](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L696)
+
+Extracts provider specific AdditionalUserInfo for the given credential.
+
+#### Parameters
+
+##### userCredential
+
+`UserCredential`
+
+The user credential.
+
+#### Returns
+
+`AdditionalUserInfo` \| `null`
+
+The additional user information, or null if none is available.
+
+***
+
+### getAuth()
+
+> **getAuth**(`app?`): `Module`
+
+Defined in: [auth/lib/modular/index.d.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L30)
+
+Returns the Auth instance associated with the provided FirebaseApp.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+The Firebase app instance.
+
+#### Returns
+
+`Module`
+
+The Auth instance.
+
+***
+
+### getCustomAuthDomain()
+
+> **getCustomAuthDomain**(`auth`): `Promise`\<`string`\>
+
+Defined in: [auth/lib/modular/index.d.ts:706](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L706)
+
+Returns the custom auth domain for the auth instance.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A promise that resolves with the custom auth domain.
+
+***
+
+### getIdToken()
+
+> **getIdToken**(`user`, `forceRefresh?`): `Promise`\<`string`\>
+
+Defined in: [auth/lib/modular/index.d.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L472)
+
+Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to get the token for.
+
+##### forceRefresh?
+
+`boolean`
+
+Optional. Whether to force refresh the token.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A promise that resolves with the token.
+
+***
+
+### getIdTokenResult()
+
+> **getIdTokenResult**(`user`, `forceRefresh?`): `Promise`\<`IdTokenResult`\>
+
+Defined in: [auth/lib/modular/index.d.ts:481](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L481)
+
+Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to get the token result for.
+
+##### forceRefresh?
+
+`boolean`
+
+Optional. Whether to force refresh the token.
+
+#### Returns
+
+`Promise`\<`IdTokenResult`\>
+
+A promise that resolves with the token result.
+
+***
+
+### getMultiFactorResolver()
+
+> **getMultiFactorResolver**(`auth`, `error`): `MultiFactorResolver`
+
+Defined in: [auth/lib/modular/index.d.ts:140](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L140)
+
+Provides a MultiFactorResolver suitable for completion of a multi-factor flow.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### error
+
+`MultiFactorError`
+
+The multi-factor error.
+
+#### Returns
+
+`MultiFactorResolver`
+
+The MultiFactorResolver instance.
+
+***
+
+### getRedirectResult()
+
+> **getRedirectResult**(`auth`, `resolver?`): `Promise`\<`UserCredential` \| `null`\>
+
+Defined in: [auth/lib/modular/index.d.ts:152](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L152)
+
+Returns a UserCredential from the redirect-based sign-in flow.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver.
+
+#### Returns
+
+`Promise`\<`UserCredential` \| `null`\>
+
+A promise that resolves with the user credentials or null.
+
+***
+
+### initializeAuth()
+
+> **initializeAuth**(`app`, `deps?`): `Module`
+
+Defined in: [auth/lib/modular/index.d.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L44)
+
+This function allows more control over the Auth instance than getAuth().
+
+#### Parameters
+
+##### app
+
+`FirebaseApp`
+
+The Firebase app instance.
+
+##### deps?
+
+`any`
+
+Optional. Dependencies for the Auth instance.
+
+#### Returns
+
+`Module`
+
+The Auth instance.
+
+getAuth uses platform-specific defaults to supply the Dependencies.
+In general, getAuth is the easiest way to initialize Auth and works for most use cases.
+Use initializeAuth if you need control over which persistence layer is used, or to minimize bundle size
+if you're not using either signInWithPopup or signInWithRedirect.
+
+***
+
+### initializeRecaptchaConfig()
+
+> **initializeRecaptchaConfig**(`auth`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L165)
+
+Loads the reCAPTCHA configuration into the Auth instance.
+Does not work in a Node.js environment
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### isSignInWithEmailLink()
+
+> **isSignInWithEmailLink**(`auth`, `emailLink`): `Promise`\<`boolean`\>
+
+Defined in: [auth/lib/modular/index.d.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L175)
+
+Checks if an incoming link is a sign-in with email link suitable for signInWithEmailLink.
+Note that android and other platforms require `apiKey` link parameter for signInWithEmailLink
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### emailLink
+
+`string`
+
+The email link to check.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+A promise that resolves if the link is a sign-in with email link.
+
+***
+
+### linkWithCredential()
+
+> **linkWithCredential**(`user`, `credential`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L493)
+
+Links the user account with the given credentials.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to link the credentials with.
+
+##### credential
+
+`AuthCredential`
+
+The auth credentials.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### linkWithPhoneNumber()
+
+> **linkWithPhoneNumber**(`user`, `phoneNumber`, `appVerifier?`): `Promise`\<`ConfirmationResult`\>
+
+Defined in: [auth/lib/modular/index.d.ts:506](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L506)
+
+Links the user account with the given phone number.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to link the phone number with.
+
+##### phoneNumber
+
+`string`
+
+The phone number.
+
+##### appVerifier?
+
+[`ApplicationVerifier`](#applicationverifier)
+
+The application verifier.
+
+#### Returns
+
+`Promise`\<`ConfirmationResult`\>
+
+A promise that resolves with the confirmation result.
+
+***
+
+### linkWithPopup()
+
+> **linkWithPopup**(`user`, `provider`, `resolver?`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:520](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L520)
+
+Links the authenticated provider to the user account using a pop-up based OAuth flow.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to link the provider with.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### linkWithRedirect()
+
+> **linkWithRedirect**(`user`, `provider`, `resolver?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:534](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L534)
+
+Links the OAuthProvider to the user account using a full-page redirect flow.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to link the provider with.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the redirect is complete.
+
+***
+
+### multiFactor()
+
+> **multiFactor**(`user`): `MultiFactorUser`
+
+Defined in: [auth/lib/modular/index.d.ts:546](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L546)
+
+The MultiFactorUser corresponding to the user.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to get the multi-factor user for.
+
+#### Returns
+
+`MultiFactorUser`
+
+The MultiFactorUser instance.
+
+***
+
+### onAuthStateChanged()
+
+> **onAuthStateChanged**(`auth`, `nextOrObserver`): () => `void`
+
+Defined in: [auth/lib/modular/index.d.ts:184](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L184)
+
+Adds an observer for changes to the user's sign-in state.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### nextOrObserver
+
+`CallbackOrObserver`\<`AuthListenerCallback`\>
+
+A callback function or observer for auth state changes.
+
+#### Returns
+
+A function to unsubscribe from the auth state changes.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onIdTokenChanged()
+
+> **onIdTokenChanged**(`auth`, `nextOrObserver`): () => `void`
+
+Defined in: [auth/lib/modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L196)
+
+Adds an observer for changes to the signed-in user's ID token.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### nextOrObserver
+
+`CallbackOrObserver`\<`AuthListenerCallback`\>
+
+A callback function or observer for ID token changes.
+
+#### Returns
+
+A function to unsubscribe from the ID token changes.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### parseActionCodeURL()
+
+> **parseActionCodeURL**(`link`): `any`
+
+Defined in: [auth/lib/modular/index.d.ts:455](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L455)
+
+Parses the email action link string and returns an ActionCodeURL if the link is valid, otherwise returns null.
+
+#### Parameters
+
+##### link
+
+`string`
+
+The email action link string.
+
+#### Returns
+
+`any`
+
+The ActionCodeURL if the link is valid, otherwise null.
+
+***
+
+### reauthenticateWithCredential()
+
+> **reauthenticateWithCredential**(`user`, `credential`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:555](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L555)
+
+Re-authenticates a user using a fresh credential.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to re-authenticate.
+
+##### credential
+
+`AuthCredential`
+
+The auth credentials.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### reauthenticateWithPhoneNumber()
+
+> **reauthenticateWithPhoneNumber**(`user`, `phoneNumber`, `appVerifier?`): `Promise`\<`ConfirmationResult`\>
+
+Defined in: [auth/lib/modular/index.d.ts:568](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L568)
+
+Re-authenticates a user using a fresh phone credential.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to re-authenticate.
+
+##### phoneNumber
+
+`string`
+
+The phone number.
+
+##### appVerifier?
+
+[`ApplicationVerifier`](#applicationverifier)
+
+The application verifier.
+
+#### Returns
+
+`Promise`\<`ConfirmationResult`\>
+
+A promise that resolves with the confirmation result.
+
+***
+
+### reauthenticateWithPopup()
+
+> **reauthenticateWithPopup**(`user`, `provider`, `resolver?`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:582](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L582)
+
+Re-authenticate a user with a federated authentication provider (Microsoft, Yahoo). For native platforms, this will open a browser window.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to re-authenticate.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver. Web only.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### reauthenticateWithRedirect()
+
+> **reauthenticateWithRedirect**(`user`, `provider`, `resolver?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:596](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L596)
+
+Re-authenticate a user with a federated authentication provider (Microsoft, Yahoo). For native platforms, this will open a browser window.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to re-authenticate.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver. Web only.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves with no value.
+
+***
+
+### reload()
+
+> **reload**(`user`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:608](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L608)
+
+Reloads user account data, if signed in.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to reload data for.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the data is reloaded.
+
+***
+
+### revokeAccessToken()
+
+> **revokeAccessToken**(`auth`, `token`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:206](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L206)
+
+Revoke the given access token, Currently only supports Apple OAuth access tokens.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+##### token
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### sendEmailVerification()
+
+> **sendEmailVerification**(`user`, `actionCodeSettings?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:617](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L617)
+
+Sends a verification email to a user.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to send the email to.
+
+##### actionCodeSettings?
+
+`ActionCodeSettings`
+
+Optional. Action code settings.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the email is sent.
+
+***
+
+### sendPasswordResetEmail()
+
+> **sendPasswordResetEmail**(`auth`, `email`, `actionCodeSettings?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L216)
+
+Sends a password reset email to the given email address.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+##### actionCodeSettings?
+
+`ActionCodeSettings`
+
+Optional. Action code settings.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the email is sent.
+
+***
+
+### sendSignInLinkToEmail()
+
+> **sendSignInLinkToEmail**(`auth`, `email`, `actionCodeSettings?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L230)
+
+Sends a sign-in email link to the user with the specified email.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+##### actionCodeSettings?
+
+`ActionCodeSettings`
+
+Optional, Action code settings.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the email is sent.
+
+***
+
+### setLanguageCode()
+
+> **setLanguageCode**(`auth`, `languageCode`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:420](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L420)
+
+Sets the language code.
+
+#### Example
+
+```js
+// Set language to French
+await firebase.auth().setLanguageCode('fr');
+```
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### languageCode
+
+An ISO language code.
+'null' value will set the language code to the app's current language.
+
+`string` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setPersistence()
+
+> **setPersistence**(`auth`, `persistence`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L253)
+
+Changes the type of persistence on the Auth instance for the currently saved Auth session and applies this type of persistence for future sign-in requests, including sign-in with redirect requests.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### persistence
+
+[`Persistence`](#persistence)
+
+The persistence type.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the persistence is set.
+
+***
+
+### signInAnonymously()
+
+> **signInAnonymously**(`auth`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L261)
+
+Asynchronously signs in as an anonymous user.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithCredential()
+
+> **signInWithCredential**(`auth`, `credential`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L270)
+
+Asynchronously signs in with the given credentials.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### credential
+
+`AuthCredential`
+
+The auth credentials.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithCustomToken()
+
+> **signInWithCustomToken**(`auth`, `customToken`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:282](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L282)
+
+Asynchronously signs in using a custom token.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### customToken
+
+`string`
+
+The custom token.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithEmailAndPassword()
+
+> **signInWithEmailAndPassword**(`auth`, `email`, `password`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L295)
+
+Asynchronously signs in using an email and password.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+##### password
+
+`string`
+
+The user's password.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithEmailLink()
+
+> **signInWithEmailLink**(`auth`, `email`, `emailLink`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:309](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L309)
+
+Asynchronously signs in using an email and sign-in email link.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### email
+
+`string`
+
+The user's email address.
+
+##### emailLink
+
+`string`
+
+The email link.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithPhoneNumber()
+
+> **signInWithPhoneNumber**(`auth`, `phoneNumber`, `appVerifier?`, `forceResend?`): `Promise`\<`ConfirmationResult`\>
+
+Defined in: [auth/lib/modular/index.d.ts:332](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L332)
+
+Asynchronously signs in using a phone number.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### phoneNumber
+
+`string`
+
+The user's phone number.
+
+##### appVerifier?
+
+[`ApplicationVerifier`](#applicationverifier)
+
+Optional. The application verifier.
+
+##### forceResend?
+
+`boolean`
+
+Optional. (Native only) Forces a new message to be sent if it was already recently sent.
+
+#### Returns
+
+`Promise`\<`ConfirmationResult`\>
+
+A promise that resolves with the confirmation result.
+
+***
+
+### signInWithPopup()
+
+> **signInWithPopup**(`auth`, `provider`, `resolver?`): `Promise`\<`UserCredential`\>
+
+Defined in: [auth/lib/modular/index.d.ts:363](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L363)
+
+Authenticates a Firebase client using a popup-based OAuth authentication flow.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver.
+
+#### Returns
+
+`Promise`\<`UserCredential`\>
+
+A promise that resolves with the user credentials.
+
+***
+
+### signInWithRedirect()
+
+> **signInWithRedirect**(`auth`, `provider`, `resolver?`): `Promise`\<`never`\>
+
+Defined in: [auth/lib/modular/index.d.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L377)
+
+Authenticates a Firebase client using a full-page redirect flow.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### provider
+
+`AuthProvider`
+
+The auth provider.
+
+##### resolver?
+
+[`PopupRedirectResolver`](#popupredirectresolver)
+
+Optional. The popup redirect resolver.
+
+#### Returns
+
+`Promise`\<`never`\>
+
+A promise that resolves when the redirect is complete.
+
+***
+
+### signOut()
+
+> **signOut**(`auth`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:389](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L389)
+
+Signs out the current user.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the user is signed out.
+
+***
+
+### unlink()
+
+> **unlink**(`user`, `providerId`): `Promise`\<`User`\>
+
+Defined in: [auth/lib/modular/index.d.ts:629](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L629)
+
+Unlinks a provider from a user account.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to unlink the provider from.
+
+##### providerId
+
+`string`
+
+The provider ID.
+
+#### Returns
+
+`Promise`\<`User`\>
+
+A promise that resolves with the user.
+
+***
+
+### updateCurrentUser()
+
+> **updateCurrentUser**(`auth`, `user`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:398](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L398)
+
+Asynchronously sets the provided user as Auth.currentUser on the Auth instance.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### user
+
+The user to set as the current user.
+
+`User` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the user is set.
+
+***
+
+### updateEmail()
+
+> **updateEmail**(`user`, `newEmail`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:641](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L641)
+
+Updates the user's email address.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to update the email for.
+
+##### newEmail
+
+`string`
+
+The new email address.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the email is updated.
+
+***
+
+### updatePassword()
+
+> **updatePassword**(`user`, `newPassword`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:650](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L650)
+
+Updates the user's password.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to update the password for.
+
+##### newPassword
+
+`string`
+
+The new password.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the password is updated.
+
+***
+
+### updatePhoneNumber()
+
+> **updatePhoneNumber**(`user`, `credential`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:659](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L659)
+
+Updates the user's phone number.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to update the phone number for.
+
+##### credential
+
+`AuthCredential`
+
+The auth credentials.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the phone number is updated.
+
+***
+
+### updateProfile()
+
+> **updateProfile**(`user`, `profile`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:671](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L671)
+
+Updates a user's profile data.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to update the profile for.
+
+##### profile
+
+An object containing the profile data to update.
+
+###### displayName?
+
+`string` \| `null`
+
+###### photoURL?
+
+`string` \| `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the profile is updated.
+
+***
+
+### useDeviceLanguage()
+
+> **useDeviceLanguage**(`auth`): `void`
+
+Defined in: [auth/lib/modular/index.d.ts:405](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L405)
+
+Sets the current language to the default device/browser preference.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+#### Returns
+
+`void`
+
+***
+
+### useUserAccessGroup()
+
+> **useUserAccessGroup**(`auth`, `userAccessGroup`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:438](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L438)
+
+Configures a shared user access group to sync auth state across multiple apps via the Keychain.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### userAccessGroup
+
+`string`
+
+The user access group.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the user access group is set.
+
+***
+
+### validatePassword()
+
+#### Call Signature
+
+> **validatePassword**(`auth`, `password`): `Promise`\<[`PasswordValidationStatus`](#passwordvalidationstatus)\>
+
+Defined in: [auth/lib/modular/index.d.ts:429](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L429)
+
+Validates the password against the password policy configured for the project or tenant.
+
+##### Parameters
+
+###### auth
+
+`Module`
+
+The Auth instance.
+
+###### password
+
+`string`
+
+The password to validate.
+
+##### Returns
+
+`Promise`\<[`PasswordValidationStatus`](#passwordvalidationstatus)\>
+
+#### Call Signature
+
+> **validatePassword**(`auth`, `password`): `Promise`\<[`PasswordValidationStatus`](#passwordvalidationstatus)\>
+
+Defined in: [auth/lib/modular/index.d.ts:745](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L745)
+
+Validates the password against the password policy configured for the project or tenant.
+
+##### Parameters
+
+###### auth
+
+`Module`
+
+The Auth instance.
+
+###### password
+
+`string`
+
+The password to validate.
+
+##### Returns
+
+`Promise`\<[`PasswordValidationStatus`](#passwordvalidationstatus)\>
+
+##### Remarks
+
+If no tenant ID is set on the `Auth` instance, then this method will use the password
+policy configured for the project. Otherwise, this method will use the policy configured
+for the tenant. If a password policy has not been configured, then the default policy
+configured for all projects will be used.
+
+If an auth flow fails because a submitted password does not meet the password policy
+requirements and this method has previously been called, then this method will use the
+most recent policy available when called again.
+
+When using this method, ensure you have the Identity Toolkit enabled on the
+Google Cloud Platform with the API Key for your application permitted to use it.
+
+##### Example
+
+``` js
+import { getAuth, validatePassword } from "firebase/auth";
+
+const status = await validatePassword(getAuth(), passwordFromUser);
+if (!status.isValid) {
+// Password could not be validated. Use the status to show what
+// requirements are met and which are missing.
+
+// If a criterion is undefined, it is not required by policy. If the
+// criterion is defined but false, it is required but not fulfilled by
+// the given password. For example:
+ const needsLowerCase = status.containsLowercaseLetter !== true;
+}
+```
+
+***
+
+### verifyBeforeUpdateEmail()
+
+> **verifyBeforeUpdateEmail**(`user`, `newEmail`, `actionCodeSettings?`): `Promise`\<`void`\>
+
+Defined in: [auth/lib/modular/index.d.ts:684](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L684)
+
+Sends a verification email to a new email address.
+
+#### Parameters
+
+##### user
+
+`User`
+
+The user to send the email to.
+
+##### newEmail
+
+`string`
+
+The new email address.
+
+##### actionCodeSettings?
+
+Optional. Action code settings.
+
+`ActionCodeSettings` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the email is sent.
+
+***
+
+### verifyPasswordResetCode()
+
+> **verifyPasswordResetCode**(`auth`, `code`): `Promise`\<`string`\>
+
+Defined in: [auth/lib/modular/index.d.ts:447](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L447)
+
+Verifies the password reset code sent to the user by email or other out-of-band mechanism.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### code
+
+`string`
+
+The password reset code.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A promise that resolves with the user's email address.
+
+***
+
+### verifyPhoneNumber()
+
+> **verifyPhoneNumber**(`auth`, `phoneNumber`, `autoVerifyTimeoutOrForceResend`, `forceResend?`): `PhoneAuthListener`
+
+Defined in: [auth/lib/modular/index.d.ts:348](https://github.com/invertase/react-native-firebase/blob/main/packages/auth/lib/modular/index.d.ts#L348)
+
+Asynchronously signs in using a phone number.
+
+#### Parameters
+
+##### auth
+
+`Module`
+
+The Auth instance.
+
+##### phoneNumber
+
+`string`
+
+The user's phone number.
+
+##### autoVerifyTimeoutOrForceResend
+
+The auto verify timeout or force resend flag.
+
+`number` | `boolean`
+
+##### forceResend?
+
+`boolean`
+
+Optional. Whether to force resend.
+
+#### Returns
+
+`PhoneAuthListener`
+
+A promise that resolves with the phone auth listener.
+
+## References
+
+### EmailAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### FacebookAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### GithubAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### GoogleAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### OAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### OIDCAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### PhoneAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### PhoneAuthState
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### PhoneMultiFactorGenerator
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### TotpMultiFactorGenerator
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### TotpSecret
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
+
+***
+
+### TwitterAuthProvider
+
+Renames and re-exports [AppleAuthProvider](#appleauthprovider)
diff --git a/docs/reference/crashlytics/lib/modular.mdx b/docs/reference/crashlytics/lib/modular.mdx
new file mode 100644
index 0000000000..6dbdc67849
--- /dev/null
+++ b/docs/reference/crashlytics/lib/modular.mdx
@@ -0,0 +1,433 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / crashlytics/lib/modular
+
+# crashlytics/lib/modular
+
+## Functions
+
+### checkForUnsentReports()
+
+> **checkForUnsentReports**(`crashlytics`): `Promise`\<`boolean`\>
+
+Defined in: [crashlytics/lib/modular.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L34)
+
+Determines whether there are any unsent crash reports cached on the device. The callback only executes
+if automatic data collection is disabled.
+
+#### Example
+
+```js
+async checkReports() {
+// returns boolean value
+ const crashlytics = getCrashlytics();
+ const unsentReports = await checkForUnsentReports(crashlytics);
+}
+
+checkReports();
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves to a boolean indicating if there are unsent reports.
+
+***
+
+### crash()
+
+> **crash**(`crashlytics`): `void`
+
+Defined in: [crashlytics/lib/modular.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L91)
+
+Cause your app to crash for testing purposes. This is a native crash and will not contain a javascript stack trace.
+Note that crashes are intercepted by debuggers on iOS so no report will be seen under those conditions. Additionally
+if it is a debug build you will need to ensure your firebase.json is configured to enable crashlytics even in debug mode.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+crash(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+#### Returns
+
+`void`
+
+***
+
+### deleteUnsentReports()
+
+> **deleteUnsentReports**(`crashlytics`): `Promise`\<`void`\>
+
+Defined in: [crashlytics/lib/modular.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L51)
+
+Deletes any unsent reports on the device. This method only applies if automatic data collection is
+disabled.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+deleteUnsentReports(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### didCrashOnPreviousExecution()
+
+> **didCrashOnPreviousExecution**(`crashlytics`): `Promise`\<`boolean`\>
+
+Defined in: [crashlytics/lib/modular.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L73)
+
+Returns a boolean value indicating whether the app crashed during the previous execution.
+
+#### Example
+
+```js
+async didCrashPreviously() {
+// returns boolean value
+const crashlytics = getCrashlytics();
+const didCrash = await didCrashOnPreviousExecution(crashlytics);
+}
+
+didCrashPreviously();
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves to a boolean indicating if the app crashed previously.
+
+***
+
+### getCrashlytics()
+
+> **getCrashlytics**(): `Crashlytics`
+
+Defined in: [crashlytics/lib/modular.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L12)
+
+Returns Crashlytics instance.
+#### Example
+```js
+const crashlytics = getCrashlytics();
+```
+
+#### Returns
+
+`Crashlytics`
+
+***
+
+### log()
+
+> **log**(`crashlytics`, `message`): `void`
+
+Defined in: [crashlytics/lib/modular.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L109)
+
+Log a message that will appear in any subsequent Crash or Non-fatal error reports.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+log(crashlytics, 'Testing a crash');
+crash(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### message
+
+`string`
+
+The message to log.
+
+#### Returns
+
+`void`
+
+***
+
+### recordError()
+
+> **recordError**(`crashlytics`, `error`, `jsErrorName?`): `void`
+
+Defined in: [crashlytics/lib/modular.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L134)
+
+Record a JavaScript Error.
+
+The JavaScript stack trace is converted into a mock native iOS or Android exception before submission.
+The line numbers in the stack trace (if available) will be relative to the javascript bundle built by your packager,
+after whatever transpilation or minimization steps happen. You will need to maintain sourcemaps to decode them if desired.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+recordError(
+ crashlytics,
+ new Error('An error was caught')
+);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### error
+
+`Error`
+
+Expects an instance of Error; e.g. classes that extend Error will also be supported.
+
+##### jsErrorName?
+
+`string`
+
+Optional string containing Javascript error name
+
+#### Returns
+
+`void`
+
+***
+
+### sendUnsentReports()
+
+> **sendUnsentReports**(`crashlytics`): `void`
+
+Defined in: [crashlytics/lib/modular.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L151)
+
+Enqueues any unsent reports on the device to upload to Crashlytics. This method only applies if
+automatic data collection is disabled.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+sendUnsentReports(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+#### Returns
+
+`void`
+
+***
+
+### setAttribute()
+
+> **setAttribute**(`crashlytics`, `name`, `value`): `Promise`\<`null`\>
+
+Defined in: [crashlytics/lib/modular.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L196)
+
+Sets a string value to be associated with the given attribute name which will be visible in the Firebase Crashlytics console.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+await setAttribute(crashlytics, 'role', 'admin');
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### name
+
+`string`
+
+The name of the attribute to set.
+
+##### value
+
+`string`
+
+A string value for the given attribute.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setAttributes()
+
+> **setAttributes**(`crashlytics`, `attributes`): `Promise`\<`null`\>
+
+Defined in: [crashlytics/lib/modular.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L216)
+
+Like `setAttribute` but for multiple attributes.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+await setAttributes(crashlytics, {
+ role: 'admin',
+ followers: '13',
+});
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### attributes
+
+An object of key/value attribute name and values.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setCrashlyticsCollectionEnabled()
+
+> **setCrashlyticsCollectionEnabled**(`crashlytics`, `enabled`): `Promise`\<`null`\>
+
+Defined in: [crashlytics/lib/modular.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L239)
+
+Enable/disable Crashlytics reporting.
+
+Use this for opt-in first user data collection flows combined with `firebase.json` settings to disable auto collection.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+// Disable crash reporting
+await setCrashlyticsCollectionEnabled(crashlytics, false);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value representing whether to enable Crashlytics error collection.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setUserId()
+
+> **setUserId**(`crashlytics`, `userId`): `Promise`\<`null`\>
+
+Defined in: [crashlytics/lib/modular.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L178)
+
+Specify a user identifier which will be visible in the Firebase Crashlytics console.
+
+It is recommended for privacy purposes that this value be a value that's meaningless to a third-party
+observer; such as an arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+#### Example
+
+```js
+const auth = getAuth();
+const crashlytics = getCrashlytics();
+// Custom user id
+await setUserId(crashlytics, '123456789');
+// Firebase auth uid
+await setUserId(
+ crashlytics,
+ auth.currentUser.uid
+);
+```
+
+#### Parameters
+
+##### crashlytics
+
+`Crashlytics`
+
+A crashlytics instance.
+
+##### userId
+
+`string`
+
+An arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+#### Returns
+
+`Promise`\<`null`\>
diff --git a/docs/reference/database/lib/modular.mdx b/docs/reference/database/lib/modular.mdx
new file mode 100644
index 0000000000..47e748e703
--- /dev/null
+++ b/docs/reference/database/lib/modular.mdx
@@ -0,0 +1,734 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / database/lib/modular
+
+# database/lib/modular
+
+## Variables
+
+### ServerValue
+
+> `const` **ServerValue**: `object`
+
+Defined in: [database/lib/modular/index.d.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L226)
+
+Server specific values.
+
+#### Type Declaration
+
+##### TIMESTAMP
+
+> **TIMESTAMP**: `object`
+
+A placeholder value for auto-populating the current timestamp.
+
+##### increment()
+
+> **increment**(`delta`): `object`
+
+Returns a placeholder value that can be used to atomically increment the current database value.
+
+###### Parameters
+
+###### delta
+
+`number`
+
+###### Returns
+
+`object`
+
+## Functions
+
+### connectDatabaseEmulator()
+
+> **connectDatabaseEmulator**(`db`, `host`, `port`): `void`
+
+Defined in: [database/lib/modular/index.d.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L34)
+
+Modify this Database instance to communicate with the Firebase Database emulator.
+This must be called synchronously immediately following the first call to firebase.database().
+Do not use with production credentials as emulator traffic is not encrypted.
+
+Note: on android, hosts 'localhost' and '127.0.0.1' are automatically remapped to '10.0.2.2' (the
+"host" computer IP address for android emulators) to make the standard development experience easy.
+If you want to use the emulator on a real android device, you will need to specify the actual host
+computer IP address.
+
+#### Parameters
+
+##### db
+
+`Module`
+
+##### host
+
+`string`
+
+##### port
+
+`number`
+
+#### Returns
+
+`void`
+
+***
+
+### enableLogging()
+
+> **enableLogging**(`enabled`, `persistent?`): `any`
+
+Defined in: [database/lib/modular/index.d.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L243)
+
+Logs debugging information to the console. Not implemented on native.
+
+#### Parameters
+
+##### enabled
+
+`boolean`
+
+##### persistent?
+
+`boolean`
+
+#### Returns
+
+`any`
+
+***
+
+### forceLongPolling()
+
+> **forceLongPolling**(): `void`
+
+Defined in: [database/lib/modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L196)
+
+Force the use of longPolling instead of websockets. This will be ignored if websocket protocol is used in databaseURL.
+
+#### Returns
+
+`void`
+
+***
+
+### forceWebSockets()
+
+> **forceWebSockets**(): `void`
+
+Defined in: [database/lib/modular/index.d.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L201)
+
+Force the use of websockets instead of longPolling.
+
+#### Returns
+
+`void`
+
+***
+
+### getDatabase()
+
+> **getDatabase**(`app?`, `url?`): `Module`
+
+Defined in: [database/lib/modular/index.d.ts:18](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L18)
+
+Returns the instance of the Realtime Database SDK that is associated with
+the provided FirebaseApp. Initializes a new instance with
+default settings if no instance exists or if the existing
+instance uses a custom database URL.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+The FirebaseApp instance that the returned Realtime Database instance is associated with.
+
+##### url?
+
+`string`
+
+#### Returns
+
+`Module`
+
+***
+
+### getServerTime()
+
+> **getServerTime**(`db`): `Promise`\<`number`\>
+
+Defined in: [database/lib/modular/index.d.ts:213](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L213)
+
+Returns the current Firebase Database server time as a JavaScript Date object.
+
+#### Parameters
+
+##### db
+
+`Module`
+
+#### Returns
+
+`Promise`\<`number`\>
+
+***
+
+### goOffline()
+
+> **goOffline**(`db`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/index.d.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L67)
+
+Disconnects from the server (all Database operations will be completed offline).
+
+The client automatically maintains a persistent connection to the Database server, which
+will remain active indefinitely and reconnect when disconnected. However, the `goOffline()` and
+`goOnline()` methods may be used to control the client connection in cases where a persistent
+connection is undesirable.
+
+While offline, the client will no longer receive data updates from the Database. However,
+all Database operations performed locally will continue to immediately fire events, allowing
+your application to continue behaving normally. Additionally, each operation performed locally
+will automatically be queued and retried upon reconnection to the Database server.
+
+To reconnect to the Database and begin receiving remote events, see `goOnline()`.
+
+#### Example
+
+```js
+const db = getDatabase();;
+await goOnline(db);
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### goOnline()
+
+> **goOnline**(`db`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/index.d.ts:83](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L83)
+
+Reconnects to the server and synchronizes the offline Database state with the server state.
+
+This method should be used after disabling the active connection with `goOffline()`. Once
+reconnected, the client will transmit the proper data and fire the appropriate events so that
+your client "catches up" automatically.
+
+#### Example
+
+```js
+const db = getDatabase();
+await goOnline(db);
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### increment()
+
+> **increment**(`delta`): `object`
+
+Defined in: [database/lib/modular/index.d.ts:221](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L221)
+
+Returns a placeholder value that can be used to atomically increment the
+current database value by the provided delta.
+
+#### Parameters
+
+##### delta
+
+`number`
+
+the amount to modify the current value atomically.
+
+#### Returns
+
+`object`
+
+A placeholder value for modifying data atomically server-side.
+
+***
+
+### ref()
+
+> **ref**(`db`, `path?`): `Reference`
+
+Defined in: [database/lib/modular/index.d.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L104)
+
+Returns a `Reference` representing the location in the Database corresponding to the provided path.
+If no path is provided, the Reference will point to the root of the Database.
+
+#### Example
+
+```js
+const db = getDatabase();
+
+// Get a reference to the root of the Database
+const rootRef = ref(db);
+
+// Get a reference to the /users/ada node
+const adaRef = ref(db, "users/ada");
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+The Database instance.
+
+##### path?
+
+`string`
+
+Optional path representing the location the returned `Reference` will point. If not provided, the returned `Reference` will point to the root of the Database.
+
+#### Returns
+
+`Reference`
+
+***
+
+### refFromURL()
+
+> **refFromURL**(`db`, `url`): `Reference`
+
+Defined in: [database/lib/modular/index.d.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L115)
+
+Generates a Reference from a database URL.
+Note domain must be the same.
+Any query parameters are stripped as per the web SDK.
+
+#### Parameters
+
+##### db
+
+`Module`
+
+The Database instance.
+
+##### url
+
+`string`
+
+The Firebase URL at which the returned Reference will point.
+
+#### Returns
+
+`Reference`
+
+***
+
+### serverTimestamp()
+
+> **serverTimestamp**(): `object`
+
+Defined in: [database/lib/modular/index.d.ts:208](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L208)
+
+Returns a placeholder value for auto-populating the current timestamp (time
+since the Unix epoch, in milliseconds) as determined by the Firebase
+servers.
+
+#### Returns
+
+`object`
+
+***
+
+### setLoggingEnabled()
+
+> **setLoggingEnabled**(`db`, `enabled`): `void`
+
+Defined in: [database/lib/modular/index.d.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L163)
+
+Sets the native logging level for the database module. By default,
+only warnings and errors are logged natively. Setting this to true will log all
+database events.
+
+> Ensure logging is disabled for production apps, as excessive logging can cause performance issues.
+
+#### Example
+
+```js
+const db = getDatabase();
+
+// Set debug logging if developing
+if (__DEV__) {
+ setLoggingEnabled(db, true);
+}
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+The Database instance.
+
+##### enabled
+
+`boolean`
+
+Whether debug logging is enabled.
+
+#### Returns
+
+`void`
+
+***
+
+### setPersistenceCacheSizeBytes()
+
+> **setPersistenceCacheSizeBytes**(`db`, `bytes`): `void`
+
+Defined in: [database/lib/modular/index.d.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L191)
+
+By default, Firebase Database will use up to 10MB of disk space to cache data. If the cache grows beyond this size,
+Firebase Database will start removing data that hasn't been recently used. If you find that your application
+caches too little or too much data, call this method to change the cache size. This method must be called before
+creating your first Database reference and only needs to be called once per application.
+
+Note that the specified cache size is only an approximation and the size on disk may temporarily exceed it at times.
+Cache sizes smaller than 1 MB or greater than 100 MB are not supported.
+
+#### Example
+
+```js
+const db = getDatabase();
+
+setPersistenceEnabled(db, true);
+setPersistenceCacheSizeBytes(db, 2000000); // 2MB
+
+async function bootstrap() {
+ // Bootstrapping application
+ const snapshot = await ref(db, 'settings').once("value");
+}
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+The Database instance.
+
+##### bytes
+
+`number`
+
+The new size of the cache in bytes.
+
+#### Returns
+
+`void`
+
+***
+
+### setPersistenceEnabled()
+
+> **setPersistenceEnabled**(`db`, `enabled`): `void`
+
+Defined in: [database/lib/modular/index.d.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/index.d.ts#L139)
+
+Sets whether persistence is enabled for all database calls for the current app
+instance.
+
+> Ensure this is called before any database calls are performed, otherwise
+persistence will only come into effect when the app is next started.
+
+#### Example
+
+```js
+const db = getDatabase();
+setPersistenceEnabled(db, true);
+
+async function bootstrap() {
+ // Bootstrapping application
+ const snapshot = await ref(db, "settings").once("value");
+}
+```
+
+#### Parameters
+
+##### db
+
+`Module`
+
+The Database instance.
+
+##### enabled
+
+`boolean`
+
+Whether persistence is enabled for the Database service.
+
+#### Returns
+
+`void`
+
+## References
+
+### child
+
+Re-exports [child](modular/query.mdx#child-1)
+
+***
+
+### DatabaseReference
+
+Re-exports [DatabaseReference](modular/query.mdx#databasereference)
+
+***
+
+### DataSnapshot
+
+Re-exports [DataSnapshot](modular/query.mdx#datasnapshot)
+
+***
+
+### endAt
+
+Re-exports [endAt](modular/query.mdx#endat-1)
+
+***
+
+### endBefore
+
+Re-exports [endBefore](modular/query.mdx#endbefore)
+
+***
+
+### equalTo
+
+Re-exports [equalTo](modular/query.mdx#equalto-1)
+
+***
+
+### get
+
+Re-exports [get](modular/query.mdx#get)
+
+***
+
+### keepSynced
+
+Re-exports [keepSynced](modular/query.mdx#keepsynced-1)
+
+***
+
+### limitToFirst
+
+Re-exports [limitToFirst](modular/query.mdx#limittofirst-1)
+
+***
+
+### limitToLast
+
+Re-exports [limitToLast](modular/query.mdx#limittolast-1)
+
+***
+
+### ListenOptions
+
+Re-exports [ListenOptions](modular/query.mdx#listenoptions)
+
+***
+
+### off
+
+Re-exports [off](modular/query.mdx#off-1)
+
+***
+
+### onChildAdded
+
+Re-exports [onChildAdded](modular/query.mdx#onchildadded)
+
+***
+
+### onChildChanged
+
+Re-exports [onChildChanged](modular/query.mdx#onchildchanged)
+
+***
+
+### onChildMoved
+
+Re-exports [onChildMoved](modular/query.mdx#onchildmoved)
+
+***
+
+### onChildRemoved
+
+Re-exports [onChildRemoved](modular/query.mdx#onchildremoved)
+
+***
+
+### onDisconnect
+
+Re-exports [onDisconnect](modular/query.mdx#ondisconnect-2)
+
+***
+
+### OnDisconnect
+
+Re-exports [OnDisconnect](modular/query.mdx#ondisconnect-1)
+
+***
+
+### onValue
+
+Re-exports [onValue](modular/query.mdx#onvalue)
+
+***
+
+### orderByChild
+
+Re-exports [orderByChild](modular/query.mdx#orderbychild-1)
+
+***
+
+### orderByKey
+
+Re-exports [orderByKey](modular/query.mdx#orderbykey-1)
+
+***
+
+### orderByPriority
+
+Re-exports [orderByPriority](modular/query.mdx#orderbypriority-1)
+
+***
+
+### orderByValue
+
+Re-exports [orderByValue](modular/query.mdx#orderbyvalue-1)
+
+***
+
+### push
+
+Re-exports [push](modular/query.mdx#push-1)
+
+***
+
+### query
+
+Re-exports [query](modular/query.mdx#query-1)
+
+***
+
+### Query
+
+Re-exports [Query](modular/query.mdx#query)
+
+***
+
+### QueryConstraint
+
+Re-exports [QueryConstraint](modular/query.mdx#queryconstraint)
+
+***
+
+### QueryConstraintType
+
+Re-exports [QueryConstraintType](modular/query.mdx#queryconstrainttype)
+
+***
+
+### remove
+
+Re-exports [remove](modular/query.mdx#remove-1)
+
+***
+
+### runTransaction
+
+Re-exports [runTransaction](modular/transaction.mdx#runtransaction)
+
+***
+
+### set
+
+Re-exports [set](modular/query.mdx#set-1)
+
+***
+
+### setPriority
+
+Re-exports [setPriority](modular/query.mdx#setpriority-1)
+
+***
+
+### setWithPriority
+
+Re-exports [setWithPriority](modular/query.mdx#setwithpriority-1)
+
+***
+
+### startAfter
+
+Re-exports [startAfter](modular/query.mdx#startafter)
+
+***
+
+### startAt
+
+Re-exports [startAt](modular/query.mdx#startat-1)
+
+***
+
+### ThenableReference
+
+Re-exports [ThenableReference](modular/query.mdx#thenablereference)
+
+***
+
+### TransactionOptions
+
+Re-exports [TransactionOptions](modular/transaction.mdx#transactionoptions)
+
+***
+
+### TransactionResult
+
+Re-exports [TransactionResult](modular/transaction.mdx#transactionresult)
+
+***
+
+### Unsubscribe
+
+Re-exports [Unsubscribe](modular/query.mdx#unsubscribe)
+
+***
+
+### update
+
+Re-exports [update](modular/query.mdx#update-1)
diff --git a/docs/reference/database/lib/modular/query.mdx b/docs/reference/database/lib/modular/query.mdx
new file mode 100644
index 0000000000..0fbda5e1fa
--- /dev/null
+++ b/docs/reference/database/lib/modular/query.mdx
@@ -0,0 +1,3175 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / database/lib/modular/query
+
+# database/lib/modular/query
+
+## Interfaces
+
+### ListenOptions
+
+Defined in: [database/lib/modular/query.d.ts:18](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L18)
+
+#### Properties
+
+##### onlyOnce?
+
+> `readonly` `optional` **onlyOnce**: `boolean`
+
+Defined in: [database/lib/modular/query.d.ts:19](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L19)
+
+***
+
+### QueryConstraint
+
+Defined in: [database/lib/modular/query.d.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L46)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Database query. `QueryConstraint`s are created by invoking [endAt](#endat-1),
+[endBefore](#endbefore), [startAt](#startat-1), [startAfter](#startafter), [limitToFirst](#limittofirst-1), [limitToLast](#limittolast-1), [orderByChild](#orderbychild-1),
+[orderByChild](#orderbychild-1), [orderByKey](#orderbykey-1) , [orderByPriority](#orderbypriority-1) ,
+[orderByValue](#orderbyvalue-1) or [equalTo](#equalto-1) and
+can then be passed to [query](#query-1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Properties
+
+##### \_type
+
+> `readonly` **\_type**: [`QueryConstraintType`](#queryconstrainttype)
+
+Defined in: [database/lib/modular/query.d.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L48)
+
+The type of this query constraints
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**(`query`): `Query`
+
+Defined in: [database/lib/modular/query.d.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L50)
+
+###### Parameters
+
+###### query
+
+`Query`
+
+###### Returns
+
+`Query`
+
+***
+
+### ThenableReference
+
+Defined in: [database/lib/modular/query.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L13)
+
+A `Promise` that can also act as a `DatabaseReference` when returned by
+[push](#push-1). The reference is available immediately and the `Promise` resolves
+as the write to the backend completes.
+
+#### Extends
+
+- [`DatabaseReference`](#databasereference).`Pick`\<`Promise`\<[`DatabaseReference`](#databasereference)\>, `"then"` \| `"catch"`\>
+
+#### Properties
+
+##### key
+
+> **key**: `string` \| `null`
+
+Defined in: [database/lib/index.d.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L175)
+
+The last part of the Reference's path.
+For example, "ada" is the key for https://.firebaseio.com/users/ada.
+The key of a root Reference is null.
+
+###### Inherited from
+
+`DatabaseReference.key`
+
+##### parent
+
+> **parent**: `Reference` \| `null`
+
+Defined in: [database/lib/index.d.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L139)
+
+The parent location of a Reference. The parent of a root Reference is `null`.
+
+#### Example
+
+```js
+firebase.database().ref().parent; // null
+firebase.database().ref('users/dave').parent; // 'users' reference
+```
+
+###### Inherited from
+
+`DatabaseReference.parent`
+
+##### ref
+
+> **ref**: `Reference`
+
+Defined in: [database/lib/index.d.ts:445](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L445)
+
+Returns a Reference to the Query's location.
+
+###### Inherited from
+
+`DatabaseReference.ref`
+
+##### root
+
+> **root**: `Reference`
+
+Defined in: [database/lib/index.d.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L151)
+
+The root Reference of the Database.
+
+#### Example
+
+```js
+firebase.database().ref().root; // '/' reference path
+firebase.database().ref('users/ada').root; // '/' reference
+```
+
+###### Inherited from
+
+`DatabaseReference.root`
+
+#### Methods
+
+##### child()
+
+> **child**(`path`): `Reference`
+
+Defined in: [database/lib/index.d.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L168)
+
+Gets a Reference for the location at the specified relative path.
+
+The relative path can either be a simple child name (for example, "ada") or a deeper
+slash-separated path (for example, "ada/name/first").
+
+#### Example
+
+```js
+const usersRef = firebase.database().ref('users');
+const adaRef = usersRef.child('ada/name/first'); // childRef path is 'users/ada/name/first'
+```
+
+###### Parameters
+
+###### path
+
+`string`
+
+A relative path from this location to the desired child location.
+
+###### Returns
+
+`Reference`
+
+###### Inherited from
+
+`DatabaseReference.child`
+
+##### endAt()
+
+> **endAt**(`value`, `key?`): `Query`
+
+Defined in: [database/lib/index.d.ts:470](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L470)
+
+Creates a Query with the specified ending point.
+
+Using `startAt()`, `endAt()`, and `equalTo()` allows you to choose arbitrary starting and
+ending points for your queries.
+
+The ending point is inclusive, so children with exactly the specified value will be included
+in the query. The optional key argument can be used to further limit the range of the query.
+If it is specified, then children that have exactly the specified value must also have a key
+name less than or equal to the specified key.
+
+You can read more about endAt() in [Filtering data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data).
+
+#### Example
+
+```js
+const ref = firebase.database().ref('users');
+const snapshot = await ref.orderByKey().endAt('Ada Lovelace').once('value');
+```
+
+###### Parameters
+
+###### value
+
+The value to end at. The argument type depends on which `orderBy*()` function was used in this query. Specify a value that matches the `orderBy*()` type. When used in combination with `orderByKey()`, the value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+###### key?
+
+`string`
+
+The child key to end at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.endAt`
+
+##### equalTo()
+
+> **equalTo**(`value`, `key?`): `Query`
+
+Defined in: [database/lib/index.d.ts:494](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L494)
+
+Creates a Query with the specified ending point.
+
+Using `startAt()`, `endAt()`, and `equalTo()` allows you to choose arbitrary starting and
+ending points for your queries.
+
+The optional key argument can be used to further limit the range of the query. If it is
+specified, then children that have exactly the specified value must also have exactly the
+specified key as their key name. This can be used to filter result sets with many matches for the same value.
+
+You can read more about equalTo() in [Filtering data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data).
+
+#### Example
+
+```js
+const ref = firebase.database().ref('users');
+const snapshot = await ref.orderByChild('age').equalTo(30).once('value');
+```
+
+###### Parameters
+
+###### value
+
+The value to match for. The argument type depends on which `orderBy*()` function was used in this query. Specify a value that matches the `orderBy*()` type. When used in combination with `orderByKey()`, the value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+###### key?
+
+`string`
+
+The child key to start at, among the children with the previously specified priority. This argument is only allowed if ordering by child, value, or priority.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.equalTo`
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [database/lib/index.d.ts:522](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L522)
+
+Returns whether or not the current and provided queries represent the same location, have the same query parameters.
+
+Two Reference objects are equivalent if they represent the same location and are from the same instance of
+app. Equivalent queries share the same sort order, limits, and starting and ending points.
+
+#### Example
+
+```js
+const ref1 = firebase.database().ref('users').orderByKey().endAt('Ada Lovelace');
+const ref2 = firebase.database().ref('users').orderByKey();
+
+console.log(ref1.isEqual(ref2)); // false
+```
+
+#### Example
+
+```js
+const ref1 = firebase.database().ref('users').orderByKey().endAt('Ada Lovelace');
+const ref2 = firebase.database().ref('users').endAt('Ada Lovelace').orderByKey();
+
+console.log(ref1.isEqual(ref2)); // true
+```
+
+###### Parameters
+
+###### other
+
+`Query`
+
+The query to compare against.
+
+###### Returns
+
+`boolean`
+
+###### Inherited from
+
+`DatabaseReference.isEqual`
+
+##### keepSynced()
+
+> **keepSynced**(`bool`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:823](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L823)
+
+By calling `keepSynced(true)` on a location, the data for that location will automatically
+be downloaded and kept in sync, even when no listeners are attached for that location.
+
+#### Example
+
+```js
+const ref = firebase.database().ref('users');
+await ref.keepSynced(true);
+```
+
+###### Parameters
+
+###### bool
+
+`boolean`
+
+Pass `true` to keep this location synchronized, pass `false` to stop synchronization.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.keepSynced`
+
+##### limitToFirst()
+
+> **limitToFirst**(`limit`): `Query`
+
+Defined in: [database/lib/index.d.ts:545](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L545)
+
+Generates a new `Query` limited to the first specific number of children.
+
+The `limitToFirst()` method is used to set a maximum number of children to be synced for a
+given callback. If we set a limit of 100, we will initially only receive up to 100 `child_added`
+events. If we have fewer than 100 messages stored in our Database, a child_added event will
+fire for each message. However, if we have over 100 messages, we will only receive a `child_added`
+event for the first 100 ordered messages. As items change, we will receive `child_removed` events
+for each item that drops out of the active list so that the total number stays at 100.
+
+You can read more about `limitToFirst()` in [Filtering data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data).
+
+#### Example
+
+```js
+const snapshot = firebase.database().ref('users').orderByKey().limitToFirst(2).once('value');
+console.log(snapshot.numChildren()); // 2
+```
+
+###### Parameters
+
+###### limit
+
+`number`
+
+The maximum number of nodes to include in this query.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.limitToFirst`
+
+##### limitToLast()
+
+> **limitToLast**(`limit`): `Query`
+
+Defined in: [database/lib/index.d.ts:568](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L568)
+
+Generates a new `Query` object limited to the last specific number of children.
+
+The `limitToLast()` method is used to set a maximum number of children to be synced for a given
+callback. If we set a limit of 100, we will initially only receive up to 100 `child_added` events.
+If we have fewer than 100 messages stored in our Database, a `child_added` event will fire for
+each message. However, if we have over 100 messages, we will only receive a `child_added` event
+for the last 100 ordered messages. As items change, we will receive `child_removed` events for
+each item that drops out of the active list so that the total number stays at 100.
+
+You can read more about `limitToLast()` in [Filtering data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data).
+
+#### Example
+
+```js
+const snapshot = firebase.database().ref('users').orderByKey().limitToLast(2).once('value');
+console.log(snapshot.numChildren()); // 2
+```
+
+###### Parameters
+
+###### limit
+
+`number`
+
+The maximum number of nodes to include in this query.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.limitToLast`
+
+##### off()
+
+> **off**(`eventType?`, `callback?`, `context?`): `void`
+
+Defined in: [database/lib/index.d.ts:600](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L600)
+
+Detaches a callback previously attached with `on()`.
+
+Detach a callback previously attached with `on()`. Note that if `on()` was called multiple times
+with the same eventType and callback, the callback will be called multiple times for each
+event, and `off()` must be called multiple times to remove the callback. Calling `off()` on a parent
+listener will not automatically remove listeners registered on child nodes, `off()` must also be
+called on any child listeners to remove the callback.
+
+If a callback is not specified, all callbacks for the specified eventType will be removed.
+Similarly, if no eventType is specified, all callbacks for the `Reference` will be removed.
+
+#### Example
+
+```js
+const ref = firebase.database().ref('settings');
+const onValueChange = function(snapshot) { ... };
+const onChildAdded = function(snapshot) { ... };
+
+ref.on('value', onValueChange);
+ref.child('meta-data').on('child_added', onChildAdded);
+// Sometime later...
+ref.off('value', onValueChange);
+ref.child('meta-data').off('child_added', onChildAdded);
+```
+
+###### Parameters
+
+###### eventType?
+
+`EventType`
+
+One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved." If omitted, all callbacks for the Reference will be removed.
+
+###### callback?
+
+(`a`, `b?`) => `void`
+
+The callback function that was passed to `on()` or `undefined` to remove all callbacks.
+
+###### context?
+
+`Record`\<`string`, `any`\>
+
+The context that was passed to `on()`.
+
+###### Returns
+
+`void`
+
+###### Inherited from
+
+`DatabaseReference.off`
+
+##### on()
+
+> **on**(`eventType`, `callback`, `cancelCallbackOrContext?`, `context?`): (`a`, `b?`) => `void`
+
+Defined in: [database/lib/index.d.ts:658](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L658)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback will be triggered for the
+initial data and again whenever the data changes. Use `off()` to stop receiving updates..
+
+**value** event
+
+This event will trigger once with the initial data stored at this location, and then trigger
+again each time the data changes. The `DataSnapshot` passed to the callback will be for the location
+at which on() was called. It won't trigger until the entire contents has been synchronized.
+If the location has no data, it will be triggered with an empty `DataSnapshot`
+(`val()` will return `null`).
+
+**child_added** event
+
+This event will be triggered once for each initial child at this location, and it will be
+triggered again every time a new child is added. The `DataSnapshot` passed into the callback
+will reflect the data for the relevant child. For ordering purposes, it is passed a second argument
+which is a string containing the key of the previous sibling child by sort order, or `null` if
+it is the first child.
+
+**child_removed** event
+
+This event will be triggered once every time a child is removed. The `DataSnapshot` passed into
+the callback will be the old data for the child that was removed. A child will get removed when either:
+- a client explicitly calls `remove()` on that child or one of its ancestors
+- a client calls `set(null)` on that child or one of its ancestors
+- that child has all of its children removed
+- there is a query in effect which now filters out the child (because it's sort order changed or the max limit was hit)
+
+**child_changed** event
+
+This event will be triggered when the data stored in a child (or any of its descendants) changes.
+Note that a single `child_changed` event may represent multiple changes to the child. The
+`DataSnapshot` passed to the callback will contain the new child contents. For ordering purposes,
+the callback is also passed a second argument which is a string containing the key of the previous
+sibling child by sort order, or `null` if it is the first child.
+
+**child_moved** event
+
+This event will be triggered when a child's sort order changes such that its position relative
+to its siblings changes. The `DataSnapshot` passed to the callback will be for the data of the child
+that has moved. It is also passed a second argument which is a string containing the key of the
+previous sibling child by sort order, or `null` if it is the first child.
+
+###### Parameters
+
+###### eventType
+
+`EventType`
+
+One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved."
+
+###### callback
+
+(`data`, `previousChildKey?`) => `void`
+
+A callback that fires when the specified event occurs. The callback will be passed a DataSnapshot. For ordering purposes, "child_added", "child_changed", and "child_moved" will also be passed a string containing the key of the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallbackOrContext?
+
+An optional callback that will be notified if your event subscription is ever canceled because your client does not have permission to read this data (or it had permission but has now lost it). This callback will be passed an `Error` object indicating why the failure occurred.
+
+`Record`\<`string`, `any`\> | (`a`) => `void` | `null`
+
+###### context?
+
+If provided, this object will be used as `this` when calling your callback(s).
+
+`Record`\<`string`, `any`\> | `null`
+
+###### Returns
+
+> (`a`, `b?`): `void`
+
+###### Parameters
+
+###### a
+
+`DataSnapshot` | `null`
+
+###### b?
+
+`string` | `null`
+
+###### Returns
+
+`void`
+
+###### Inherited from
+
+`DatabaseReference.on`
+
+##### once()
+
+> **once**(`eventType`, `successCallback?`, `failureCallbackContext?`): `Promise`\<`DataSnapshot`\>
+
+Defined in: [database/lib/index.d.ts:686](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L686)
+
+Listens for exactly one event of the specified event type, and then stops listening.
+
+This is equivalent to calling `on()`, and then calling `off()` inside the callback function. See `on()` for details on the event types.
+
+#### Example
+
+```js
+// Promise
+const snapshot = await firebase.database().ref('users').once('value');
+// Callback
+firebase.database().ref('users).once('value', (snapshot) => {
+ console.log(snapshot.val());
+});
+```
+
+###### Parameters
+
+###### eventType
+
+`EventType`
+
+One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved."
+
+###### successCallback?
+
+(`a`, `b?`) => `any`
+
+A callback that fires when the specified event occurs. The callback will be passed a DataSnapshot. For ordering purposes, "child_added", "child_changed", and "child_moved" will also be passed a string containing the key of the previous child by sort order, or `null` if it is the first child.
+
+###### failureCallbackContext?
+
+An optional callback that will be notified if your client does not have permission to read the data. This callback will be passed an Error object indicating why the failure occurred.
+
+`Record`\<`string`, `any`\> | (`a`) => `void` | `null`
+
+###### Returns
+
+`Promise`\<`DataSnapshot`\>
+
+###### Inherited from
+
+`DatabaseReference.once`
+
+##### onDisconnect()
+
+> **onDisconnect**(): `OnDisconnect`
+
+Defined in: [database/lib/index.d.ts:426](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L426)
+
+Returns an database.OnDisconnect instance.
+
+#### Example
+
+```js
+const userDisconnectRef = firebase.database().ref('users/ada/isOnline').onDisconnect();
+// When going offline
+await userDisconnectRef.update(false);
+```
+
+###### Returns
+
+`OnDisconnect`
+
+###### Inherited from
+
+`DatabaseReference.onDisconnect`
+
+##### orderByChild()
+
+> **orderByChild**(`path`): `Query`
+
+Defined in: [database/lib/index.d.ts:714](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L714)
+
+Generates a new `Query` object ordered by the specified child key.
+
+Queries can only order by one key at a time. Calling `orderByChild()` multiple times on the same query is an error.
+
+Firebase queries allow you to order your data by any child key on the fly. However, if you know in advance what
+your indexes will be, you can define them via the [.indexOn](https://firebase.google.com/docs/database/security/indexing-data?authuser=0)
+rule in your Security Rules for better performance.
+
+You can read more about orderByChild() in [Sort data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#sort_data).
+
+#### Example
+
+```js
+const snapshot = await firebase.database().ref('users').orderByChild('age').once('value');
+snapshot.forEach((snapshot) => {
+ console.log('Users age:', snapshot.val().age);
+});
+```
+
+###### Parameters
+
+###### path
+
+`string`
+
+The child path node to order by.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.orderByChild`
+
+##### orderByKey()
+
+> **orderByKey**(): `Query`
+
+Defined in: [database/lib/index.d.ts:732](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L732)
+
+Generates a new `Query` object ordered by key.
+
+Sorts the results of a query by their (ascending) key values.
+
+You can read more about `orderByKey()` in [Sort data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#sort_data).
+
+#### Example
+
+```js
+const snapshot = await firebase.database().ref('users').orderByKey().once('value');
+snapshot.forEach((snapshot) => {
+ console.log('User:', snapshot.val());
+});
+```
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.orderByKey`
+
+##### orderByPriority()
+
+> **orderByPriority**(): `Query`
+
+Defined in: [database/lib/index.d.ts:741](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L741)
+
+Generates a new Query object ordered by priority.
+
+Applications need not use priority but can order collections by ordinary properties
+(see [Sort data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#sort_data)
+for alternatives to priority).
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.orderByPriority`
+
+##### orderByValue()
+
+> **orderByValue**(): `Query`
+
+Defined in: [database/lib/index.d.ts:757](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L757)
+
+Generates a new `Query` object ordered by value.
+
+If the children of a query are all scalar values (string, number, or boolean), you can order
+the results by their (ascending) values.
+
+You can read more about `orderByValue()` in [Sort data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#sort_data).
+
+#### Example
+
+```js
+await firebase.database().ref('scores').orderByValue().once('value');
+```
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.orderByValue`
+
+##### push()
+
+> **push**(`value?`, `onComplete?`): `Reference`
+
+Defined in: [database/lib/index.d.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L413)
+
+Generates a new child location using a unique key and returns its `Reference`.
+
+This is the most common pattern for adding data to a collection of items.
+
+If you provide a value to `push()`, the value will be written to the generated location.
+If you don't pass a value, nothing will be written to the Database and the child will
+remain empty (but you can use the `Reference` elsewhere).
+
+The unique key generated by push() are ordered by the current time, so the resulting list
+of items will be chronologically sorted. The keys are also designed to be unguessable
+(they contain 72 random bits of entropy).
+
+#### Example
+
+```js
+const newUserRef = firebase.database().ref('users').push();
+console.log('New record key:', newUserRef.key);
+await newUserRef.set({
+ first: 'Ada',
+ last: 'Lovelace',
+});
+```
+
+###### Parameters
+
+###### value?
+
+`any`
+
+Optional value to be written at the generated location.
+
+###### onComplete?
+
+() => `void`
+
+Callback called when write to server is complete.
+
+###### Returns
+
+`Reference`
+
+###### Inherited from
+
+`DatabaseReference.push`
+
+##### remove()
+
+> **remove**(`onComplete?`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:340](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L340)
+
+Removes the data at this Database location.
+
+Any data at child locations will also be deleted.
+
+The effect of the remove will be visible immediately and the corresponding event 'value' will be triggered.
+Synchronization of the remove to the Firebase servers will also be started, and the returned Promise will
+resolve when complete. If provided, the onComplete callback will be called asynchronously after synchronization
+has finished.
+
+#### Example
+
+```js
+await firebase.database().ref('users/ada/name')
+ .remove(() => {
+ console.log('Operation Complete');
+ });
+```
+
+###### Parameters
+
+###### onComplete?
+
+(`error`) => `void`
+
+Callback called when write to server is complete. Contains the parameters (Error | null).
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.remove`
+
+##### set()
+
+> **set**(`value`, `onComplete?`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L228)
+
+Writes data to this Database location.
+
+This will overwrite any data at this location and all child locations.
+
+The effect of the write will be visible immediately, and the corresponding events
+("value", "child_added", etc.) will be triggered. Synchronization of the data to the
+Firebase servers will also be started, and the returned Promise will resolve when
+complete. If provided, the `onComplete` callback will be called asynchronously after
+synchronization has finished.
+
+Passing `null` for the new value is equivalent to calling `remove();` namely, all data at
+this location and all child locations will be deleted.
+
+`set()` will remove any priority stored at this location, so if priority is meant to be
+preserved, you need to use `setWithPriority()` instead.
+
+Note that modifying data with set() will cancel any pending transactions at that location,
+so extreme care should be taken if mixing set() and transaction() to modify the same data.
+
+A single set() will generate a single "value" event at the location where the set() was performed.
+
+#### Example - Setting values
+
+```js
+const ref = firebase.database().ref('users');
+
+// Set a single node value
+await ref.child('ada/name/first').set('Ada');
+await ref.child('ada/name/last').set('Lovelace');
+
+// Set an object value in a single call
+await ref.child('ada/name').set({
+ first: 'Ada',
+ last: 'Lovelace',
+});
+```
+
+#### Example - On complete listener
+
+```js
+const ref = firebase.database().ref('users');
+
+await ref.child('ada/first/name').set('Ada', (error) => {
+ if (error) console.error(error);
+});
+```
+
+###### Parameters
+
+###### value
+
+`any`
+
+The value to be written (string, number, boolean, object, array, or null).
+
+###### onComplete?
+
+(`error`) => `void`
+
+Callback called when write to server is complete. Contains the parameters (Error | null).
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.set`
+
+##### setPriority()
+
+> **setPriority**(`priority`, `onComplete?`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L289)
+
+Sets a priority for the data at this Database location. Setting null removes any priority at this location.
+
+See database.Query#orderByPriority to learn how to use priority values in your query.
+
+#### Example
+
+```js
+await firebase.database().ref('users/ada').setPriority(1, (error) => {
+ if (error) console.error(error);
+});
+```
+
+###### Parameters
+
+###### priority
+
+The priority value.
+
+`string` | `number` | `null`
+
+###### onComplete?
+
+(`error`) => `void`
+
+Callback called when write to server is complete. Contains the parameters (Error | null).
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.setPriority`
+
+##### setWithPriority()
+
+> **setWithPriority**(`newVal`, `newPriority`, `onComplete?`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:313](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L313)
+
+Writes data the Database location. Like `set()` but also specifies the priority for that data.
+
+#### Example
+
+```js
+await firebase.database().ref('users/ada/name')
+ .setWithPriority({
+ first: 'Ada',
+ last: 'Lovelace',
+ }, 1, (error) => {
+ if (error) console.error(error);
+ });
+```
+
+###### Parameters
+
+###### newVal
+
+`any`
+
+The new value to set.
+
+###### newPriority
+
+The new priority to set.
+
+`string` | `number` | `null`
+
+###### onComplete?
+
+(`error`) => `void`
+
+Callback called when write to server is complete. Contains the parameters (Error | null).
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.setWithPriority`
+
+##### startAt()
+
+> **startAt**(`value`, `key?`): `Query`
+
+Defined in: [database/lib/index.d.ts:781](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L781)
+
+Creates a `Query` with the specified starting point.
+
+Using `startAt()`, `endAt()`, and `equalTo()` allows you to choose arbitrary starting and
+ending points for your queries.
+
+The starting point is inclusive, so children with exactly the specified value will be included
+in the query. The optional key argument can be used to further limit the range of the query.
+If it is specified, then children that have exactly the specified value must also have a key
+name greater than or equal to the specified key.
+
+You can read more about `startAt()` in [Filtering data](https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data).
+
+#### Example
+
+```js
+await firebase.database().ref('users').orderByChild('age').startAt(21).once('value');
+```
+
+###### Parameters
+
+###### value
+
+The value to start at. The argument type depends on which `orderBy*()` function was used in this query. Specify a value that matches the `orderBy*()` type. When used in combination with `orderByKey()`, the value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+###### key?
+
+`string`
+
+The child key to start at. This argument is only allowed if ordering by child, value, or priority.
+
+###### Returns
+
+`Query`
+
+###### Inherited from
+
+`DatabaseReference.startAt`
+
+##### toJSON()
+
+> **toJSON**(): `object`
+
+Defined in: [database/lib/index.d.ts:786](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L786)
+
+Returns a JSON-serializable representation of this object.
+
+###### Returns
+
+`object`
+
+###### Inherited from
+
+`DatabaseReference.toJSON`
+
+##### toString()
+
+> **toString**(): `string`
+
+Defined in: [database/lib/index.d.ts:808](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L808)
+
+Gets the absolute URL for this location.
+
+The `toString()` method returns a URL that is ready to be put into a browser, curl command, or
+a `firebase.database().refFromURL()` call. Since all of those expect the URL to be url-encoded,
+`toString()` returns an encoded URL.
+
+Append '.json' to the returned URL when typed into a browser to download JSON-formatted data.
+If the location is secured (that is, not publicly readable), you will get a permission-denied error.
+
+#### Example
+
+```js
+const ref1 = firebase.database().ref();
+const ref2 = firebase.database().ref('users').orderByValue();
+
+ref1.toString(); // https://sample-app.firebaseio.com/
+ref2.toString(); // https://sample-app.firebaseio.com/users
+```
+
+###### Returns
+
+`string`
+
+###### Inherited from
+
+`DatabaseReference.toString`
+
+##### transaction()
+
+> **transaction**(`transactionUpdate`, `onComplete?`, `applyLocally?`): `Promise`\<`TransactionResult`\>
+
+Defined in: [database/lib/index.d.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L380)
+
+Atomically modifies the data at this location.
+
+Atomically modify the data at this location. Unlike a normal `set()`, which just overwrites
+the data regardless of its previous value, `transaction()` is used to modify the existing
+value to a new value, ensuring there are no conflicts with other clients writing to the same
+location at the same time.
+
+To accomplish this, you pass `transaction()` an update function which is used to transform the
+current value into a new value. If another client writes to the location before your new
+value is successfully written, your update function will be called again with the new
+current value, and the write will be retried. This will happen repeatedly until your write
+succeeds without conflict or you abort the transaction by not returning a value from your
+update function.
+
+Note: Modifying data with `set()` will cancel any pending transactions at that location, so
+extreme care should be taken if mixing `set()` and `transaction()` to update the same data.
+
+Note: When using transactions with Security and Firebase Rules in place, be aware that a
+client needs `.read` access in addition to `.write` access in order to perform a transaction.
+This is because the client-side nature of transactions requires the client to read the data
+in order to transactionally update it.
+
+#### Example
+
+```js
+const userRef = firebase.database().ref('users/ada/profileViews);
+
+userRef.transaction((currentViews) => {
+ if (currentViews === null) return 1;
+ return currentViews + 1;
+});
+```
+
+###### Parameters
+
+###### transactionUpdate
+
+(`currentData`) => `any`
+
+A developer-supplied function which will be passed the current data stored at this location (as a JavaScript object). The function should return the new value it would like written (as a JavaScript object). If undefined is returned (i.e. you return with no result) the transaction will be aborted and the data at this location will not be modified.
+
+###### onComplete?
+
+(`error`, `committed`, `finalResult`) => `void`
+
+A callback function that will be called when the transaction completes. The callback is passed three arguments: a possibly-null Error, a boolean indicating whether the transaction was committed, and a DataSnapshot indicating the final result. If the transaction failed abnormally, the first argument will be an Error object indicating the failure cause. If the transaction finished normally, but no data was committed because no data was returned from transactionUpdate, then second argument will be false. If the transaction completed and committed data to Firebase, the second argument will be true. Regardless, the third argument will be a DataSnapshot containing the resulting data in this location.
+
+###### applyLocally?
+
+`boolean`
+
+By default, events are raised each time the transaction update function runs. So if it is run multiple times, you may see intermediate states. You can set this to false to suppress these intermediate states and instead wait until the transaction has completed before events are raised.
+
+###### Returns
+
+`Promise`\<`TransactionResult`\>
+
+###### Inherited from
+
+`DatabaseReference.transaction`
+
+##### update()
+
+> **update**(`values`, `onComplete?`): `Promise`\<`void`\>
+
+Defined in: [database/lib/index.d.ts:268](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/index.d.ts#L268)
+
+Writes multiple values to the Database at once.
+
+The `values` argument contains multiple property-value pairs that will be written to the Database
+together. Each child property can either be a simple property (for example, "name") or a
+relative path (for example, "name/first") from the current location to the data to update.
+
+As opposed to the `set()` method, `update()` can be use to selectively update only the referenced
+properties at the current location (instead of replacing all the child properties at the
+current location).
+
+The effect of the write will be visible immediately, and the corresponding events ('value',
+'child_added', etc.) will be triggered. Synchronization of the data to the Firebase servers
+will also be started, and the returned Promise will resolve when complete. If provided, the
+`onComplete` callback will be called asynchronously after synchronization has finished.
+
+A single update() will generate a single "value" event at the location where the update()
+was performed, regardless of how many children were modified.
+
+Note that modifying data with update() will cancel any pending transactions at that location,
+so extreme care should be taken if mixing update() and transaction() to modify the same data.
+
+Passing `null` to `update()` will remove the data at this location.
+
+#### Example
+
+Modify the 'first' and 'last' properties, but leave other values unchanged at this location.
+
+```js
+await firebase.database().ref('users/ada/name').update({
+ first: 'Ada',
+ last: 'Lovelace',
+})
+```
+
+###### Parameters
+
+###### values
+
+Object containing multiple values.
+
+###### onComplete?
+
+(`error`) => `void`
+
+Callback called when write to server is complete. Contains the parameters (Error | null).
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+`DatabaseReference.update`
+
+## Type Aliases
+
+### DatabaseReference
+
+> **DatabaseReference** = `FirebaseDatabaseTypes.Reference`
+
+Defined in: [database/lib/modular/query.d.ts:5](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L5)
+
+***
+
+### DataSnapshot
+
+> **DataSnapshot** = `FirebaseDatabaseTypes.DataSnapshot`
+
+Defined in: [database/lib/modular/query.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L4)
+
+***
+
+### OnDisconnect
+
+> **OnDisconnect** = `FirebaseDatabaseTypes.OnDisconnect`
+
+Defined in: [database/lib/modular/query.d.ts:6](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L6)
+
+***
+
+### Query
+
+> **Query** = `FirebaseDatabaseTypes.Query`
+
+Defined in: [database/lib/modular/query.d.ts:3](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L3)
+
+***
+
+### QueryConstraintType
+
+> **QueryConstraintType** = `"endAt"` \| `"endBefore"` \| `"startAt"` \| `"startAfter"` \| `"limitToFirst"` \| `"limitToLast"` \| `"orderByChild"` \| `"orderByKey"` \| `"orderByPriority"` \| `"orderByValue"` \| `"equalTo"`
+
+Defined in: [database/lib/modular/query.d.ts:23](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L23)
+
+Describes the different query constraints available in this SDK.
+
+***
+
+### Unsubscribe()
+
+> **Unsubscribe** = () => `void`
+
+Defined in: [database/lib/modular/query.d.ts:16](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L16)
+
+#### Returns
+
+`void`
+
+## Functions
+
+### child()
+
+> **child**(`parent`, `path`): `Reference`
+
+Defined in: [database/lib/modular/query.d.ts:869](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L869)
+
+Gets a `Reference` for the location at the specified relative path.
+
+The relative path can either be a simple child name (for example, "ada") or
+a deeper slash-separated path (for example, "ada/name/first").
+
+#### Parameters
+
+##### parent
+
+`Reference`
+
+The parent location.
+
+##### path
+
+`string`
+
+A relative path from this location to the desired child
+ location.
+
+#### Returns
+
+`Reference`
+
+The specified child location.
+
+***
+
+### endAt()
+
+> **endAt**(`value`, `key?`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L73)
+
+Creates a `QueryConstraint` with the specified ending point.
+
+Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`
+allows you to choose arbitrary starting and ending points for your queries.
+
+The ending point is inclusive, so children with exactly the specified value
+will be included in the query. The optional key argument can be used to
+further limit the range of the query. If it is specified, then children that
+have exactly the specified value must also have a key name less than or equal
+to the specified key.
+
+#### Parameters
+
+##### value
+
+The value to end at. The argument type depends on which
+`orderBy*()` function was used in this query. Specify a value that matches
+the `orderBy*()` type. When used in combination with `orderByKey()`, the
+value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+##### key?
+
+`string`
+
+The child key to end at, among the children with the previously
+specified priority. This argument is only allowed if ordering by child,
+value, or priority.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### endBefore()
+
+> **endBefore**(`value`, `key?`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L97)
+
+Creates a QueryConstraint with the specified ending point (exclusive).
+
+Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()` allows you to
+choose arbitrary starting and ending points for your queries.
+
+The ending point is exclusive. If only a value is provided, children with a
+value less than the specified value will be included in the query. If a key
+is specified, then children must have a value less than or equal to the
+specified value and a key name less than the specified key.
+
+#### Parameters
+
+##### value
+
+The value to end before. The argument type depends on which
+`orderBy*()` function was used in this query. Specify a value that matches
+the `orderBy*()` type. When used in combination with `orderByKey()`, the
+value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+##### key?
+
+`string`
+
+The child key to end before, among the children with the
+previously specified priority. This argument is only allowed if ordering by
+child, value, or priority.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### equalTo()
+
+> **equalTo**(`value`, `key?`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L121)
+
+Creates a QueryConstraint that includes children that match the specified value.
+
+Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()` allows
+you to choose arbitrary starting and ending points for your queries.
+
+The optional key argument can be used to further limit the range of the
+query. If it is specified, then children that have exactly the specified
+value must also have exactly the specified key as their key name. This
+can be used to filter result sets with many matches for the same value.
+
+#### Parameters
+
+##### value
+
+The value to match for. The argument type depends on which
+`orderBy*()` function was used in this query. Specify a value that matches
+the `orderBy*()` type. When used in combination with `orderByKey()`, the
+value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+##### key?
+
+`string`
+
+The child key to start at, among the children with the
+previously specified priority. This argument is only allowed if ordering by
+child, value, or priority.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### get()
+
+> **get**(`query`): `Promise`\<`DataSnapshot`\>
+
+Defined in: [database/lib/modular/query.d.ts:837](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L837)
+
+Gets the most up-to-date result for this query.
+
+#### Parameters
+
+##### query
+
+`Query`
+
+The query to run.
+
+#### Returns
+
+`Promise`\<`DataSnapshot`\>
+
+A `Promise` which resolves to the resulting DataSnapshot if a value is
+available, or rejects if the client is unable to return a value (e.g., if the
+server is unreachable and there is nothing cached).
+
+***
+
+### keepSynced()
+
+> **keepSynced**(`ref`, `bool`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:894](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L894)
+
+By calling `keepSynced(true)` on a location, the data for that location will automatically
+be downloaded and kept in sync, even when no listeners are attached for that location.
+
+#### Example
+
+```js
+const dbRef = ref(getDatabase(), 'users');
+await keepSynced(dbRef, true);
+```
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+A location to keep synchronized.
+
+##### bool
+
+`boolean`
+
+Pass `true` to keep this location synchronized, pass `false` to stop synchronization.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### limitToFirst()
+
+> **limitToFirst**(`limit`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L185)
+
+Creates a new `QueryConstraint` that if limited to the first specific number
+of children.
+
+The `limitToFirst()` method is used to set a maximum number of children to be
+synced for a given callback. If we set a limit of 100, we will initially only
+receive up to 100 `child_added` events. If we have fewer than 100 messages
+stored in our Database, a `child_added` event will fire for each message.
+However, if we have over 100 messages, we will only receive a `child_added`
+event for the first 100 ordered messages. As items change, we will receive
+`child_removed` events for each item that drops out of the active list so
+that the total number stays at 100.
+
+#### Parameters
+
+##### limit
+
+`number`
+
+The maximum number of nodes to include in this query.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### limitToLast()
+
+> **limitToLast**(`limit`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L202)
+
+Creates a new `QueryConstraint` that is limited to return only the last
+specified number of children.
+
+The `limitToLast()` method is used to set a maximum number of children to be
+synced for a given callback. If we set a limit of 100, we will initially only
+receive up to 100 `child_added` events. If we have fewer than 100 messages
+stored in our Database, a `child_added` event will fire for each message.
+However, if we have over 100 messages, we will only receive a `child_added`
+event for the last 100 ordered messages. As items change, we will receive
+`child_removed` events for each item that drops out of the active list so
+that the total number stays at 100.
+
+#### Parameters
+
+##### limit
+
+`number`
+
+The maximum number of nodes to include in this query.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### off()
+
+> **off**(`query`, `eventType?`, `callback?`): `void`
+
+Defined in: [database/lib/modular/query.d.ts:852](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L852)
+
+Detaches a callback previously attached with the corresponding on*() (onValue, onChildAdded) listener.
+Note: This is not the recommended way to remove a listener. Instead, please use the returned callback function from the respective on* callbacks.
+Detach a callback previously attached with on*(). Calling off() on a parent listener will not automatically remove listeners registered on child nodes, off() must also be called on any child listeners to remove the callback.
+If a callback is not specified, all callbacks for the specified eventType will be removed.
+Similarly, if no eventType is specified, all callbacks for the Reference will be removed.
+Individual listeners can also be removed by invoking their unsubscribe callbacks.
+Note: Not implemented on native
+
+#### Parameters
+
+##### query
+
+`Query`
+
+The query to run
+
+##### eventType?
+
+`any`
+
+One of the following strings: "value", "child_added", "child_changed", "child_removed", or "child_moved.
+
+##### callback?
+
+(`snapshot`, `previousChildName?`) => `unknown`
+
+#### Returns
+
+`void`
+
+***
+
+### onChildAdded()
+
+#### Call Signature
+
+> **onChildAdded**(`query`, `callback`, `cancelCallback?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:374](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L374)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildAdded` event will be triggered once for each initial child at this
+location, and it will be triggered again every time a new child is added. The
+`DataSnapshot` passed into the callback will reflect the data for the
+relevant child. For ordering purposes, it is passed a second argument which
+is a string containing the key of the previous sibling child by sort order,
+or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName?`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback?
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildAdded**(`query`, `callback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L402)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildAdded` event will be triggered once for each initial child at this
+location, and it will be triggered again every time a new child is added. The
+`DataSnapshot` passed into the callback will reflect the data for the
+relevant child. For ordering purposes, it is passed a second argument which
+is a string containing the key of the previous sibling child by sort order,
+or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildAdded**(`query`, `callback`, `cancelCallback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:435](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L435)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildAdded` event will be triggered once for each initial child at this
+location, and it will be triggered again every time a new child is added. The
+`DataSnapshot` passed into the callback will reflect the data for the
+relevant child. For ordering purposes, it is passed a second argument which
+is a string containing the key of the previous sibling child by sort order,
+or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildAdded**(`query`, `callback`, `cancelCallbackOrListenOptions?`, `options?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:442](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L442)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildAdded` event will be triggered once for each initial child at this
+location, and it will be triggered again every time a new child is added. The
+`DataSnapshot` passed into the callback will reflect the data for the
+relevant child. For ordering purposes, it is passed a second argument which
+is a string containing the key of the previous sibling child by sort order,
+or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallbackOrListenOptions?
+
+[`ListenOptions`](#listenoptions) | (`error`) => `unknown`
+
+###### options?
+
+[`ListenOptions`](#listenoptions)
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+***
+
+### onChildChanged()
+
+#### Call Signature
+
+> **onChildChanged**(`query`, `callback`, `cancelCallback?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:475](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L475)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildChanged` event will be triggered when the data stored in a child
+(or any of its descendants) changes. Note that a single `child_changed` event
+may represent multiple changes to the child. The `DataSnapshot` passed to the
+callback will contain the new child contents. For ordering purposes, the
+callback is also passed a second argument which is a string containing the
+key of the previous sibling child by sort order, or `null` if it is the first
+child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback?
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildChanged**(`query`, `callback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:504](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L504)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildChanged` event will be triggered when the data stored in a child
+(or any of its descendants) changes. Note that a single `child_changed` event
+may represent multiple changes to the child. The `DataSnapshot` passed to the
+callback will contain the new child contents. For ordering purposes, the
+callback is also passed a second argument which is a string containing the
+key of the previous sibling child by sort order, or `null` if it is the first
+child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildChanged**(`query`, `callback`, `cancelCallback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:538](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L538)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildChanged` event will be triggered when the data stored in a child
+(or any of its descendants) changes. Note that a single `child_changed` event
+may represent multiple changes to the child. The `DataSnapshot` passed to the
+callback will contain the new child contents. For ordering purposes, the
+callback is also passed a second argument which is a string containing the
+key of the previous sibling child by sort order, or `null` if it is the first
+child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildChanged**(`query`, `callback`, `cancelCallbackOrListenOptions?`, `options?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:545](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L545)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildChanged` event will be triggered when the data stored in a child
+(or any of its descendants) changes. Note that a single `child_changed` event
+may represent multiple changes to the child. The `DataSnapshot` passed to the
+callback will contain the new child contents. For ordering purposes, the
+callback is also passed a second argument which is a string containing the
+key of the previous sibling child by sort order, or `null` if it is the first
+child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallbackOrListenOptions?
+
+[`ListenOptions`](#listenoptions) | (`error`) => `unknown`
+
+###### options?
+
+[`ListenOptions`](#listenoptions)
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+***
+
+### onChildMoved()
+
+#### Call Signature
+
+> **onChildMoved**(`query`, `callback`, `cancelCallback?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:576](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L576)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildMoved` event will be triggered when a child's sort order changes
+such that its position relative to its siblings changes. The `DataSnapshot`
+passed to the callback will be for the data of the child that has moved. It
+is also passed a second argument which is a string containing the key of the
+previous sibling child by sort order, or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback?
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildMoved**(`query`, `callback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:603](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L603)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildMoved` event will be triggered when a child's sort order changes
+such that its position relative to its siblings changes. The `DataSnapshot`
+passed to the callback will be for the data of the child that has moved. It
+is also passed a second argument which is a string containing the key of the
+previous sibling child by sort order, or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildMoved**(`query`, `callback`, `cancelCallback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:635](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L635)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildMoved` event will be triggered when a child's sort order changes
+such that its position relative to its siblings changes. The `DataSnapshot`
+passed to the callback will be for the data of the child that has moved. It
+is also passed a second argument which is a string containing the key of the
+previous sibling child by sort order, or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildMoved**(`query`, `callback`, `cancelCallbackOrListenOptions?`, `options?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:642](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L642)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onChildMoved` event will be triggered when a child's sort order changes
+such that its position relative to its siblings changes. The `DataSnapshot`
+passed to the callback will be for the data of the child that has moved. It
+is also passed a second argument which is a string containing the key of the
+previous sibling child by sort order, or `null` if it is the first child.
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`, `previousChildName`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallbackOrListenOptions?
+
+[`ListenOptions`](#listenoptions) | (`error`) => `unknown`
+
+###### options?
+
+[`ListenOptions`](#listenoptions)
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+***
+
+### onChildRemoved()
+
+#### Call Signature
+
+> **onChildRemoved**(`query`, `callback`, `cancelCallback?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:679](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L679)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates. See
+[Retrieve Data on the Web](https://firebase.google.com/docs/database/web/retrieve-data)
+for more details.
+
+An `onChildRemoved` event will be triggered once every time a child is
+removed. The `DataSnapshot` passed into the callback will be the old data for
+the child that was removed. A child will get removed when either:
+
+- a client explicitly calls `remove()` on that child or one of its ancestors
+- a client calls `set(null)` on that child or one of its ancestors
+- that child has all of its children removed
+- there is a query in effect which now filters out the child (because it's
+ sort order changed or the max limit was hit)
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback?
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildRemoved**(`query`, `callback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:712](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L712)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates. See
+[Retrieve Data on the Web](https://firebase.google.com/docs/database/web/retrieve-data)
+for more details.
+
+An `onChildRemoved` event will be triggered once every time a child is
+removed. The `DataSnapshot` passed into the callback will be the old data for
+the child that was removed. A child will get removed when either:
+
+- a client explicitly calls `remove()` on that child or one of its ancestors
+- a client calls `set(null)` on that child or one of its ancestors
+- that child has all of its children removed
+- there is a query in effect which now filters out the child (because it's
+ sort order changed or the max limit was hit)
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildRemoved**(`query`, `callback`, `cancelCallback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:750](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L750)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates. See
+[Retrieve Data on the Web](https://firebase.google.com/docs/database/web/retrieve-data)
+for more details.
+
+An `onChildRemoved` event will be triggered once every time a child is
+removed. The `DataSnapshot` passed into the callback will be the old data for
+the child that was removed. A child will get removed when either:
+
+- a client explicitly calls `remove()` on that child or one of its ancestors
+- a client calls `set(null)` on that child or one of its ancestors
+- that child has all of its children removed
+- there is a query in effect which now filters out the child (because it's
+ sort order changed or the max limit was hit)
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallback
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onChildRemoved**(`query`, `callback`, `cancelCallbackOrListenOptions?`, `options?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:757](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L757)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates. See
+[Retrieve Data on the Web](https://firebase.google.com/docs/database/web/retrieve-data)
+for more details.
+
+An `onChildRemoved` event will be triggered once every time a child is
+removed. The `DataSnapshot` passed into the callback will be the old data for
+the child that was removed. A child will get removed when either:
+
+- a client explicitly calls `remove()` on that child or one of its ancestors
+- a client calls `set(null)` on that child or one of its ancestors
+- that child has all of its children removed
+- there is a query in effect which now filters out the child (because it's
+ sort order changed or the max limit was hit)
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs.
+The callback will be passed a DataSnapshot and a string containing the key of
+the previous child, by sort order, or `null` if it is the first child.
+
+###### cancelCallbackOrListenOptions?
+
+[`ListenOptions`](#listenoptions) | (`error`) => `unknown`
+
+###### options?
+
+[`ListenOptions`](#listenoptions)
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+***
+
+### onDisconnect()
+
+> **onDisconnect**(`ref`): `OnDisconnect`
+
+Defined in: [database/lib/modular/query.d.ts:878](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L878)
+
+Returns an `OnDisconnect` object - see
+[Enabling Offline Capabilities in JavaScript](https://firebase.google.com/docs/database/web/offline-capabilities)
+for more information on how to use it.
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The reference to add OnDisconnect triggers for.
+
+#### Returns
+
+`OnDisconnect`
+
+***
+
+### onValue()
+
+#### Call Signature
+
+> **onValue**(`query`, `callback`, `cancelCallback?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:276](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L276)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onValue` event will trigger once with the initial data stored at this
+location, and then trigger again each time the data changes. The
+`DataSnapshot` passed to the callback will be for the location at which
+`on()` was called. It won't trigger until the entire contents has been
+synchronized. If the location has no data, it will be triggered with an empty
+`DataSnapshot` (`val()` will return `null`).
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs. The
+callback will be passed a DataSnapshot.
+
+###### cancelCallback?
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onValue**(`query`, `callback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:303](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L303)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onValue` event will trigger once with the initial data stored at this
+location, and then trigger again each time the data changes. The
+`DataSnapshot` passed to the callback will be for the location at which
+`on()` was called. It won't trigger until the entire contents has been
+synchronized. If the location has no data, it will be triggered with an empty
+`DataSnapshot` (`val()` will return `null`).
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs. The
+callback will be passed a DataSnapshot.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onValue**(`query`, `callback`, `cancelCallback`, `options`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:335](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L335)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onValue` event will trigger once with the initial data stored at this
+location, and then trigger again each time the data changes. The
+`DataSnapshot` passed to the callback will be for the location at which
+`on()` was called. It won't trigger until the entire contents has been
+synchronized. If the location has no data, it will be triggered with an empty
+`DataSnapshot` (`val()` will return `null`).
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs. The
+callback will be passed a DataSnapshot.
+
+###### cancelCallback
+
+(`error`) => `unknown`
+
+An optional callback that will be notified if your
+event subscription is ever canceled because your client does not have
+permission to read this data (or it had permission but has now lost it).
+This callback will be passed an `Error` object indicating why the failure
+occurred.
+
+###### options
+
+[`ListenOptions`](#listenoptions)
+
+An object that can be used to configure `onlyOnce`, which
+then removes the listener after its first invocation.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+#### Call Signature
+
+> **onValue**(`query`, `callback`, `cancelCallbackOrListenOptions?`, `options?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [database/lib/modular/query.d.ts:342](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L342)
+
+Listens for data changes at a particular location.
+
+This is the primary way to read data from a Database. Your callback
+will be triggered for the initial data and again whenever the data changes.
+Invoke the returned unsubscribe callback to stop receiving updates.
+
+An `onValue` event will trigger once with the initial data stored at this
+location, and then trigger again each time the data changes. The
+`DataSnapshot` passed to the callback will be for the location at which
+`on()` was called. It won't trigger until the entire contents has been
+synchronized. If the location has no data, it will be triggered with an empty
+`DataSnapshot` (`val()` will return `null`).
+
+##### Parameters
+
+###### query
+
+`Query`
+
+The query to run.
+
+###### callback
+
+(`snapshot`) => `unknown`
+
+A callback that fires when the specified event occurs. The
+callback will be passed a DataSnapshot.
+
+###### cancelCallbackOrListenOptions?
+
+[`ListenOptions`](#listenoptions) | (`error`) => `unknown`
+
+###### options?
+
+[`ListenOptions`](#listenoptions)
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+A function that can be invoked to remove the listener.
+
+***
+
+### orderByChild()
+
+> **orderByChild**(`path`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L216)
+
+Creates a new `QueryConstraint` that orders by the specified child key.
+
+Queries can only order by one key at a time. Calling `orderByChild()`
+multiple times on the same query is an error.
+
+Firebase queries allow you to order your data by any child key on the fly.
+However, if you know in advance what your indexes will be, you can define
+them via the .indexOn rule in your Security Rules for better performance.
+
+#### Parameters
+
+##### path
+
+`string`
+
+The path to order by.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### orderByKey()
+
+> **orderByKey**(): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L223)
+
+Creates a new `QueryConstraint` that orders by the key.
+
+Sorts the results of a query by their (ascending) key values.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### orderByPriority()
+
+> **orderByPriority**(): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L231)
+
+Creates a new `QueryConstraint` that orders by priority.
+
+Applications need not use priority but can order collections by
+ordinary properties
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### orderByValue()
+
+> **orderByValue**(): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L239)
+
+Creates a new `QueryConstraint` that orders by value.
+
+If the children of a query are all scalar values (string, number, or
+boolean), you can order the results by their (ascending) values.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### push()
+
+> **push**(`parent`, `value?`): [`ThenableReference`](#thenablereference)
+
+Defined in: [database/lib/modular/query.d.ts:919](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L919)
+
+Generates a new child location using a unique key and returns its
+`Reference`.
+
+This is the most common pattern for adding data to a collection of items.
+
+If you provide a value to `push()`, the value is written to the
+generated location. If you don't pass a value, nothing is written to the
+database and the child remains empty (but you can use the `Reference`
+elsewhere).
+
+The unique keys generated by `push()` are ordered by the current time, so the
+resulting list of items is chronologically sorted. The keys are also
+designed to be unguessable (they contain 72 random bits of entropy).
+
+See [Append to a list of data](https://firebase.google.com/docs/database/web/lists-of-data#append_to_a_list_of_data).
+See [The 2^120 Ways to Ensure Unique Identifiers](https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html).
+
+#### Parameters
+
+##### parent
+
+`Reference`
+
+The parent location.
+
+##### value?
+
+`unknown`
+
+Optional value to be written at the generated location.
+
+#### Returns
+
+[`ThenableReference`](#thenablereference)
+
+Combined `Promise` and `Reference`; resolves when write is complete,
+but can be used immediately as the `Reference` to the child location.
+
+***
+
+### query()
+
+> **query**(`query`, ...`queryConstraints`): `Query`
+
+Defined in: [database/lib/modular/query.d.ts:250](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L250)
+
+Creates a new immutable instance of `Query` that is extended to also include
+additional query constraints.
+
+#### Parameters
+
+##### query
+
+`Query`
+
+The Query instance to use as a base for the new constraints.
+
+##### queryConstraints
+
+...[`QueryConstraint`](#queryconstraint)[]
+
+The list of `QueryConstraint`s to apply.
+
+#### Returns
+
+`Query`
+
+#### Throws
+
+if any of the provided query constraints cannot be combined with the
+existing or new constraints.
+
+***
+
+### remove()
+
+> **remove**(`ref`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:935](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L935)
+
+Removes the data at this Database location.
+
+Any data at child locations will also be deleted.
+
+The effect of the remove will be visible immediately and the corresponding
+event 'value' will be triggered. Synchronization of the remove to the
+Firebase servers will also be started, and the returned Promise will resolve
+when complete. If provided, the onComplete callback will be called
+asynchronously after synchronization has finished.
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to remove.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Resolves when remove on server is complete.
+
+***
+
+### set()
+
+> **set**(`ref`, `value`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:793](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L793)
+
+Writes data to this Database location.
+
+This will overwrite any data at this location and all child locations.
+
+The effect of the write will be visible immediately, and the corresponding
+events ("value", "child_added", etc.) will be triggered. Synchronization of
+the data to the Firebase servers will also be started, and the returned
+Promise will resolve when complete. If provided, the `onComplete` callback
+will be called asynchronously after synchronization has finished.
+
+Passing `null` for the new value is equivalent to calling `remove()`; namely,
+all data at this location and all child locations will be deleted.
+
+`set()` will remove any priority stored at this location, so if priority is
+meant to be preserved, you need to use `setWithPriority()` instead.
+
+Note that modifying data with `set()` will cancel any pending transactions
+at that location, so extreme care should be taken if mixing `set()` and
+`transaction()` to modify the same data.
+
+A single `set()` will generate a single "value" event at the location where
+the `set()` was performed.
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to write to.
+
+##### value
+
+`unknown`
+
+The value to be written (string, number, boolean, object,
+ array, or null).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Resolves when write to server is complete.
+
+***
+
+### setPriority()
+
+> **setPriority**(`ref`, `priority`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:805](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L805)
+
+Sets a priority for the data at this Database location.
+
+Applications need not use priority but can order collections by
+ordinary properties
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to write to.
+
+##### priority
+
+The priority to be written (string, number, or null).
+
+`string` | `number` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Resolves when write to server is complete.
+
+***
+
+### setWithPriority()
+
+> **setWithPriority**(`ref`, `value`, `priority`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:823](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L823)
+
+Writes data the Database location. Like `set()` but also specifies the
+priority for that data.
+
+Applications need not use priority but can order collections by
+ordinary properties
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to write to.
+
+##### value
+
+`unknown`
+
+The value to be written (string, number, boolean, object,
+ array, or null).
+
+##### priority
+
+The priority to be written (string, number, or null).
+
+`string` | `number` | `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Resolves when write to server is complete.
+
+***
+
+### startAfter()
+
+> **startAfter**(`value`, `key?`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L168)
+
+Creates a `QueryConstraint` with the specified starting point (exclusive).
+
+Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`
+allows you to choose arbitrary starting and ending points for your queries.
+
+The starting point is exclusive. If only a value is provided, children
+with a value greater than the specified value will be included in the query.
+If a key is specified, then children must have a value greater than or equal
+to the specified value and a a key name greater than the specified key.
+
+#### Parameters
+
+##### value
+
+The value to start after. The argument type depends on which
+`orderBy*()` function was used in this query. Specify a value that matches
+the `orderBy*()` type. When used in combination with `orderByKey()`, the
+value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+##### key?
+
+`string`
+
+The child key to start after. This argument is only allowed if
+ordering by child, value, or priority.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### startAt()
+
+> **startAt**(`value?`, `key?`): [`QueryConstraint`](#queryconstraint)
+
+Defined in: [database/lib/modular/query.d.ts:145](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L145)
+
+Creates a QueryConstraint with the specified starting point.
+
+Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`
+allows you to choose arbitrary starting and ending points for your queries.
+
+The starting point is inclusive, so children with exactly the specified
+value will be included in the query. The optional key argument can be used
+to further limit the range of the query. If it is specified, then children
+that have exactly the specified value must also have a key name greater than
+or equal to the specified key.
+
+#### Parameters
+
+##### value?
+
+The value to start at. The argument type depends on which
+`orderBy*()` function was used in this query. Specify a value that matches
+the `orderBy*()` type. When used in combination with `orderByKey()`, the
+value must be a string.
+
+`string` | `number` | `boolean` | `null`
+
+##### key?
+
+`string`
+
+The child key to start at. This argument is only allowed if
+ordering by child, value, or priority.
+
+#### Returns
+
+[`QueryConstraint`](#queryconstraint)
+
+***
+
+### update()
+
+> **update**(`ref`, `values`): `Promise`\<`void`\>
+
+Defined in: [database/lib/modular/query.d.ts:972](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/query.d.ts#L972)
+
+Writes multiple values to the Database at once.
+
+The `values` argument contains multiple property-value pairs that will be
+written to the Database together. Each child property can either be a simple
+property (for example, "name") or a relative path (for example,
+"name/first") from the current location to the data to update.
+
+As opposed to the `set()` method, `update()` can be use to selectively update
+only the referenced properties at the current location (instead of replacing
+all the child properties at the current location).
+
+The effect of the write will be visible immediately, and the corresponding
+events ('value', 'child_added', etc.) will be triggered. Synchronization of
+the data to the Firebase servers will also be started, and the returned
+Promise will resolve when complete. If provided, the `onComplete` callback
+will be called asynchronously after synchronization has finished.
+
+A single `update()` will generate a single "value" event at the location
+where the `update()` was performed, regardless of how many children were
+modified.
+
+Note that modifying data with `update()` will cancel any pending
+transactions at that location, so extreme care should be taken if mixing
+`update()` and `transaction()` to modify the same data.
+
+Passing `null` to `update()` will remove the data at this location.
+
+See
+[Introducing multi-location updates and more](https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html).
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to write to.
+
+##### values
+
+`object`
+
+Object containing multiple values.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Resolves when update on server is complete.
diff --git a/docs/reference/database/lib/modular/transaction.mdx b/docs/reference/database/lib/modular/transaction.mdx
new file mode 100644
index 0000000000..9b74fb205d
--- /dev/null
+++ b/docs/reference/database/lib/modular/transaction.mdx
@@ -0,0 +1,96 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / database/lib/modular/transaction
+
+# database/lib/modular/transaction
+
+## Interfaces
+
+### TransactionOptions
+
+Defined in: [database/lib/modular/transaction.d.ts:9](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/transaction.d.ts#L9)
+
+An options object to configure transactions.
+
+#### Properties
+
+##### applyLocally?
+
+> `readonly` `optional` **applyLocally**: `boolean`
+
+Defined in: [database/lib/modular/transaction.d.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/transaction.d.ts#L10)
+
+## Type Aliases
+
+### TransactionResult
+
+> **TransactionResult** = `FirebaseDatabaseTypes.TransactionResult`
+
+Defined in: [database/lib/modular/transaction.d.ts:3](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/transaction.d.ts#L3)
+
+## Functions
+
+### runTransaction()
+
+> **runTransaction**(`ref`, `transactionUpdate`, `options?`): `Promise`\<`TransactionResult`\>
+
+Defined in: [database/lib/modular/transaction.d.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/database/lib/modular/transaction.d.ts#L50)
+
+Atomically modifies the data at this location.
+
+Atomically modify the data at this location. Unlike a normal `set()`, which
+just overwrites the data regardless of its previous value, `runTransaction()` is
+used to modify the existing value to a new value, ensuring there are no
+conflicts with other clients writing to the same location at the same time.
+
+To accomplish this, you pass `runTransaction()` an update function which is
+used to transform the current value into a new value. If another client
+writes to the location before your new value is successfully written, your
+update function will be called again with the new current value, and the
+write will be retried. This will happen repeatedly until your write succeeds
+without conflict or you abort the transaction by not returning a value from
+your update function.
+
+Note: Modifying data with `set()` will cancel any pending transactions at
+that location, so extreme care should be taken if mixing `set()` and
+`runTransaction()` to update the same data.
+
+Note: When using transactions with Security and Firebase Rules in place, be
+aware that a client needs `.read` access in addition to `.write` access in
+order to perform a transaction. This is because the client-side nature of
+transactions requires the client to read the data in order to transactionally
+update it.
+
+#### Parameters
+
+##### ref
+
+`Reference`
+
+The location to atomically modify.
+
+##### transactionUpdate
+
+(`currentData`) => `unknown`
+
+A developer-supplied function which will be passed
+the current data stored at this location (as a JavaScript object). The
+function should return the new value it would like written (as a JavaScript
+object). If `undefined` is returned (i.e. you return with no arguments) the
+transaction will be aborted and the data at this location will not be
+modified.
+
+##### options?
+
+[`TransactionOptions`](#transactionoptions)
+
+An options object to configure transactions.
+
+#### Returns
+
+`Promise`\<`TransactionResult`\>
+
+A `Promise` that can optionally be used instead of the `onComplete`
+callback to handle success and failure.
diff --git a/docs/reference/firestore/lib/modular.mdx b/docs/reference/firestore/lib/modular.mdx
new file mode 100644
index 0000000000..dfc808d4aa
--- /dev/null
+++ b/docs/reference/firestore/lib/modular.mdx
@@ -0,0 +1,3378 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / firestore/lib/modular
+
+# firestore/lib/modular
+
+## Classes
+
+### AggregateField
+
+Defined in: [firestore/lib/modular/index.d.ts:1285](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1285)
+
+Represents an aggregation that can be performed by Firestore.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Constructors
+
+##### Constructor
+
+> **new AggregateField**\<`T`\>(`aggregateType?`, `_internalFieldPath?`): [`AggregateField`](#aggregatefield)\<`T`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1298](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1298)
+
+**`Internal`**
+
+Create a new AggregateField
+
+###### Parameters
+
+###### aggregateType?
+
+`AggregateType` = `'count'`
+
+Specifies the type of aggregation operation to perform.
+
+###### \_internalFieldPath?
+
+`any`
+
+Optionally specifies the field that is aggregated.
+
+###### Returns
+
+[`AggregateField`](#aggregatefield)\<`T`\>
+
+#### Properties
+
+##### \_internalFieldPath?
+
+> `readonly` `optional` **\_internalFieldPath**: `any`
+
+Defined in: [firestore/lib/modular/index.d.ts:1300](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1300)
+
+Optionally specifies the field that is aggregated.
+
+##### aggregateType
+
+> `readonly` **aggregateType**: `AggregateType`
+
+Defined in: [firestore/lib/modular/index.d.ts:1290](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1290)
+
+Indicates the aggregation operation of this AggregateField.
+
+##### type
+
+> `readonly` **type**: `"AggregateField"` = `'AggregateField'`
+
+Defined in: [firestore/lib/modular/index.d.ts:1287](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1287)
+
+A type string to uniquely identify instances of this class.
+
+***
+
+### Transaction
+
+Defined in: [firestore/lib/modular/index.d.ts:663](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L663)
+
+A reference to a transaction.
+
+The `Transaction` object passed to a transaction's `updateFunction` provides
+the methods to read and write data within the transaction context. See
+[runTransaction](#runtransaction).
+
+#### Extends
+
+- `any`
+
+#### Constructors
+
+##### Constructor
+
+> **new Transaction**(): [`Transaction`](#transaction)
+
+###### Returns
+
+[`Transaction`](#transaction)
+
+###### Inherited from
+
+`LiteTransaction.constructor`
+
+#### Methods
+
+##### delete()
+
+> **delete**\<`AppModelType`, `DbModelType`\>(`documentRef`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:754](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L754)
+
+Deletes the document referred to by the provided [DocumentReference](#documentreference).
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be deleted.
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+##### get()
+
+> **get**\<`AppModelType`, `DbModelType`\>(`documentRef`): `Promise`\<`DocumentSnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/index.d.ts:670](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L670)
+
+Reads the document referenced by the provided [DocumentReference](#documentreference).
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be read.
+
+###### Returns
+
+`Promise`\<`DocumentSnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+A `DocumentSnapshot` with the read data.
+
+##### set()
+
+###### Call Signature
+
+> **set**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:683](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L683)
+
+Writes to the document referred to by the provided [DocumentReference](#documentreference). If the document does not exist yet, it will be created.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be set.
+
+###### data
+
+[`WithFieldValue`](#withfieldvalue)\<`AppModelType`\>
+
+An object of the fields and values for the document.
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not a valid Firestore document.
+
+###### Call Signature
+
+> **set**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`, `options`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:699](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L699)
+
+Writes to the document referred to by the provided [DocumentReference](#documentreference). If the document does not exist yet, it will be created.
+If you provide `merge` or `mergeFields`, the provided data can be merged
+into an existing document.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be set.
+
+###### data
+
+[`PartialWithFieldValue`](#partialwithfieldvalue)\<`AppModelType`\>
+
+An object of the fields and values for the document.
+
+###### options
+
+`SetOptions`
+
+An object to configure the set behavior.
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not a valid Firestore document.
+
+##### update()
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:717](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L717)
+
+Updates fields in the document referred to by the provided [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### data
+
+[`UpdateData`](#updatedata)\<`DbModelType`\>
+
+An object containing the fields and values with which to
+update the document. Fields can contain dots to reference nested fields
+within the document.
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `field`, `value`, ...`moreFieldsAndValues`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:736](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L736)
+
+Updates fields in the document referred to by the provided [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+Nested fields can be updated by providing dot-separated field path
+strings or by providing `FieldPath` objects.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### field
+
+The first field to update.
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath)
+
+###### value
+
+`unknown`
+
+The first value.
+
+###### moreFieldsAndValues
+
+...`unknown`[]
+
+Additional key/value pairs.
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `fieldOrUpdateData`, `value?`, ...`moreFieldsAndValues`): `this`
+
+Defined in: [firestore/lib/modular/index.d.ts:742](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L742)
+
+Updates fields in the document referred to by the provided [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### fieldOrUpdateData
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath) | [`UpdateData`](#updatedata)\<`DbModelType`\>
+
+###### value?
+
+`unknown`
+
+###### moreFieldsAndValues
+
+...`unknown`[]
+
+###### Returns
+
+`this`
+
+This `Transaction` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+***
+
+### WriteBatch
+
+Defined in: [firestore/lib/modular/index.d.ts:558](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L558)
+
+A write batch, used to perform multiple writes as a single atomic unit.
+
+A `WriteBatch` object can be acquired by calling [writeBatch](#writebatch-1). It
+provides methods for adding writes to the write batch. None of the writes
+will be committed (or visible locally) until [WriteBatch.commit](#commit) is
+called.
+
+#### Constructors
+
+##### Constructor
+
+> **new WriteBatch**(): [`WriteBatch`](#writebatch)
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+#### Methods
+
+##### commit()
+
+> **commit**(): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:653](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L653)
+
+Commits all of the writes in this write batch as a single atomic unit.
+
+The result of these writes will only be reflected in document reads that
+occur after the returned promise resolves. If the client is offline, the
+write fails. If you would like to see local modifications or buffer writes
+until the client is online, use the full Firestore SDK.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` resolved once all of the writes in the batch have been
+successfully written to the backend as an atomic unit (note that it won't
+resolve while you're offline).
+
+##### delete()
+
+> **delete**\<`AppModelType`, `DbModelType`\>(`documentRef`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:638](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L638)
+
+Deletes the document referred to by the provided [DocumentReference](#documentreference).
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be deleted.
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+##### set()
+
+###### Call Signature
+
+> **set**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:567](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L567)
+
+Writes to the document referred to by the provided [DocumentReference](#documentreference). If the document does not exist yet, it will be created.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be set.
+
+###### data
+
+[`WithFieldValue`](#withfieldvalue)\<`AppModelType`\>
+
+An object of the fields and values for the document.
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+###### Call Signature
+
+> **set**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`, `options`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:583](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L583)
+
+Writes to the document referred to by the provided [DocumentReference](#documentreference). If the document does not exist yet, it will be created.
+If you provide `merge` or `mergeFields`, the provided data can be merged
+into an existing document.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be set.
+
+###### data
+
+[`PartialWithFieldValue`](#partialwithfieldvalue)\<`AppModelType`\>
+
+An object of the fields and values for the document.
+
+###### options
+
+`SetOptions`
+
+An object to configure the set behavior.
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not a valid Firestore document.
+
+##### update()
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `data`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:600](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L600)
+
+Updates fields in the document referred to by the provided [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### data
+
+[`UpdateData`](#updatedata)\<`DbModelType`\>
+
+An object containing the fields and values with which to
+update the document. Fields can contain dots to reference nested fields
+within the document.
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `field`, `value`, ...`moreFieldsAndValues`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:619](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L619)
+
+Updates fields in the document referred to by this [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+Nested fields can be update by providing dot-separated field path strings
+or by providing `FieldPath` objects.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### field
+
+The first field to update.
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath)
+
+###### value
+
+`unknown`
+
+The first value.
+
+###### moreFieldsAndValues
+
+...`unknown`[]
+
+Additional key value pairs.
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+###### Call Signature
+
+> **update**\<`AppModelType`, `DbModelType`\>(`documentRef`, `fieldOrUpdateData`, `value?`, ...`moreFieldsAndValues`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:625](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L625)
+
+Updates fields in the document referred to by the provided [DocumentReference](#documentreference). The update will fail if applied to a document that does
+not exist.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### documentRef
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to be updated.
+
+###### fieldOrUpdateData
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath) | [`UpdateData`](#updatedata)\<`DbModelType`\>
+
+###### value?
+
+`unknown`
+
+###### moreFieldsAndValues
+
+...`unknown`[]
+
+###### Returns
+
+[`WriteBatch`](#writebatch)
+
+This `WriteBatch` instance. Used for chaining method calls.
+
+###### Throws
+
+Error - If the provided input is not valid Firestore data.
+
+## Interfaces
+
+### CollectionReference
+
+Defined in: [firestore/lib/modular/index.d.ts:450](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L450)
+
+A `CollectionReference` object can be used for adding documents, getting document references, and querying for
+documents (using the methods inherited from `Query`).
+
+#### Extends
+
+- [`Query`](#query)\<`AppModelType`, `DbModelType`\>
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+#### Properties
+
+##### converter
+
+> **converter**: [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModelType`, `DbModelType`\> \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L422)
+
+If provided, the [FirestoreDataConverter](#firestoredataconverter) associated with this instance.
+
+###### Inherited from
+
+[`Query`](#query).[`converter`](#converter-2)
+
+##### firestore
+
+> **firestore**: `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:417](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L417)
+
+The Firestore instance the document is in. This is useful for performing transactions, for example.
+
+###### Inherited from
+
+[`Query`](#query).[`firestore`](#firestore-2)
+
+##### id
+
+> **id**: `string`
+
+Defined in: [firestore/lib/modular/index.d.ts:457](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L457)
+
+The collection's identifier.
+
+##### parent
+
+> **parent**: [`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\> \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:463](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L463)
+
+A reference to the containing `DocumentReference` if this is a subcollection. If this isn't a
+subcollection, the reference is null.
+
+##### path
+
+> **path**: `string`
+
+Defined in: [firestore/lib/modular/index.d.ts:468](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L468)
+
+A string representing the path of the referenced collection (relative to the root of the database).
+
+#### Methods
+
+##### withConverter()
+
+###### Call Signature
+
+> **withConverter**(`converter`): [`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:477](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L477)
+
+Removes the current converter.
+
+###### Parameters
+
+###### converter
+
+`null`
+
+`null` removes the current converter.
+
+###### Returns
+
+[`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+A `CollectionReference` that does not
+use a converter.
+
+###### Overrides
+
+[`Query`](#query).[`withConverter`](#withconverter-2)
+
+###### Call Signature
+
+> **withConverter**\<`NewAppModelType`, `NewDbModelType`\>(`converter`): [`CollectionReference`](#collectionreference)\<`NewAppModelType`, `NewDbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:488](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L488)
+
+Applies a custom data converter to this `CollectionReference`, allowing you
+to use your own custom model objects with Firestore. When you call [addDoc](#adddoc) with the returned `CollectionReference` instance, the provided
+converter will convert between Firestore data of type `NewDbModelType` and
+your custom type `NewAppModelType`.
+
+###### Type Parameters
+
+###### NewAppModelType
+
+`NewAppModelType`
+
+###### NewDbModelType
+
+`NewDbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### converter
+
+[`FirestoreDataConverter`](#firestoredataconverter)\<`NewAppModelType`, `NewDbModelType`\>
+
+Converts objects to and from Firestore.
+
+###### Returns
+
+[`CollectionReference`](#collectionreference)\<`NewAppModelType`, `NewDbModelType`\>
+
+A `CollectionReference` that uses the provided converter.
+
+###### Overrides
+
+[`Query`](#query).[`withConverter`](#withconverter-2)
+
+***
+
+### DocumentData
+
+Defined in: [firestore/lib/modular/index.d.ts:23](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L23)
+
+A `DocumentData` object represents the data in a document.
+- Same as FirebaseFirestoreTypes.DocumentData
+
+#### Indexable
+
+\[`key`: `string`\]: `any`
+
+***
+
+### DocumentReference
+
+Defined in: [firestore/lib/modular/index.d.ts:498](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L498)
+
+A `DocumentReference` refers to a document location in a Firestore database and can be used to write, read, or listen
+to the location. The document at the referenced location may or may not exist. A `DocumentReference` can also be used
+to create a `CollectionReference` to a subcollection.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+#### Properties
+
+##### converter
+
+> **converter**: [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModelType`, `DbModelType`\> \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:510](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L510)
+
+If provided, the [FirestoreDataConverter](#firestoredataconverter) associated with this instance.
+
+##### firestore
+
+> **firestore**: `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:505](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L505)
+
+The Firestore instance the document is in. This is useful for performing transactions, for example.
+
+##### id
+
+> **id**: `string`
+
+Defined in: [firestore/lib/modular/index.d.ts:515](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L515)
+
+The document's identifier within its collection.
+
+##### parent
+
+> **parent**: [`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:520](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L520)
+
+The Collection this `DocumentReference` belongs to.
+
+##### path
+
+> **path**: `string`
+
+Defined in: [firestore/lib/modular/index.d.ts:525](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L525)
+
+A string representing the path of the referenced document (relative to the root of the database).
+
+#### Methods
+
+##### withConverter()
+
+###### Call Signature
+
+> **withConverter**(`converter`): [`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:534](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L534)
+
+Removes the current converter.
+
+###### Parameters
+
+###### converter
+
+`null`
+
+`null` removes the current converter.
+
+###### Returns
+
+[`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+A `DocumentReference` that does not
+use a converter.
+
+###### Call Signature
+
+> **withConverter**\<`NewAppModelType`, `NewDbModelType`\>(`converter`): [`DocumentReference`](#documentreference)\<`NewAppModelType`, `NewDbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:545](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L545)
+
+Applies a custom data converter to this `DocumentReference`, allowing you
+to use your own custom model objects with Firestore. When you call
+[:1](#setdoc), getDoc:1, etc. with the returned `DocumentReference`
+instance, the provided converter will convert between Firestore data of
+type `NewDbModelType` and your custom type `NewAppModelType`.
+
+###### Type Parameters
+
+###### NewAppModelType
+
+`NewAppModelType`
+
+###### NewDbModelType
+
+`NewDbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### converter
+
+[`FirestoreDataConverter`](#firestoredataconverter)\<`NewAppModelType`, `NewDbModelType`\>
+
+Converts objects to and from Firestore.
+
+###### Returns
+
+[`DocumentReference`](#documentreference)\<`NewAppModelType`, `NewDbModelType`\>
+
+A `DocumentReference` that uses the provided converter.
+
+***
+
+### FirestoreDataConverter
+
+Defined in: [firestore/lib/modular/index.d.ts:349](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L349)
+
+Converter used by `withConverter()` to transform user objects of type
+`AppModelType` into Firestore data of type `DbModelType`.
+
+Using the converter allows you to specify generic type arguments when
+storing and retrieving objects from Firestore.
+
+In this context, an "AppModel" is a class that is used in an application to
+package together related information and functionality. Such a class could,
+for example, have properties with complex, nested data types, properties used
+for memoization, properties of types not supported by Firestore (such as
+`symbol` and `bigint`), and helper functions that perform compound
+operations. Such classes are not suitable and/or possible to store into a
+Firestore database. Instead, instances of such classes need to be converted
+to "plain old JavaScript objects" (POJOs) with exclusively primitive
+properties, potentially nested inside other POJOs or arrays of POJOs. In this
+context, this type is referred to as the "DbModel" and would be an object
+suitable for persisting into Firestore. For convenience, applications can
+implement `FirestoreDataConverter` and register the converter with Firestore
+objects, such as `DocumentReference` or `Query`, to automatically convert
+`AppModel` to `DbModel` when storing into Firestore, and convert `DbModel`
+to `AppModel` when retrieving from Firestore.
+
+#### Example
+
+Simple Example
+
+```typescript
+const numberConverter = {
+ toFirestore(value: WithFieldValue) {
+ return { value };
+ },
+ fromFirestore(snapshot: QueryDocumentSnapshot, options: SnapshotOptions) {
+ return snapshot.data(options).value as number;
+ }
+};
+
+async function simpleDemo(db: Firestore): Promise {
+ const documentRef = doc(db, 'values/value123').withConverter(numberConverter);
+
+ // converters are used with `setDoc`, `addDoc`, and `getDoc`
+ await setDoc(documentRef, 42);
+ const snapshot1 = await getDoc(documentRef);
+ assertEqual(snapshot1.data(), 42);
+
+ // converters are not used when writing data with `updateDoc`
+ await updateDoc(documentRef, { value: 999 });
+ const snapshot2 = await getDoc(documentRef);
+ assertEqual(snapshot2.data(), 999);
+}
+```
+
+Advanced Example
+
+```typescript
+// The Post class is a model that is used by our application.
+// This class may have properties and methods that are specific
+// to our application execution, which do not need to be persisted
+// to Firestore.
+class Post {
+ constructor(
+ readonly title: string,
+ readonly author: string,
+ readonly lastUpdatedMillis: number
+ ) {}
+ toString(): string {
+ return `${this.title} by ${this.author}`;
+ }
+}
+
+// The PostDbModel represents how we want our posts to be stored
+// in Firestore. This DbModel has different properties (`ttl`,
+// `aut`, and `lut`) from the Post class we use in our application.
+interface PostDbModel {
+ ttl: string;
+ aut: { firstName: string; lastName: string };
+ lut: Timestamp;
+}
+
+// The `PostConverter` implements `FirestoreDataConverter` and specifies
+// how the Firestore SDK can convert `Post` objects to `PostDbModel`
+// objects and vice versa.
+class PostConverter implements FirestoreDataConverter {
+ toFirestore(post: WithFieldValue): WithFieldValue {
+ return {
+ ttl: post.title,
+ aut: this._autFromAuthor(post.author),
+ lut: this._lutFromLastUpdatedMillis(post.lastUpdatedMillis)
+ };
+ }
+
+ fromFirestore(snapshot: QueryDocumentSnapshot, options: SnapshotOptions): Post {
+ const data = snapshot.data(options) as PostDbModel;
+ const author = `${data.aut.firstName} ${data.aut.lastName}`;
+ return new Post(data.ttl, author, data.lut.toMillis());
+ }
+
+ _autFromAuthor(
+ author: string | FieldValue
+ ): { firstName: string; lastName: string } | FieldValue {
+ if (typeof author !== 'string') {
+ // `author` is a FieldValue, so just return it.
+ return author;
+ }
+ const [firstName, lastName] = author.split(' ');
+ return {firstName, lastName};
+ }
+
+ _lutFromLastUpdatedMillis(
+ lastUpdatedMillis: number | FieldValue
+ ): Timestamp | FieldValue {
+ if (typeof lastUpdatedMillis !== 'number') {
+ // `lastUpdatedMillis` must be a FieldValue, so just return it.
+ return lastUpdatedMillis;
+ }
+ return Timestamp.fromMillis(lastUpdatedMillis);
+ }
+}
+
+async function advancedDemo(db: Firestore): Promise {
+ // Create a `DocumentReference` with a `FirestoreDataConverter`.
+ const documentRef = doc(db, 'posts/post123').withConverter(new PostConverter());
+
+ // The `data` argument specified to `setDoc()` is type checked by the
+ // TypeScript compiler to be compatible with `Post`. Since the `data`
+ // argument is typed as `WithFieldValue` rather than just `Post`,
+ // this allows properties of the `data` argument to also be special
+ // Firestore values that perform server-side mutations, such as
+ // `arrayRemove()`, `deleteField()`, and `serverTimestamp()`.
+ await setDoc(documentRef, {
+ title: 'My Life',
+ author: 'Foo Bar',
+ lastUpdatedMillis: serverTimestamp()
+ });
+
+ // The TypeScript compiler will fail to compile if the `data` argument to
+ // `setDoc()` is _not_ compatible with `WithFieldValue`. This
+ // type checking prevents the caller from specifying objects with incorrect
+ // properties or property values.
+ // @ts-expect-error "Argument of type { ttl: string; } is not assignable
+ // to parameter of type WithFieldValue"
+ await setDoc(documentRef, { ttl: 'The Title' });
+
+ // When retrieving a document with `getDoc()` the `DocumentSnapshot`
+ // object's `data()` method returns a `Post`, rather than a generic object,
+ // which would have been returned if the `DocumentReference` did _not_ have a
+ // `FirestoreDataConverter` attached to it.
+ const snapshot1: DocumentSnapshot = await getDoc(documentRef);
+ const post1: Post = snapshot1.data()!;
+ if (post1) {
+ assertEqual(post1.title, 'My Life');
+ assertEqual(post1.author, 'Foo Bar');
+ }
+
+ // The `data` argument specified to `updateDoc()` is type checked by the
+ // TypeScript compiler to be compatible with `PostDbModel`. Note that
+ // unlike `setDoc()`, whose `data` argument must be compatible with `Post`,
+ // the `data` argument to `updateDoc()` must be compatible with
+ // `PostDbModel`. Similar to `setDoc()`, since the `data` argument is typed
+ // as `WithFieldValue` rather than just `PostDbModel`, this
+ // allows properties of the `data` argument to also be those special
+ // Firestore values, like `arrayRemove()`, `deleteField()`, and
+ // `serverTimestamp()`.
+ await updateDoc(documentRef, {
+ 'aut.firstName': 'NewFirstName',
+ lut: serverTimestamp()
+ });
+
+ // The TypeScript compiler will fail to compile if the `data` argument to
+ // `updateDoc()` is _not_ compatible with `WithFieldValue`.
+ // This type checking prevents the caller from specifying objects with
+ // incorrect properties or property values.
+ // @ts-expect-error "Argument of type { title: string; } is not assignable
+ // to parameter of type WithFieldValue"
+ await updateDoc(documentRef, { title: 'New Title' });
+ const snapshot2: DocumentSnapshot = await getDoc(documentRef);
+ const post2: Post = snapshot2.data()!;
+ if (post2) {
+ assertEqual(post2.title, 'My Life');
+ assertEqual(post2.author, 'NewFirstName Bar');
+ }
+}
+```
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+#### Methods
+
+##### fromFirestore()
+
+> **fromFirestore**(`snapshot`, `options?`): `AppModelType`
+
+Defined in: [firestore/lib/modular/index.d.ts:400](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L400)
+
+Called by the Firestore SDK to convert Firestore data into an object of
+type `AppModelType`. You can access your data by calling:
+`snapshot.data(options)`.
+
+Generally, the data returned from `snapshot.data()` can be cast to
+`DbModelType`; however, this is not guaranteed because Firestore does not
+enforce a schema on the database. For example, writes from a previous
+version of the application or writes from another client that did not use a
+type converter could have written data with different properties and/or
+property types. The implementation will need to choose whether to
+gracefully recover from non-conforming data or throw an error.
+
+To override this method, see (FirestoreDataConverter.fromFirestore:1).
+
+###### Parameters
+
+###### snapshot
+
+`QueryDocumentSnapshot`\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+A `QueryDocumentSnapshot` containing your data and metadata.
+
+###### options?
+
+`any`
+
+The `SnapshotOptions` from the initial call to `data()`.
+
+###### Returns
+
+`AppModelType`
+
+##### toFirestore()
+
+###### Call Signature
+
+> **toFirestore**(`modelObject`): [`WithFieldValue`](#withfieldvalue)\<`DbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:363](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L363)
+
+Called by the Firestore SDK to convert a custom model object of type
+`AppModelType` into a plain JavaScript object (suitable for writing
+directly to the Firestore database) of type `DbModelType`. To use `set()`
+with `merge` and `mergeFields`, `toFirestore()` must be defined with
+`PartialWithFieldValue`.
+
+The `WithFieldValue` type extends `T` to also allow FieldValues such as
+(deleteField:1) to be used as property values.
+
+###### Parameters
+
+###### modelObject
+
+[`WithFieldValue`](#withfieldvalue)\<`AppModelType`\>
+
+###### Returns
+
+[`WithFieldValue`](#withfieldvalue)\<`DbModelType`\>
+
+###### Call Signature
+
+> **toFirestore**(`modelObject`, `options`): [`PartialWithFieldValue`](#partialwithfieldvalue)\<`DbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L377)
+
+Called by the Firestore SDK to convert a custom model object of type
+`AppModelType` into a plain JavaScript object (suitable for writing
+directly to the Firestore database) of type `DbModelType`. Used with
+(setDoc:1), (WriteBatch.set:1) and
+(Transaction.set:1) with `merge:true` or `mergeFields`.
+
+The `PartialWithFieldValue` type extends `Partial` to allow
+FieldValues such as (arrayUnion:1) to be used as property values.
+It also supports nested `Partial` by allowing nested fields to be
+omitted.
+
+###### Parameters
+
+###### modelObject
+
+[`PartialWithFieldValue`](#partialwithfieldvalue)\<`AppModelType`\>
+
+###### options
+
+`SetOptions`
+
+###### Returns
+
+[`PartialWithFieldValue`](#partialwithfieldvalue)\<`DbModelType`\>
+
+***
+
+### Query
+
+Defined in: [firestore/lib/modular/index.d.ts:410](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L410)
+
+A Query refers to a `Query` which you can read or listen to. You can also construct refined `Query` objects by
+adding filters and ordering.
+
+#### Extended by
+
+- [`CollectionReference`](#collectionreference)
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+#### Properties
+
+##### converter
+
+> **converter**: [`FirestoreDataConverter`](#firestoredataconverter)\<`AppModelType`, `DbModelType`\> \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L422)
+
+If provided, the [FirestoreDataConverter](#firestoredataconverter) associated with this instance.
+
+##### firestore
+
+> **firestore**: `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:417](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L417)
+
+The Firestore instance the document is in. This is useful for performing transactions, for example.
+
+#### Methods
+
+##### withConverter()
+
+###### Call Signature
+
+> **withConverter**(`converter`): [`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:431](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L431)
+
+Removes the current converter.
+
+###### Parameters
+
+###### converter
+
+`null`
+
+`null` removes the current converter.
+
+###### Returns
+
+[`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+A `Query` that does not use a
+converter.
+
+###### Call Signature
+
+> **withConverter**\<`NewAppModelType`, `NewDbModelType`\>(`converter`): [`Query`](#query)\<`NewAppModelType`, `NewDbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:441](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L441)
+
+Applies a custom data converter to this query, allowing you to use your own
+custom model objects with Firestore. When you call [getDocs](modular/query-1.mdx#getdocs) with
+the returned query, the provided converter will convert between Firestore
+data of type `NewDbModelType` and your custom type `NewAppModelType`.
+z
+
+###### Type Parameters
+
+###### NewAppModelType
+
+`NewAppModelType`
+
+###### NewDbModelType
+
+`NewDbModelType` *extends* [`DocumentData`](#documentdata) = [`DocumentData`](#documentdata)
+
+###### Parameters
+
+###### converter
+
+[`FirestoreDataConverter`](#firestoredataconverter)\<`NewAppModelType`, `NewDbModelType`\>
+
+Converts objects to and from Firestore.
+
+###### Returns
+
+[`Query`](#query)\<`NewAppModelType`, `NewDbModelType`\>
+
+A `Query` that uses the provided converter.
+
+## Type Aliases
+
+### AddPrefixToKeys
+
+> **AddPrefixToKeys**\<`Prefix`, `T`\> = `` { [K in keyof T & string as `${Prefix}.${K}`]?: T[K] } ``
+
+Defined in: [firestore/lib/modular/index.d.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L57)
+
+Returns a new map where every key is prefixed with the outer key appended to a dot.
+
+#### Type Parameters
+
+##### Prefix
+
+`Prefix` *extends* `string`
+
+##### T
+
+`T` *extends* `Record`\<`string`, `unknown`\>
+
+***
+
+### AggregateFieldType
+
+> **AggregateFieldType** = `ReturnType`\<*typeof* [`sum`](#sum)\> \| `ReturnType`\<*typeof* [`average`](#average)\> \| `ReturnType`\<*typeof* [`count`](#count)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1247](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1247)
+
+The union of all `AggregateField` types that are supported by Firestore.
+
+***
+
+### AggregateQuerySnapshot
+
+> **AggregateQuerySnapshot** = `FirebaseFirestoreTypes.AggregateQuerySnapshot`
+
+Defined in: [firestore/lib/modular/index.d.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L10)
+
+***
+
+### ChildUpdateFields
+
+> **ChildUpdateFields**\<`K`, `V`\> = `V` *extends* `Record`\<`string`, `unknown`\> ? [`AddPrefixToKeys`](#addprefixtokeys)\<`K`, [`UpdateData`](#updatedata)\<`V`\>\> : `never`
+
+Defined in: [firestore/lib/modular/index.d.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L70)
+
+Helper for calculating the nested fields for a given type `T1`. This is needed to distribute
+union types such as `undefined | {...}` (happens for optional props) or `{a: A} | {b: B}`.
+
+In this use case, `V` is used to distribute the union types of `T[K]` on Record, since `T[K]`
+is evaluated as an expression and not distributed.
+
+See https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types
+
+#### Type Parameters
+
+##### K
+
+`K` *extends* `string`
+
+##### V
+
+`V`
+
+***
+
+### EmulatorMockTokenOptions
+
+> **EmulatorMockTokenOptions** = \{ `user_id`: `string`; \} \| \{ `sub`: `string`; \} & `Partial`\<`FirebaseIdToken`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L108)
+
+***
+
+### NestedUpdateFields
+
+> **NestedUpdateFields**\<`T`\> = [`UnionToIntersection`](#uniontointersection)\<`{ [K in keyof T & string]: ChildUpdateFields }`\[keyof `T` & `string`\]\>
+
+Defined in: [firestore/lib/modular/index.d.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L77)
+
+For each field (e.g. 'bar'), find all nested keys (e.g. {'bar.baz': T1, 'bar.qux': T2}).
+Intersect them together to make a single map containing all possible keys that are all marked as optional
+
+#### Type Parameters
+
+##### T
+
+`T` *extends* `Record`\<`string`, `unknown`\>
+
+***
+
+### PartialWithFieldValue
+
+> **PartialWithFieldValue**\<`T`\> = `Partial`\<`T`\> \| `T` *extends* [`Primitive`](#primitive) ? `T` : `T` *extends* `object` ? \{ \[K in keyof T\]?: PartialWithFieldValue\ \| FieldValue \} : `never`
+
+Defined in: [firestore/lib/modular/index.d.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L31)
+
+Similar to Typescript's `Partial`, but allows nested fields to be
+omitted and FieldValues to be passed in as property values.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+***
+
+### PersistentCacheIndexManager
+
+> **PersistentCacheIndexManager** = `FirebaseFirestoreTypes.PersistentCacheIndexManager`
+
+Defined in: [firestore/lib/modular/index.d.ts:9](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L9)
+
+***
+
+### Primitive
+
+> **Primitive** = `string` \| `number` \| `boolean` \| `undefined` \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:17](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L17)
+
+Primitive types.
+
+***
+
+### QueryCompositeFilterConstraint
+
+> **QueryCompositeFilterConstraint** = `FirebaseFirestoreTypes.QueryCompositeFilterConstraint`
+
+Defined in: [firestore/lib/modular/index.d.ts:14](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L14)
+
+***
+
+### SetOptions
+
+> **SetOptions** = `FirebaseFirestoreTypes.SetOptions`
+
+Defined in: [firestore/lib/modular/index.d.ts:11](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L11)
+
+***
+
+### SnapshotListenOptions
+
+> **SnapshotListenOptions** = `FirebaseFirestoreTypes.SnapshotListenOptions`
+
+Defined in: [firestore/lib/modular/index.d.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L12)
+
+***
+
+### UnionToIntersection
+
+> **UnionToIntersection**\<`U`\> = `U` *extends* `unknown` ? (`k`) => `void` : `never` *extends* (`k`) => `void` ? `I` : `never`
+
+Defined in: [firestore/lib/modular/index.d.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L48)
+
+Given a union type `U = T1 | T2 | ...`, returns an intersected type (`T1 & T2 & ...`).
+
+Uses distributive conditional types and inference from conditional types.
+This works because multiple candidates for the same type variable in contra-variant positions
+causes an intersection type to be inferred.
+https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-in-conditional-types
+https://stackoverflow.com/questions/50374908/transform-union-type-to-intersection-type
+
+#### Type Parameters
+
+##### U
+
+`U`
+
+***
+
+### UpdateData
+
+> **UpdateData**\<`T`\> = `T` *extends* [`Primitive`](#primitive) ? `T` : `T` *extends* `object` ? \{ \[K in keyof T\]?: UpdateData\ \| FieldValue \} & [`NestedUpdateFields`](#nestedupdatefields)\<`T`\> : `Partial`\<`T`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L88)
+
+Update data (for use with [updateDoc](#updatedoc)) that consists of field paths (e.g. 'foo' or 'foo.baz')
+mapped to values. Fields that contain dots reference nested fields within the document.
+FieldValues can be passed in as property values.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+***
+
+### WhereFilterOp
+
+> **WhereFilterOp** = `FirebaseFirestoreTypes.WhereFilterOp`
+
+Defined in: [firestore/lib/modular/index.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L13)
+
+***
+
+### WithFieldValue
+
+> **WithFieldValue**\<`T`\> = `T` \| `T` *extends* [`Primitive`](#primitive) ? `T` : `T` *extends* `object` ? \{ \[K in keyof T\]: WithFieldValue\ \| FieldValue \} : `never`
+
+Defined in: [firestore/lib/modular/index.d.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L100)
+
+Allows FieldValues to be passed in as a property value while maintaining
+type safety.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+## Functions
+
+### addDoc()
+
+> **addDoc**\<`AppModelType`, `DbModelType`\>(`reference`, `data`): `Promise`\<[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1022](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1022)
+
+Add a new document to specified `CollectionReference` with the given data,
+assigning it a document ID automatically.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+#### Parameters
+
+##### reference
+
+[`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the collection to add this document to.
+
+##### data
+
+[`WithFieldValue`](#withfieldvalue)\<`AppModelType`\>
+
+An Object containing the data for the new document.
+
+#### Returns
+
+`Promise`\<[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` resolved with a `DocumentReference` pointing to the
+newly created document after it has been written to the backend (Note that it
+won't resolve while you're offline).
+
+***
+
+### average()
+
+> **average**(`field`): [`AggregateField`](#aggregatefield)\<`number` \| `null`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1273](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1273)
+
+Create an AggregateField object that can be used to compute the average of
+a specified field over a range of documents in the result set of a query.
+
+#### Parameters
+
+##### field
+
+Specifies the field to average across the result set.
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath)
+
+#### Returns
+
+[`AggregateField`](#aggregatefield)\<`number` \| `null`\>
+
+***
+
+### clearIndexedDbPersistence()
+
+> **clearIndexedDbPersistence**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1060](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1060)
+
+Aimed primarily at clearing up any data cached from running tests. Needs to be executed before any database calls
+are made.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### clearPersistence()
+
+> **clearPersistence**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1052](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1052)
+
+Aimed primarily at clearing up any data cached from running tests. Needs to be executed before any database calls
+are made.
+
+Deprecated, please use `clearIndexedDbPersistence` instead.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### collection()
+
+#### Call Signature
+
+> **collection**(`firestore`, `path`, ...`pathSegments`): [`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:853](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L853)
+
+Gets a `CollectionReference` instance that refers to the collection at
+the specified absolute path.
+
+##### Parameters
+
+###### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+
+###### path
+
+`string`
+
+A slash-separated path to a collection.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments to apply relative to the first
+argument.
+
+##### Returns
+
+[`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The `CollectionReference` instance.
+
+##### Throws
+
+If the final path has an even number of segments and does not point
+to a collection.
+
+#### Call Signature
+
+> **collection**\<`AppModelType`, `DbModelType`\>(`reference`, `path`, ...`pathSegments`): [`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:871](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L871)
+
+Gets a `CollectionReference` instance that refers to a subcollection of
+`reference` at the specified relative path.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to a collection.
+
+###### path
+
+`string`
+
+A slash-separated path to a collection.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments to apply relative to the first
+argument.
+
+##### Returns
+
+[`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The `CollectionReference` instance.
+
+##### Throws
+
+If the final path has an even number of segments and does not point
+to a collection.
+
+#### Call Signature
+
+> **collection**\<`AppModelType`, `DbModelType`\>(`reference`, `path`, ...`pathSegments`): [`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:889](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L889)
+
+Gets a `CollectionReference` instance that refers to a subcollection of
+`reference` at the specified relative path.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to a document.
+
+###### path
+
+`string`
+
+A slash-separated path to a collection.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments to apply relative to the first
+argument.
+
+##### Returns
+
+[`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The `CollectionReference` instance.
+
+##### Throws
+
+If the final path has an even number of segments and does not point
+to a collection.
+
+#### Call Signature
+
+> **collection**(`reference`, `path`, ...`pathSegments`): [`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:907](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L907)
+
+Gets a `CollectionReference` instance that refers to a subcollection of
+`reference` at the specified relative path.
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)
+
+A reference to a Firestore document.
+
+###### path
+
+`string`
+
+A slash-separated path to a collection.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments that will be applied relative
+to the first argument.
+
+##### Returns
+
+[`CollectionReference`](#collectionreference)\<[`DocumentData`](#documentdata)\>
+
+The `CollectionReference` instance.
+
+##### Throws
+
+If the final path has an even number of segments and does not point
+to a collection.
+
+***
+
+### collectionGroup()
+
+> **collectionGroup**(`firestore`, `collectionId`): [`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:940](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L940)
+
+Creates and returns a new `Query` instance that includes all documents in the
+database that are contained in a collection or subcollection with the
+given `collectionId`.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+
+##### collectionId
+
+`string`
+
+Identifies the collections to query over. Every
+collection or subcollection with this ID as the last segment of its path
+will be included. Cannot contain a slash.
+
+#### Returns
+
+[`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The created `Query`.
+
+***
+
+### connectFirestoreEmulator()
+
+> **connectFirestoreEmulator**(`firestore`, `host`, `port`, `options?`): `void`
+
+Defined in: [firestore/lib/modular/index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L156)
+
+Modify this instance to communicate with the Cloud Firestore emulator.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+instance is associated with.
+
+##### host
+
+`string`
+
+##### port
+
+`number`
+
+##### options?
+
+###### mockUserToken?
+
+`string` \| [`EmulatorMockTokenOptions`](#emulatormocktokenoptions)
+
+the mock auth token to use for unit testing
+
+#### Returns
+
+`void`
+
+void.
+
+***
+
+### count()
+
+> **count**(): [`AggregateField`](#aggregatefield)\<`number`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1279](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1279)
+
+Create an AggregateField object that can be used to compute the count of
+documents in the result set of a query.
+
+#### Returns
+
+[`AggregateField`](#aggregatefield)\<`number`\>
+
+***
+
+### deleteAllPersistentCacheIndexes()
+
+> **deleteAllPersistentCacheIndexes**(`indexManager`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1392](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1392)
+
+Removes all persistent cache indexes. Note this function also deletes indexes
+generated by `setIndexConfiguration()`, which is deprecated.
+
+#### Parameters
+
+##### indexManager
+
+`PersistentCacheIndexManager`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+- A promise that resolves when the operation is complete.
+
+***
+
+### disableNetwork()
+
+> **disableNetwork**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1043](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1043)
+
+Disables network usage for this instance. It can be re-enabled via [enableNetwork](#enablenetwork). While the network is disabled, any snapshot listeners,
+`getDoc()` or `getDocs()` calls will return results from cache, and any write
+operations will be queued until the network is restored.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` that is resolved once the network has been disabled.
+
+***
+
+### disablePersistentCacheIndexAutoCreation()
+
+> **disablePersistentCacheIndexAutoCreation**(`indexManager`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1383](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1383)
+
+Stops creating persistent cache indexes automatically for local query execution.
+The indexes which have been created by calling `enableIndexAutoCreation()` still take effect.
+
+#### Parameters
+
+##### indexManager
+
+`PersistentCacheIndexManager`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+- A promise that resolves when the operation is complete.
+
+***
+
+### doc()
+
+#### Call Signature
+
+> **doc**(`firestore`, `path`, ...`pathSegments`): [`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:796](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L796)
+
+Gets a `DocumentReference` instance that refers to the document at the
+specified absolute path.
+
+##### Parameters
+
+###### firestore
+
+`Module`
+
+A reference to the root `Firestore` instance.
+
+###### path
+
+`string`
+
+A slash-separated path to a document.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments that will be applied relative
+to the first argument.
+
+##### Returns
+
+[`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The `DocumentReference` instance.
+
+##### Throws
+
+If the final path has an odd number of segments and does not point to
+a document.
+
+#### Call Signature
+
+> **doc**\<`AppModelType`, `DbModelType`\>(`reference`, `path?`, ...`pathSegments`): [`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:817](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L817)
+
+Gets a `DocumentReference` instance that refers to a document within
+`reference` at the specified relative path. If no path is specified, an
+automatically-generated unique ID will be used for the returned
+`DocumentReference`.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to a collection.
+
+###### path?
+
+`string`
+
+A slash-separated path to a document. Has to be omitted to use
+auto-generated IDs.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments that will be applied relative
+to the first argument.
+
+##### Returns
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+The `DocumentReference` instance.
+
+##### Throws
+
+If the final path has an odd number of segments and does not point to
+a document.
+
+#### Call Signature
+
+> **doc**\<`AppModelType`, `DbModelType`\>(`reference`, `path`, ...`pathSegments`): [`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+Defined in: [firestore/lib/modular/index.d.ts:835](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L835)
+
+Gets a `DocumentReference` instance that refers to a document within
+`reference` at the specified relative path.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to a Firestore document.
+
+###### path
+
+`string`
+
+A slash-separated path to a document.
+
+###### pathSegments
+
+...`string`[]
+
+Additional path segments that will be applied relative
+to the first argument.
+
+##### Returns
+
+[`DocumentReference`](#documentreference)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\>
+
+The `DocumentReference` instance.
+
+##### Throws
+
+If the final path has an odd number of segments and does not point to
+a document.
+
+***
+
+### enableNetwork()
+
+> **enableNetwork**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1033](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1033)
+
+Re-enables use of the network for this Firestore instance after a prior
+call to [disableNetwork](#disablenetwork).
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` that is resolved once the network has been enabled.
+
+***
+
+### enablePersistentCacheIndexAutoCreation()
+
+> **enablePersistentCacheIndexAutoCreation**(`indexManager`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1374](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1374)
+
+Enables the SDK to create persistent cache indexes automatically for local query
+execution when the SDK believes cache indexes can help improves performance.
+This feature is disabled by default.
+
+#### Parameters
+
+##### indexManager
+
+`PersistentCacheIndexManager`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+- A promise that resolves when the operation is complete.
+
+***
+
+### getAggregateFromServer()
+
+> **getAggregateFromServer**\<`AggregateSpecType`, `AppModelType`, `DbModelType`\>(`query`, `aggregateSpec`): `Promise`\<`any`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1252](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1252)
+
+#### Type Parameters
+
+##### AggregateSpecType
+
+`AggregateSpecType` *extends* `AggregateSpec`
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+#### Parameters
+
+##### query
+
+[`Query`](#query)\<`AppModelType`, `DbModelType`\>
+
+##### aggregateSpec
+
+`AggregateSpecType`
+
+#### Returns
+
+`Promise`\<`any`\>
+
+***
+
+### getCountFromServer()
+
+> **getCountFromServer**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`AggregateQuerySnapshot`\<\{ `count`: `AggregateField`\<`number`\>; \}, `AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1171](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1171)
+
+Calculates the number of documents in the result set of the given query,
+without actually downloading the documents.
+
+Using this function to count the documents is efficient because only the
+final count, not the documents' data, is downloaded. This function can even
+count the documents if the result set would be prohibitively large to
+download entirely (e.g. thousands of documents).
+
+The result received from the server is presented, unaltered, without
+considering any local state. That is, documents in the local cache are not
+taken into consideration, neither are local modifications not yet
+synchronized with the server. Previously-downloaded results, if any, are not
+used: every request using this source necessarily involves a round trip to
+the server.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+#### Parameters
+
+##### query
+
+[`Query`](#query)\<`AppModelType`, `DbModelType`\>
+
+The query whose result set size to calculate.
+
+#### Returns
+
+`Promise`\<`AggregateQuerySnapshot`\<\{ `count`: `AggregateField`\<`number`\>; \}, `AppModelType`, `DbModelType`\>\>
+
+A Promise that will be resolved with the count; the count can be
+retrieved from `snapshot.data().count`, where `snapshot` is the
+`AggregateQuerySnapshot` to which the returned Promise resolves.
+
+***
+
+### getFirestore()
+
+#### Call Signature
+
+> **getFirestore**(): `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L118)
+
+Returns the existing default Firestore instance that is associated with the
+default @firebase/app#FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+##### Returns
+
+`Module`
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getFirestore**(`app`): `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L130)
+
+**`Internal`**
+
+Returns the existing default Firestore instance that is associated with the
+provided @firebase/app#FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app
+
+`FirebaseApp`
+
+The @firebase/app#FirebaseApp instance that the returned Firestore
+instance is associated with.
+
+##### Returns
+
+`Module`
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getFirestore**(`app?`): `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L132)
+
+Returns the existing default Firestore instance that is associated with the
+default @firebase/app#FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+##### Returns
+
+`Module`
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getFirestore**(`app?`, `databaseId?`): `Module`
+
+Defined in: [firestore/lib/modular/index.d.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L144)
+
+Returns the existing default Firestore instance that is associated with the
+provided @firebase/app#FirebaseApp and database ID. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+The @firebase/app#FirebaseApp instance that the returned Firestore
+instance is associated with.
+
+###### databaseId?
+
+`string`
+
+The ID of the Firestore database to use. If not provided, the default database is used.
+
+##### Returns
+
+`Module`
+
+The Firestore
+
+***
+
+### getPersistentCacheIndexManager()
+
+> **getPersistentCacheIndexManager**(`firestore`): `PersistentCacheIndexManager` \| `null`
+
+Defined in: [firestore/lib/modular/index.d.ts:1364](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1364)
+
+Gets the `PersistentCacheIndexManager` instance used by this Cloud Firestore instance.
+This is not the same as Cloud Firestore Indexes.
+Persistent cache indexes are optional indexes that only exist within the SDK to assist in local query execution.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+`PersistentCacheIndexManager` \| `null`
+
+- The `PersistentCacheIndexManager` instance or `null` if local persistent storage is not in use.
+
+***
+
+### initializeFirestore()
+
+> **initializeFirestore**(`app`, `settings`, `databaseId?`): `Promise`\<`Module`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1108)
+
+#### Parameters
+
+##### app
+
+`FirebaseApp`
+
+##### settings
+
+`FirestoreSettings`
+
+##### databaseId?
+
+`string`
+
+#### Returns
+
+`Promise`\<`Module`\>
+
+***
+
+### loadBundle()
+
+> **loadBundle**(`firestore`, `bundleData`): `LoadBundleTask`
+
+Defined in: [firestore/lib/modular/index.d.ts:1323](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1323)
+
+Loads a Firestore bundle into the local cache.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+The Firestore instance to load bundles for.
+
+##### bundleData
+
+An object representing the bundle to be loaded. Valid
+objects are `ArrayBuffer`, `ReadableStream` or `string`.
+
+`string` | `ArrayBuffer` | `ReadableStream`\<`Uint8Array`\<`ArrayBufferLike`\>\>
+
+#### Returns
+
+`LoadBundleTask`
+
+A `LoadBundleTask` object, which notifies callers with progress
+updates, and completion or error events. It can be used as a
+`Promise`.
+
+***
+
+### namedQuery()
+
+> **namedQuery**(`firestore`, `name`): `Promise`\<[`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\> \| `null`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1340](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1340)
+
+Reads a Firestore [Query](#query) from local cache, identified by the given
+name.
+
+The named queries are packaged into bundles on the server side (along
+with resulting documents), and loaded to local cache using `loadBundle`. Once
+in local cache, use this method to extract a [Query](#query) by name.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+The Firestore instance to read the query from.
+
+##### name
+
+`string`
+
+The name of the query.
+
+#### Returns
+
+`Promise`\<[`Query`](#query)\<[`DocumentData`](#documentdata), [`DocumentData`](#documentdata)\> \| `null`\>
+
+A named Query.
+
+***
+
+### refEqual()
+
+> **refEqual**\<`AppModelType`, `DbModelType`\>(`left`, `right`): `boolean`
+
+Defined in: [firestore/lib/modular/index.d.ts:920](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L920)
+
+Returns true if the provided references are equal.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+#### Parameters
+
+##### left
+
+DocumentReference | CollectionReference A reference to compare.
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\> | [`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+##### right
+
+DocumentReference | CollectionReference A reference to compare.
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\> | [`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`boolean`
+
+boolean true if the references point to the same location in the same Firestore database.
+
+***
+
+### runTransaction()
+
+#### Call Signature
+
+> **runTransaction**\<`T`\>(`firestore`, `updateFunction`, `options?`): `Promise`\<`T`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:778](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L778)
+
+Executes the given `updateFunction` and then attempts to commit the changes
+applied within the transaction. If any document read within the transaction
+has changed, Cloud Firestore retries the `updateFunction`. If it fails to
+commit after 5 attempts, the transaction fails.
+
+The maximum number of writes allowed in a single transaction is 500.
+
+##### Type Parameters
+
+###### T
+
+`T`
+
+##### Parameters
+
+###### firestore
+
+`Module`
+
+A reference to the Firestore database to run this
+transaction against.
+
+###### updateFunction
+
+(`transaction`) => `Promise`\<`T`\>
+
+The function to execute within the transaction
+context.
+
+###### options?
+
+`any`
+
+An options object to configure maximum number of attempts to
+commit.
+
+##### Returns
+
+`Promise`\<`T`\>
+
+If the transaction completed successfully or was explicitly aborted
+(the `updateFunction` returned a failed promise), the promise returned by the
+`updateFunction `is returned here. Otherwise, if the transaction failed, a
+rejected promise with the corresponding failure error is returned.
+
+#### Call Signature
+
+> **runTransaction**\<`T`\>(`firestore`, `updateFunction`): `Promise`\<`T`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1145](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1145)
+
+Executes the given `updateFunction` and then attempts to commit the changes
+applied within the transaction. If any document read within the transaction
+has changed, Cloud Firestore retries the `updateFunction`. If it fails to
+commit after 5 attempts, the transaction fails.
+
+The maximum number of writes allowed in a single transaction is 500.
+
+##### Type Parameters
+
+###### T
+
+`T`
+
+##### Parameters
+
+###### firestore
+
+`Module`
+
+A reference to the Firestore database to run this
+transaction against.
+
+###### updateFunction
+
+(`transaction`) => `Promise`\<`T`\>
+
+The function to execute within the transaction
+context.
+
+##### Returns
+
+`Promise`\<`T`\>
+
+If the transaction completed successfully or was explicitly aborted
+(the `updateFunction` returned a failed promise), the promise returned by the
+`updateFunction `is returned here. Otherwise, if the transaction failed, a
+rejected promise with the corresponding failure error is returned.
+
+***
+
+### setDoc()
+
+#### Call Signature
+
+> **setDoc**\<`AppModelType`, `DbModelType`\>(`reference`, `data`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:954](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L954)
+
+Writes to the document referred to by this `DocumentReference`. If the
+document does not yet exist, it will be created.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to write.
+
+###### data
+
+[`WithFieldValue`](#withfieldvalue)\<`AppModelType`\>
+
+A map of the fields and values for the document.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` resolved once the data has been successfully written
+to the backend (note that it won't resolve while you're offline).
+
+#### Call Signature
+
+> **setDoc**\<`AppModelType`, `DbModelType`\>(`reference`, `data`, `options`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:970](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L970)
+
+Writes to the document referred to by the specified `DocumentReference`. If
+the document does not yet exist, it will be created. If you provide `merge`
+or `mergeFields`, the provided data can be merged into an existing document.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to write.
+
+###### data
+
+[`PartialWithFieldValue`](#partialwithfieldvalue)\<`AppModelType`\>
+
+A map of the fields and values for the document.
+
+###### options
+
+`SetOptions`
+
+An object to configure the set behavior.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+A Promise resolved once the data has been successfully written
+to the backend (note that it won't resolve while you're offline).
+
+***
+
+### setLogLevel()
+
+> **setLogLevel**(`logLevel`): `void`
+
+Defined in: [firestore/lib/modular/index.d.ts:1126](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1126)
+
+Sets the verbosity of Cloud Firestore logs (debug, error, or silent).
+
+#### Parameters
+
+##### logLevel
+
+`LogLevel`
+
+The verbosity you set for activity and error logging.
+
+#### Returns
+
+`void`
+
+***
+
+### sum()
+
+> **sum**(`field`): [`AggregateField`](#aggregatefield)\<`number`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1266](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1266)
+
+Create an AggregateField object that can be used to compute the sum of
+a specified field over a range of documents in the result set of a query.
+
+#### Parameters
+
+##### field
+
+Specifies the field to sum across the result set.
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath)
+
+#### Returns
+
+[`AggregateField`](#aggregatefield)\<`number`\>
+
+***
+
+### terminate()
+
+> **terminate**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1081](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1081)
+
+Terminates the provided Firestore instance.
+
+To restart after termination, create a new instance of FirebaseFirestore with
+(getFirestore:1).
+
+Termination does not cancel any pending writes, and any promises that are
+awaiting a response from the server will not be resolved. If you have
+persistence enabled, the next time you start this instance, it will resume
+sending these writes to the server.
+
+Note: Under normal circumstances, calling `terminate()` is not required. This
+function is useful only when you want to force this instance to release all
+of its resources or in combination with `clearIndexedDbPersistence()` to
+ensure that all local state is destroyed between test runs.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` that is resolved when the instance has been successfully
+terminated.
+
+***
+
+### updateDoc()
+
+#### Call Signature
+
+> **updateDoc**\<`AppModelType`, `DbModelType`\>(`reference`, `data`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:987](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L987)
+
+Updates fields in the document referred to by the specified
+`DocumentReference`. The update will fail if applied to a document that does
+not exist.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to update.
+
+###### data
+
+[`UpdateData`](#updatedata)\<`DbModelType`\>
+
+An object containing the fields and values with which to
+update the document. Fields can contain dots to reference nested fields
+within the document.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` resolved once the data has been successfully written
+to the backend (note that it won't resolve while you're offline).
+
+#### Call Signature
+
+> **updateDoc**\<`AppModelType`, `DbModelType`\>(`reference`, `field`, `value`, ...`moreFieldsAndValues`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1006](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1006)
+
+Updates fields in the document referred to by the specified
+`DocumentReference` The update will fail if applied to a document that does
+not exist.
+
+Nested fields can be updated by providing dot-separated field path
+strings or by providing `FieldPath` objects.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to update.
+
+###### field
+
+The first field to update.
+
+`string` | [`FieldPath`](modular/FieldPath.mdx#fieldpath)
+
+###### value
+
+`unknown`
+
+The first value.
+
+###### moreFieldsAndValues
+
+...`unknown`[]
+
+Additional key value pairs.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` resolved once the data has been successfully written
+to the backend (note that it won't resolve while you're offline).
+
+***
+
+### waitForPendingWrites()
+
+> **waitForPendingWrites**(`firestore`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/index.d.ts:1099](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1099)
+
+Waits until all currently pending writes for the active user have been
+acknowledged by the backend.
+
+The returned promise resolves immediately if there are no outstanding writes.
+Otherwise, the promise waits for all previously issued writes (including
+those written in a previous app session), but it does not wait for writes
+that were added after the function is called. If you want to wait for
+additional writes, call `waitForPendingWrites()` again.
+
+Any outstanding `waitForPendingWrites()` promises are rejected during user
+changes.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A `Promise` which resolves when all currently pending writes have been
+acknowledged by the backend.
+
+***
+
+### writeBatch()
+
+> **writeBatch**(`firestore`): [`WriteBatch`](#writebatch)
+
+Defined in: [firestore/lib/modular/index.d.ts:1355](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L1355)
+
+Creates a write batch, used for performing multiple writes as a single
+atomic operation. The maximum number of writes allowed in a single WriteBatch
+is 500.
+
+The result of these writes will only be reflected in document reads that
+occur after the returned promise resolves. If the client is offline, the
+write fails. If you would like to see local modifications or buffer writes
+until the client is online, use the full Firestore SDK.
+
+#### Parameters
+
+##### firestore
+
+`Module`
+
+#### Returns
+
+[`WriteBatch`](#writebatch)
+
+A `WriteBatch` that can be used to atomically execute multiple
+writes.
+
+## References
+
+### and
+
+Re-exports [and](modular/query-1.mdx#and)
+
+***
+
+### AppliableConstraint
+
+Re-exports [AppliableConstraint](modular/query-1.mdx#abstract-appliableconstraint)
+
+***
+
+### arrayRemove
+
+Re-exports [arrayRemove](modular/FieldValue.mdx#arrayremove)
+
+***
+
+### arrayUnion
+
+Re-exports [arrayUnion](modular/FieldValue.mdx#arrayunion)
+
+***
+
+### Bytes
+
+Re-exports [Bytes](modular/Bytes.mdx#bytes)
+
+***
+
+### deleteDoc
+
+Re-exports [deleteDoc](modular/query-1.mdx#deletedoc)
+
+***
+
+### deleteField
+
+Re-exports [deleteField](modular/FieldValue.mdx#deletefield)
+
+***
+
+### documentId
+
+Re-exports [documentId](modular/FieldPath.mdx#documentid)
+
+***
+
+### DocumentSnapshot
+
+Re-exports [DocumentSnapshot](modular/snapshot.mdx#documentsnapshot)
+
+***
+
+### endAt
+
+Re-exports [endAt](modular/query-1.mdx#endat)
+
+***
+
+### endBefore
+
+Re-exports [endBefore](modular/query-1.mdx#endbefore)
+
+***
+
+### FieldPath
+
+Re-exports [FieldPath](modular/FieldPath.mdx#fieldpath)
+
+***
+
+### FieldValue
+
+Re-exports [FieldValue](modular/FieldValue.mdx#fieldvalue)
+
+***
+
+### FirestoreError
+
+Re-exports [FirestoreError](modular/snapshot.mdx#firestoreerror)
+
+***
+
+### GeoPoint
+
+Re-exports [GeoPoint](modular/GeoPoint.mdx#geopoint)
+
+***
+
+### getDoc
+
+Re-exports [getDoc](modular/query-1.mdx#getdoc)
+
+***
+
+### getDocFromCache
+
+Re-exports [getDocFromCache](modular/query-1.mdx#getdocfromcache)
+
+***
+
+### getDocFromServer
+
+Re-exports [getDocFromServer](modular/query-1.mdx#getdocfromserver)
+
+***
+
+### getDocs
+
+Re-exports [getDocs](modular/query-1.mdx#getdocs)
+
+***
+
+### getDocsFromCache
+
+Re-exports [getDocsFromCache](modular/query-1.mdx#getdocsfromcache)
+
+***
+
+### getDocsFromServer
+
+Re-exports [getDocsFromServer](modular/query-1.mdx#getdocsfromserver)
+
+***
+
+### increment
+
+Re-exports [increment](modular/FieldValue.mdx#increment)
+
+***
+
+### limit
+
+Re-exports [limit](modular/query-1.mdx#limit)
+
+***
+
+### limitToLast
+
+Re-exports [limitToLast](modular/query-1.mdx#limittolast)
+
+***
+
+### onSnapshot
+
+Re-exports [onSnapshot](modular/snapshot.mdx#onsnapshot)
+
+***
+
+### onSnapshotsInSync
+
+Re-exports [onSnapshotsInSync](modular/snapshot.mdx#onsnapshotsinsync)
+
+***
+
+### or
+
+Re-exports [or](modular/query-1.mdx#or)
+
+***
+
+### orderBy
+
+Re-exports [orderBy](modular/query-1.mdx#orderby)
+
+***
+
+### OrderByDirection
+
+Re-exports [OrderByDirection](modular/query-1.mdx#orderbydirection)
+
+***
+
+### query
+
+Re-exports [query](modular/query-1.mdx#query)
+
+***
+
+### QueryConstraint
+
+Re-exports [QueryConstraint](modular/query-1.mdx#abstract-queryconstraint)
+
+***
+
+### QueryConstraintType
+
+Re-exports [QueryConstraintType](modular/query-1.mdx#queryconstrainttype-1)
+
+***
+
+### QueryDocumentSnapshot
+
+Re-exports [QueryDocumentSnapshot](modular/snapshot.mdx#querydocumentsnapshot)
+
+***
+
+### QueryEndAtConstraint
+
+Re-exports [QueryEndAtConstraint](modular/query-1.mdx#queryendatconstraint)
+
+***
+
+### queryEqual
+
+Re-exports [queryEqual](modular/snapshot.mdx#queryequal)
+
+***
+
+### QueryFieldFilterConstraint
+
+Re-exports [QueryFieldFilterConstraint](modular/query-1.mdx#queryfieldfilterconstraint)
+
+***
+
+### QueryLimitConstraint
+
+Re-exports [QueryLimitConstraint](modular/query-1.mdx#querylimitconstraint)
+
+***
+
+### QueryNonFilterConstraint
+
+Re-exports [QueryNonFilterConstraint](modular/query-1.mdx#querynonfilterconstraint)
+
+***
+
+### QueryOrderByConstraint
+
+Re-exports [QueryOrderByConstraint](modular/query-1.mdx#queryorderbyconstraint)
+
+***
+
+### QuerySnapshot
+
+Re-exports [QuerySnapshot](modular/snapshot.mdx#querysnapshot)
+
+***
+
+### QueryStartAtConstraint
+
+Re-exports [QueryStartAtConstraint](modular/query-1.mdx#querystartatconstraint)
+
+***
+
+### serverTimestamp
+
+Re-exports [serverTimestamp](modular/FieldValue.mdx#servertimestamp)
+
+***
+
+### snapshotEqual
+
+Re-exports [snapshotEqual](modular/snapshot.mdx#snapshotequal)
+
+***
+
+### startAfter
+
+Re-exports [startAfter](modular/query-1.mdx#startafter)
+
+***
+
+### startAt
+
+Re-exports [startAt](modular/query-1.mdx#startat)
+
+***
+
+### Timestamp
+
+Re-exports [Timestamp](modular/Timestamp.mdx#timestamp)
+
+***
+
+### Unsubscribe
+
+Re-exports [Unsubscribe](modular/snapshot.mdx#unsubscribe)
+
+***
+
+### vector
+
+Re-exports [vector](modular/VectorValue.mdx#vector)
+
+***
+
+### VectorValue
+
+Re-exports [VectorValue](modular/VectorValue.mdx#vectorvalue)
+
+***
+
+### where
+
+Re-exports [where](modular/query-1.mdx#where)
diff --git a/docs/reference/firestore/lib/modular/Bytes.mdx b/docs/reference/firestore/lib/modular/Bytes.mdx
new file mode 100644
index 0000000000..91f3f2ebba
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/Bytes.mdx
@@ -0,0 +1,101 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/Bytes
+
+# firestore/lib/modular/Bytes
+
+## Classes
+
+### Bytes
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:1](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L1)
+
+#### Extends
+
+- `any`
+
+#### Constructors
+
+##### Constructor
+
+> **new Bytes**(): [`Bytes`](#bytes)
+
+###### Returns
+
+[`Bytes`](#bytes)
+
+###### Inherited from
+
+`FirestoreBlob.constructor`
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L10)
+
+###### Parameters
+
+###### other
+
+[`Bytes`](#bytes)
+
+###### Returns
+
+`boolean`
+
+##### toBase64()
+
+> **toBase64**(): `string`
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:6](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L6)
+
+###### Returns
+
+`string`
+
+##### toUint8Array()
+
+> **toUint8Array**(): `Uint8Array`
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:8](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L8)
+
+###### Returns
+
+`Uint8Array`
+
+##### fromBase64String()
+
+> `static` **fromBase64String**(`base64`): [`Bytes`](#bytes)
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:2](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L2)
+
+###### Parameters
+
+###### base64
+
+`string`
+
+###### Returns
+
+[`Bytes`](#bytes)
+
+##### fromUint8Array()
+
+> `static` **fromUint8Array**(`array`): [`Bytes`](#bytes)
+
+Defined in: [firestore/lib/modular/Bytes.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Bytes.d.ts#L4)
+
+###### Parameters
+
+###### array
+
+`Uint8Array`
+
+###### Returns
+
+[`Bytes`](#bytes)
diff --git a/docs/reference/firestore/lib/modular/FieldPath.mdx b/docs/reference/firestore/lib/modular/FieldPath.mdx
new file mode 100644
index 0000000000..f626926b6f
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/FieldPath.mdx
@@ -0,0 +1,71 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/FieldPath
+
+# firestore/lib/modular/FieldPath
+
+## Classes
+
+### FieldPath
+
+Defined in: [firestore/lib/modular/FieldPath.d.ts:9](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldPath.d.ts#L9)
+
+A `FieldPath` refers to a field in a document. The path may consist of a
+single field name (referring to a top-level field in the document), or a
+list of field names (referring to a nested field in the document).
+
+Create a `FieldPath` by providing field names. If more than one field
+name is provided, the path will point to a nested field in a document.
+
+#### Constructors
+
+##### Constructor
+
+> **new FieldPath**(...`fieldNames`): [`FieldPath`](#fieldpath)
+
+Defined in: [firestore/lib/modular/FieldPath.d.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldPath.d.ts#L10)
+
+###### Parameters
+
+###### fieldNames
+
+...`string`[]
+
+###### Returns
+
+[`FieldPath`](#fieldpath)
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/FieldPath.d.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldPath.d.ts#L12)
+
+###### Parameters
+
+###### other
+
+[`FieldPath`](#fieldpath)
+
+###### Returns
+
+`boolean`
+
+## Functions
+
+### documentId()
+
+> **documentId**(): [`FieldPath`](#fieldpath)
+
+Defined in: [firestore/lib/modular/FieldPath.d.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldPath.d.ts#L20)
+
+Returns a special sentinel FieldPath to refer to the ID of a document
+It can be used in queries to sort or filter by the document ID
+
+#### Returns
+
+[`FieldPath`](#fieldpath)
diff --git a/docs/reference/firestore/lib/modular/FieldValue.mdx b/docs/reference/firestore/lib/modular/FieldValue.mdx
new file mode 100644
index 0000000000..c975ddaca9
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/FieldValue.mdx
@@ -0,0 +1,167 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/FieldValue
+
+# firestore/lib/modular/FieldValue
+
+## Classes
+
+### FieldValue
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:5](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L5)
+
+Sentinel values that can be used when writing document fields with `set()`
+or `update()`.
+
+#### Constructors
+
+##### Constructor
+
+> **new FieldValue**(): [`FieldValue`](#fieldvalue)
+
+###### Returns
+
+[`FieldValue`](#fieldvalue)
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:6](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L6)
+
+###### Parameters
+
+###### other
+
+[`FieldValue`](#fieldvalue)
+
+###### Returns
+
+`boolean`
+
+## Functions
+
+### arrayRemove()
+
+> **arrayRemove**(...`elements`): [`FieldValue`](#fieldvalue)
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L46)
+
+Returns a special value that can be used with (setDoc:1) or updateDoc:1 that tells the server to remove the given elements from any
+array value that already exists on the server. All instances of each element
+specified will be removed from the array. If the field being modified is not
+already an array it will be overwritten with an empty array.
+
+#### Parameters
+
+##### elements
+
+...`unknown`[]
+
+The elements to remove from the array.
+
+#### Returns
+
+[`FieldValue`](#fieldvalue)
+
+The `FieldValue` sentinel for use in a call to `setDoc()` or
+`updateDoc()`
+
+***
+
+### arrayUnion()
+
+> **arrayUnion**(...`elements`): [`FieldValue`](#fieldvalue)
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L33)
+
+Returns a special value that can be used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) that tells the server to union the given elements with any array
+value that already exists on the server. Each specified element that doesn't
+already exist in the array will be added to the end. If the field being
+modified is not already an array it will be overwritten with an array
+containing exactly the specified elements.
+
+#### Parameters
+
+##### elements
+
+...`unknown`[]
+
+The elements to union into the array.
+
+#### Returns
+
+[`FieldValue`](#fieldvalue)
+
+The `FieldValue` sentinel for use in a call to `setDoc()` or
+`updateDoc()`.
+
+***
+
+### deleteField()
+
+> **deleteField**(): [`FieldValue`](#fieldvalue)
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L13)
+
+Returns a sentinel for use with @firebase/firestore#(updateDoc:1) or
+@firebase/firestore/lite#(setDoc:1) with `{merge: true}` to mark a field for deletion.
+
+#### Returns
+
+[`FieldValue`](#fieldvalue)
+
+***
+
+### increment()
+
+> **increment**(`n`): [`FieldValue`](#fieldvalue)
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L67)
+
+Returns a special value that can be used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) that tells the server to increment the field's current value by
+the given value.
+
+If either the operand or the current field value uses floating point
+precision, all arithmetic follows IEEE 754 semantics. If both values are
+integers, values outside of JavaScript's safe number range
+(`Number.MIN_SAFE_INTEGER` to `Number.MAX_SAFE_INTEGER`) are also subject to
+precision loss. Furthermore, once processed by the Firestore backend, all
+integer operations are capped between -2^63 and 2^63-1.
+
+If the current field value is not of type `number`, or if the field does not
+yet exist, the transformation sets the field to the given value.
+
+#### Parameters
+
+##### n
+
+`number`
+
+The value to increment by.
+
+#### Returns
+
+[`FieldValue`](#fieldvalue)
+
+The `FieldValue` sentinel for use in a call to `setDoc()` or
+`updateDoc()`
+
+***
+
+### serverTimestamp()
+
+> **serverTimestamp**(): [`FieldValue`](#fieldvalue)
+
+Defined in: [firestore/lib/modular/FieldValue.d.ts:19](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L19)
+
+Returns a sentinel used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) to
+include a server-generated timestamp in the written data.
+
+#### Returns
+
+[`FieldValue`](#fieldvalue)
diff --git a/docs/reference/firestore/lib/modular/GeoPoint.mdx b/docs/reference/firestore/lib/modular/GeoPoint.mdx
new file mode 100644
index 0000000000..25f6465234
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/GeoPoint.mdx
@@ -0,0 +1,91 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/GeoPoint
+
+# firestore/lib/modular/GeoPoint
+
+## Classes
+
+### GeoPoint
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:8](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L8)
+
+An immutable object representing a geographic location in Firestore. The
+location is represented as latitude/longitude pair.
+
+Latitude values are in the range of [-90, 90].
+Longitude values are in the range of [-180, 180].
+
+#### Constructors
+
+##### Constructor
+
+> **new GeoPoint**(`latitude`, `longitude`): [`GeoPoint`](#geopoint)
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L12)
+
+###### Parameters
+
+###### latitude
+
+`number`
+
+###### longitude
+
+`number`
+
+###### Returns
+
+[`GeoPoint`](#geopoint)
+
+#### Properties
+
+##### latitude
+
+> `readonly` **latitude**: `number`
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:9](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L9)
+
+##### longitude
+
+> `readonly` **longitude**: `number`
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:10](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L10)
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:14](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L14)
+
+###### Parameters
+
+###### other
+
+[`GeoPoint`](#geopoint)
+
+###### Returns
+
+`boolean`
+
+##### toJSON()
+
+> **toJSON**(): `object`
+
+Defined in: [firestore/lib/modular/GeoPoint.d.ts:16](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/GeoPoint.d.ts#L16)
+
+###### Returns
+
+`object`
+
+###### latitude
+
+> **latitude**: `number`
+
+###### longitude
+
+> **longitude**: `number`
diff --git a/docs/reference/firestore/lib/modular/Timestamp.mdx b/docs/reference/firestore/lib/modular/Timestamp.mdx
new file mode 100644
index 0000000000..708db11198
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/Timestamp.mdx
@@ -0,0 +1,225 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/Timestamp
+
+# firestore/lib/modular/Timestamp
+
+## Classes
+
+### Timestamp
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:15](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L15)
+
+A `Timestamp` represents a point in time independent of any time zone or
+calendar, represented as seconds and fractions of seconds at nanosecond
+resolution in UTC Epoch time.
+
+It is encoded using the Proleptic Gregorian Calendar which extends the
+Gregorian calendar backwards to year one. It is encoded assuming all minutes
+are 60 seconds long, i.e. leap seconds are "smeared" so that no leap second
+table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to
+9999-12-31T23:59:59.999999999Z.
+
+For examples and further specifications, refer to the
+[Timestamp definition](https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto).
+
+#### Constructors
+
+##### Constructor
+
+> **new Timestamp**(`seconds`, `nanoseconds`): [`Timestamp`](#timestamp)
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:19](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L19)
+
+###### Parameters
+
+###### seconds
+
+`number`
+
+###### nanoseconds
+
+`number`
+
+###### Returns
+
+[`Timestamp`](#timestamp)
+
+#### Properties
+
+##### nanoseconds
+
+> `readonly` **nanoseconds**: `number`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:17](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L17)
+
+##### seconds
+
+> `readonly` **seconds**: `number`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:16](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L16)
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L72)
+
+Returns true if this `Timestamp` is equal to the provided one.
+
+###### Parameters
+
+###### other
+
+[`Timestamp`](#timestamp)
+
+The `Timestamp` to compare against.
+
+###### Returns
+
+`boolean`
+
+true if this `Timestamp` is equal to the provided one.
+
+##### toDate()
+
+> **toDate**(): `Date`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L55)
+
+Converts a `Timestamp` to a JavaScript `Date` object. This conversion
+causes a loss of precision since `Date` objects only support millisecond
+precision.
+
+###### Returns
+
+`Date`
+
+JavaScript `Date` object representing the same point in time as
+ this `Timestamp`, with millisecond precision.
+
+##### toJSON()
+
+> **toJSON**(): `object`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L75)
+
+Returns a JSON-serializable representation of this `Timestamp`.
+
+###### Returns
+
+`object`
+
+###### nanoseconds
+
+> **nanoseconds**: `number`
+
+###### seconds
+
+> **seconds**: `number`
+
+##### toMillis()
+
+> **toMillis**(): `number`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L64)
+
+Converts a `Timestamp` to a numeric timestamp (in milliseconds since
+epoch). This operation causes a loss of precision.
+
+###### Returns
+
+`number`
+
+The point in time corresponding to this timestamp, represented as
+ the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.
+
+##### toString()
+
+> **toString**(): `string`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L78)
+
+Returns a textual representation of this `Timestamp`.
+
+###### Returns
+
+`string`
+
+##### valueOf()
+
+> **valueOf**(): `string`
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:84](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L84)
+
+Converts this object to a primitive string, which allows `Timestamp` objects
+to be compared using the `>`, `<=`, `>=` and `>` operators.
+
+###### Returns
+
+`string`
+
+##### fromDate()
+
+> `static` **fromDate**(`date`): [`Timestamp`](#timestamp)
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L35)
+
+Creates a new timestamp from the given date.
+
+###### Parameters
+
+###### date
+
+`Date`
+
+The date to initialize the `Timestamp` from.
+
+###### Returns
+
+[`Timestamp`](#timestamp)
+
+A new `Timestamp` representing the same point in time as the given
+ date.
+
+##### fromMillis()
+
+> `static` **fromMillis**(`milliseconds`): [`Timestamp`](#timestamp)
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L45)
+
+Creates a new timestamp from the given number of milliseconds.
+
+###### Parameters
+
+###### milliseconds
+
+`number`
+
+Number of milliseconds since Unix epoch
+ 1970-01-01T00:00:00Z.
+
+###### Returns
+
+[`Timestamp`](#timestamp)
+
+A new `Timestamp` representing the same point in time as the given
+ number of milliseconds.
+
+##### now()
+
+> `static` **now**(): [`Timestamp`](#timestamp)
+
+Defined in: [firestore/lib/modular/Timestamp.d.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/Timestamp.d.ts#L26)
+
+Creates a new timestamp with the current date, with millisecond precision.
+
+###### Returns
+
+[`Timestamp`](#timestamp)
+
+a new timestamp representing the current date.
diff --git a/docs/reference/firestore/lib/modular/VectorValue.mdx b/docs/reference/firestore/lib/modular/VectorValue.mdx
new file mode 100644
index 0000000000..16cae7dee5
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/VectorValue.mdx
@@ -0,0 +1,111 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/VectorValue
+
+# firestore/lib/modular/VectorValue
+
+## Classes
+
+### VectorValue
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L4)
+
+Represents a vector type in Firestore documents. Create an instance with vector().
+
+#### Constructors
+
+##### Constructor
+
+> **new VectorValue**(): [`VectorValue`](#vectorvalue)
+
+###### Returns
+
+[`VectorValue`](#vectorvalue)
+
+#### Methods
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:17](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L17)
+
+Returns true if the two VectorValue values have the same raw number arrays, returns false otherwise.
+
+###### Parameters
+
+###### other
+
+[`VectorValue`](#vectorvalue)
+
+###### Returns
+
+`boolean`
+
+##### toArray()
+
+> **toArray**(): `number`[]
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:22](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L22)
+
+Returns a copy of the raw number array form of the vector.
+
+###### Returns
+
+`number`[]
+
+##### toJSON()
+
+> **toJSON**(): `object`
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L27)
+
+Returns a JSON-serializable representation of this VectorValue instance.
+
+###### Returns
+
+`object`
+
+###### values
+
+> **values**: `number`[]
+
+##### fromJSON()
+
+> `static` **fromJSON**(`json`): [`VectorValue`](#vectorvalue)
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L12)
+
+Builds a VectorValue instance from a JSON object created by VectorValue.toJSON().
+
+###### Parameters
+
+###### json
+
+`object`
+
+a JSON object represention of a VectorValue instance.
+
+###### Returns
+
+[`VectorValue`](#vectorvalue)
+
+## Functions
+
+### vector()
+
+> **vector**(`values?`): [`VectorValue`](#vectorvalue)
+
+Defined in: [firestore/lib/modular/VectorValue.d.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L30)
+
+#### Parameters
+
+##### values?
+
+`number`[]
+
+#### Returns
+
+[`VectorValue`](#vectorvalue)
diff --git a/docs/reference/firestore/lib/modular/query-1.mdx b/docs/reference/firestore/lib/modular/query-1.mdx
new file mode 100644
index 0000000000..cbf8af4c9e
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/query-1.mdx
@@ -0,0 +1,1345 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/query
+
+# firestore/lib/modular/query
+
+## Classes
+
+### `abstract` AppliableConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L27)
+
+An `AppliableConstraint` is an abstraction of a constraint that can be applied
+to a Firestore query.
+
+#### Extended by
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new AppliableConstraint**(): [`AppliableConstraint`](#abstract-appliableconstraint)
+
+###### Returns
+
+[`AppliableConstraint`](#abstract-appliableconstraint)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L32)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+***
+
+### `abstract` QueryConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L45)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`AppliableConstraint`](#abstract-appliableconstraint)
+
+#### Extended by
+
+- [`QueryOrderByConstraint`](#queryorderbyconstraint)
+- [`QueryLimitConstraint`](#querylimitconstraint)
+- [`QueryStartAtConstraint`](#querystartatconstraint)
+- [`QueryEndAtConstraint`](#queryendatconstraint)
+- [`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryConstraint**(): [`QueryConstraint`](#abstract-queryconstraint)
+
+###### Returns
+
+[`QueryConstraint`](#abstract-queryconstraint)
+
+###### Inherited from
+
+[`AppliableConstraint`](#abstract-appliableconstraint).[`constructor`](#constructor)
+
+#### Properties
+
+##### type
+
+> `abstract` `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1)
+
+Defined in: [firestore/lib/modular/query.d.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L47)
+
+The type of this query constraint
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Overrides
+
+[`AppliableConstraint`](#abstract-appliableconstraint).[`_apply`](#_apply)
+
+***
+
+### QueryEndAtConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L70)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryEndAtConstraint**(): [`QueryEndAtConstraint`](#queryendatconstraint)
+
+###### Returns
+
+[`QueryEndAtConstraint`](#queryendatconstraint)
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1) = `'endAt'`
+
+Defined in: [firestore/lib/modular/query.d.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L71)
+
+The type of this query constraint
+
+###### Overrides
+
+[`QueryConstraint`](#abstract-queryconstraint).[`type`](#type)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`_apply`](#_apply-1)
+
+***
+
+### QueryFieldFilterConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L74)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryFieldFilterConstraint**(): [`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
+
+###### Returns
+
+[`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1) = `'where'`
+
+Defined in: [firestore/lib/modular/query.d.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L75)
+
+The type of this query constraint
+
+###### Overrides
+
+[`QueryConstraint`](#abstract-queryconstraint).[`type`](#type)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`_apply`](#_apply-1)
+
+***
+
+### QueryLimitConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L62)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryLimitConstraint**(): [`QueryLimitConstraint`](#querylimitconstraint)
+
+###### Returns
+
+[`QueryLimitConstraint`](#querylimitconstraint)
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1) = `'limit'`
+
+Defined in: [firestore/lib/modular/query.d.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L63)
+
+The type of this query constraint
+
+###### Overrides
+
+[`QueryConstraint`](#abstract-queryconstraint).[`type`](#type)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`_apply`](#_apply-1)
+
+***
+
+### QueryOrderByConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L58)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryOrderByConstraint**(): [`QueryOrderByConstraint`](#queryorderbyconstraint)
+
+###### Returns
+
+[`QueryOrderByConstraint`](#queryorderbyconstraint)
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1) = `'orderBy'`
+
+Defined in: [firestore/lib/modular/query.d.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L59)
+
+The type of this query constraint
+
+###### Overrides
+
+[`QueryConstraint`](#abstract-queryconstraint).[`type`](#type)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`_apply`](#_apply-1)
+
+***
+
+### QueryStartAtConstraint
+
+Defined in: [firestore/lib/modular/query.d.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L66)
+
+A `QueryConstraint` is used to narrow the set of documents returned by a
+Firestore query. `QueryConstraint`s are created by invoking [where](#where),
+[orderBy](#orderby), (startAt:1), (startAfter:1), (endBefore:1), (endAt:1), [limit](#limit), [limitToLast](#limittolast) and
+can then be passed to (query:1) to create a new query instance that
+also contains this `QueryConstraint`.
+
+#### Extends
+
+- [`QueryConstraint`](#abstract-queryconstraint)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryStartAtConstraint**(): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+###### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`constructor`](#constructor-1)
+
+#### Properties
+
+##### type
+
+> `readonly` **type**: [`QueryConstraintType`](#queryconstrainttype-1) = `'startAt'`
+
+Defined in: [firestore/lib/modular/query.d.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L67)
+
+The type of this query constraint
+
+###### Overrides
+
+[`QueryConstraint`](#abstract-queryconstraint).[`type`](#type)
+
+#### Methods
+
+##### \_apply()
+
+> **\_apply**\<`AppModelType`, `DbModelType`\>(`query`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L53)
+
+Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Query](../modular.mdx#query) with this
+[AppliableConstraint](#abstract-appliableconstraint) applied.
+
+###### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+###### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+[`QueryConstraint`](#abstract-queryconstraint).[`_apply`](#_apply-1)
+
+## Type Aliases
+
+### OrderByDirection
+
+> **OrderByDirection** = `"desc"` \| `"asc"`
+
+Defined in: [firestore/lib/modular/query.d.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L161)
+
+The direction of a [orderBy](#orderby) clause is specified as 'desc' or 'asc'
+(descending or ascending).
+
+***
+
+### QueryConstraintType
+
+> **QueryConstraintType** = `"where"` \| `"orderBy"` \| `"limit"` \| `"limitToLast"` \| `"startAt"` \| `"startAfter"` \| `"endAt"` \| `"endBefore"`
+
+Defined in: [firestore/lib/modular/query.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L13)
+
+Describes the different query constraints available in this SDK.
+
+***
+
+### QueryNonFilterConstraint
+
+> **QueryNonFilterConstraint** = [`QueryOrderByConstraint`](#queryorderbyconstraint) \| [`QueryLimitConstraint`](#querylimitconstraint) \| [`QueryStartAtConstraint`](#querystartatconstraint) \| [`QueryEndAtConstraint`](#queryendatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L87)
+
+`QueryNonFilterConstraint` is a helper union type that represents
+QueryConstraints which are used to narrow or order the set of documents,
+but that do not explicitly filter on a document field.
+`QueryNonFilterConstraint`s are created by invoking [orderBy](#orderby),
+(startAt:1), (startAfter:1), (endBefore:1), (endAt:1),
+[limit](#limit) or [limitToLast](#limittolast) and can then be passed to (query:1)
+to create a new query instance that also contains the `QueryConstraint`.
+
+## Functions
+
+### and()
+
+> **and**(...`queries`): `QueryCompositeFilterConstraint`
+
+Defined in: [firestore/lib/modular/query.d.ts:155](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L155)
+
+The and() function used to generate a logical AND query.
+e.g. and(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
+
+#### Parameters
+
+##### queries
+
+...`QueryFilterConstraint`[]
+
+#### Returns
+
+`QueryCompositeFilterConstraint`
+
+***
+
+### deleteDoc()
+
+> **deleteDoc**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<`void`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L321)
+
+Deletes the document referred to by the specified `DocumentReference`.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A Promise resolved once the document has been successfully
+deleted from the backend (note that it won't resolve while you're offline).
+
+***
+
+### endAt()
+
+#### Call Signature
+
+> **endAt**(...`fieldValues`): [`QueryEndAtConstraint`](#queryendatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:331](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L331)
+
+Creates a QueryEndAtConstraint that modifies the result set to end at the provided fields relative to the order of the query.
+The order of the field values must match the order of the order by clauses of the query.
+
+##### Parameters
+
+###### fieldValues
+
+...`unknown`[]
+
+##### Returns
+
+[`QueryEndAtConstraint`](#queryendatconstraint)
+
+#### Call Signature
+
+> **endAt**\<`AppModelType`, `DbModelType`\>(`snapshot`): [`QueryEndAtConstraint`](#queryendatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:338](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L338)
+
+reates a QueryEndAtConstraint that modifies the result set to end at the provided document (inclusive).
+The end position is relative to the order of the query. The document must contain all of the fields provided in the orderBy of the query.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### snapshot
+
+[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>
+
+##### Returns
+
+[`QueryEndAtConstraint`](#queryendatconstraint)
+
+***
+
+### endBefore()
+
+> **endBefore**(...`fieldValues`): [`QueryEndAtConstraint`](#queryendatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:348](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L348)
+
+Creates a QueryEndAtConstraint that modifies the result set to end before the provided fields relative to the order of the query.
+The order of the field values must match the order of the order by clauses of the query.
+
+#### Parameters
+
+##### fieldValues
+
+...`unknown`[]
+
+#### Returns
+
+[`QueryEndAtConstraint`](#queryendatconstraint)
+
+***
+
+### getDoc()
+
+> **getDoc**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L253)
+
+Reads the document referred to by this `DocumentReference`.
+
+Note: `getDoc()` attempts to provide up-to-date data when possible by waiting
+for data from the server, but it may return cached data or fail if you are
+offline and the server cannot be reached. To specify this behavior, invoke
+[getDocFromCache](#getdocfromcache) or [getDocFromServer](#getdocfromserver).
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+The reference of the document to fetch.
+
+#### Returns
+
+`Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+A Promise resolved with a `DocumentSnapshot` containing the
+current document contents.
+
+***
+
+### getDocFromCache()
+
+> **getDocFromCache**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L264)
+
+Reads the document referred to by this `DocumentReference` from cache.
+Returns an error if the document is not currently cached.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` resolved with a `DocumentSnapshot` containing the
+current document contents.
+
+***
+
+### getDocFromServer()
+
+> **getDocFromServer**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L275)
+
+Reads the document referred to by this `DocumentReference` from the server.
+Returns an error if the network is not available.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` resolved with a `DocumentSnapshot` containing the
+current document contents.
+
+***
+
+### getDocs()
+
+> **getDocs**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L289)
+
+Executes the query and returns the results as a `QuerySnapshot`.
+
+Note: `getDocs()` attempts to provide up-to-date data when possible by
+waiting for data from the server, but it may return cached data or fail if
+you are offline and the server cannot be reached. To specify this behavior,
+invoke [getDocsFromCache](#getdocsfromcache) or [getDocsFromServer](#getdocsfromserver).
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` that will be resolved with the results of the query.
+
+***
+
+### getDocsFromCache()
+
+> **getDocsFromCache**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:300](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L300)
+
+Executes the query and returns the results as a `QuerySnapshot` from cache.
+Returns an empty result set if no documents matching the query are currently
+cached.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` that will be resolved with the results of the query.
+
+***
+
+### getDocsFromServer()
+
+> **getDocsFromServer**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+Defined in: [firestore/lib/modular/query.d.ts:310](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L310)
+
+Executes the query and returns the results as a `QuerySnapshot` from the
+server. Returns an error if the network is not available.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
+
+A `Promise` that will be resolved with the results of the query.
+
+***
+
+### limit()
+
+> **limit**(`limit`): [`QueryLimitConstraint`](#querylimitconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L239)
+
+Creates a [QueryLimitConstraint](#querylimitconstraint) that only returns the first matching
+documents.
+
+#### Parameters
+
+##### limit
+
+`number`
+
+The maximum number of items to return.
+
+#### Returns
+
+[`QueryLimitConstraint`](#querylimitconstraint)
+
+The created [QueryLimitConstraint](#querylimitconstraint).
+
+***
+
+### limitToLast()
+
+> **limitToLast**(`limit`): [`QueryConstraint`](#abstract-queryconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:368](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L368)
+
+Creates a new `QueryConstraint` that is limited to return only the last
+specified number of children.
+
+The `limitToLast()` method is used to set a maximum number of children to be
+synced for a given callback. If we set a limit of 100, we will initially only
+receive up to 100 `child_added` events. If we have fewer than 100 messages
+stored in our Database, a `child_added` event will fire for each message.
+However, if we have over 100 messages, we will only receive a `child_added`
+event for the last 100 ordered messages. As items change, we will receive
+`child_removed` events for each item that drops out of the active list so
+that the total number stays at 100.
+
+You can read more about `limitToLast()` in
+[Filtering data](https://firebase.google.com/docs/database/web/lists-of-data#filtering_data).
+
+#### Parameters
+
+##### limit
+
+`number`
+
+The maximum number of nodes to include in this query.
+
+#### Returns
+
+[`QueryConstraint`](#abstract-queryconstraint)
+
+***
+
+### or()
+
+> **or**(...`queries`): `QueryCompositeFilterConstraint`
+
+Defined in: [firestore/lib/modular/query.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L149)
+
+The or() function used to generate a logical OR query.
+e.g. or(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
+
+#### Parameters
+
+##### queries
+
+...`QueryFilterConstraint`[]
+
+#### Returns
+
+`QueryCompositeFilterConstraint`
+
+***
+
+### orderBy()
+
+> **orderBy**(`fieldPath`, `directionStr?`): [`QueryOrderByConstraint`](#queryorderbyconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L175)
+
+Creates a [QueryOrderByConstraint](#queryorderbyconstraint) that sorts the query result by the
+specified field, optionally in descending order instead of ascending.
+
+Note: Documents that do not contain the specified field will not be present
+in the query result.
+
+#### Parameters
+
+##### fieldPath
+
+The field to sort by.
+
+`string` | [`FieldPath`](FieldPath.mdx#fieldpath)
+
+##### directionStr?
+
+[`OrderByDirection`](#orderbydirection) = `'asc'`
+
+Optional direction to sort by ('asc' or 'desc'). If
+not specified, order will be ascending.
+
+#### Returns
+
+[`QueryOrderByConstraint`](#queryorderbyconstraint)
+
+The created [QueryOrderByConstraint](#queryorderbyconstraint).
+
+***
+
+### query()
+
+#### Call Signature
+
+> **query**\<`AppModelType`, `DbModelType`\>(`query`, `compositeFilter`, ...`queryConstraints`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L107)
+
+Creates a new immutable instance of [Query](../modular.mdx#query) that is extended to also
+include additional query constraints.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The [Query](../modular.mdx#query) instance to use as a base for the new
+constraints.
+
+###### compositeFilter
+
+`QueryCompositeFilterConstraint`
+
+The [QueryCompositeFilterConstraint](../modular.mdx#querycompositefilterconstraint) to
+apply. Create [QueryCompositeFilterConstraint](../modular.mdx#querycompositefilterconstraint) using [and](#and) or
+[or](#or).
+
+###### queryConstraints
+
+...[`QueryNonFilterConstraint`](#querynonfilterconstraint)[]
+
+Additional [QueryNonFilterConstraint](#querynonfilterconstraint)s to
+apply (e.g. [orderBy](#orderby), [limit](#limit)).
+
+##### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+##### Throws
+
+if any of the provided query constraints cannot be combined with the
+existing or new constraints.
+
+#### Call Signature
+
+> **query**\<`AppModelType`, `DbModelType`\>(`query`, ...`queryConstraints`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/query.d.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L123)
+
+Creates a new immutable instance of [Query](../modular.mdx#query) that is extended to also
+include additional query constraints.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The [Query](../modular.mdx#query) instance to use as a base for the new
+constraints.
+
+###### queryConstraints
+
+...[`QueryConstraint`](#abstract-queryconstraint)[]
+
+The list of [QueryConstraint](#abstract-queryconstraint)s to apply.
+
+##### Returns
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+##### Throws
+
+if any of the provided query constraints cannot be combined with the
+existing or new constraints.
+
+***
+
+### startAfter()
+
+#### Call Signature
+
+> **startAfter**\<`AppModelType`, `DbModelType`\>(`snapshot`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:213](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L213)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start after the provided document (exclusive). The starting position is
+relative to the order of the query. The document must contain all of the
+fields provided in the orderBy of the query.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### snapshot
+
+[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>
+
+The snapshot of the document to start after.
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+
+#### Call Signature
+
+> **startAfter**(...`fieldValues`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L226)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start after the provided fields relative to the order of the query. The order
+of the field values must match the order of the order by clauses of the query.
+
+##### Parameters
+
+###### fieldValues
+
+...`unknown`[]
+
+The field values to start this query after, in order
+of the query's order by.
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+
+#### Call Signature
+
+> **startAfter**\<`AppModelType`, `DbModelType`\>(...`docOrFields`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L228)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start after the provided document (exclusive). The starting position is
+relative to the order of the query. The document must contain all of the
+fields provided in the orderBy of the query.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### docOrFields
+
+...`unknown`[]
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+
+***
+
+### startAt()
+
+#### Call Signature
+
+> **startAt**(`snapshot`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L189)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start at the provided document (inclusive). The starting position is relative
+to the order of the query. The document must contain all of the fields
+provided in the `orderBy` of this query.
+
+##### Parameters
+
+###### snapshot
+
+[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)
+
+The snapshot of the document to start at.
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+
+#### Call Signature
+
+> **startAt**(...`fieldValues`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L200)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start at the provided fields relative to the order of the query. The order of
+the field values must match the order of the order by clauses of the query.
+
+##### Parameters
+
+###### fieldValues
+
+...`unknown`[]
+
+The field values to start this query at, in order
+of the query's order by.
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+
+#### Call Signature
+
+> **startAt**(...`docOrFields`): [`QueryStartAtConstraint`](#querystartatconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L202)
+
+Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
+start at the provided document (inclusive). The starting position is relative
+to the order of the query. The document must contain all of the fields
+provided in the `orderBy` of this query.
+
+##### Parameters
+
+###### docOrFields
+
+...`unknown`[]
+
+##### Returns
+
+[`QueryStartAtConstraint`](#querystartatconstraint)
+
+A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+
+***
+
+### where()
+
+> **where**(`fieldPath`, `opStr`, `value`): [`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
+
+Defined in: [firestore/lib/modular/query.d.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L139)
+
+Creates a [QueryFieldFilterConstraint](#queryfieldfilterconstraint) that enforces that documents
+must contain the specified field and that the value should satisfy the
+relation constraint provided.
+
+#### Parameters
+
+##### fieldPath
+
+The path to compare
+
+`string` | [`FieldPath`](FieldPath.mdx#fieldpath)
+
+##### opStr
+
+`WhereFilterOp`
+
+The operation string (e.g "<", "<=", "==", "<",
+ "<=", "!=").
+
+##### value
+
+`unknown`
+
+The value for comparison
+
+#### Returns
+
+[`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
+
+The created [QueryFieldFilterConstraint](#queryfieldfilterconstraint).
diff --git a/docs/reference/firestore/lib/modular/snapshot.mdx b/docs/reference/firestore/lib/modular/snapshot.mdx
new file mode 100644
index 0000000000..3fa956aefc
--- /dev/null
+++ b/docs/reference/firestore/lib/modular/snapshot.mdx
@@ -0,0 +1,1007 @@
+[**react-native-firebase**](../../../README.mdx)
+
+***
+
+[react-native-firebase](../../../modules.mdx) / firestore/lib/modular/snapshot
+
+# firestore/lib/modular/snapshot
+
+## Classes
+
+### QueryDocumentSnapshot
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L92)
+
+A QueryDocumentSnapshot contains data read from a document in your Firestore database as part of a query.
+The document is guaranteed to exist and its data can be extracted with .data() or .get(:field) to get a specific field.
+
+A QueryDocumentSnapshot offers the same API surface as a DocumentSnapshot.
+Since query results contain only existing documents, the exists() method will always be true and data() will never return 'undefined'.
+
+#### Extends
+
+- `any`
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](../modular.mdx#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata) = [`DocumentData`](../modular.mdx#documentdata)
+
+#### Constructors
+
+##### Constructor
+
+> **new QueryDocumentSnapshot**\<`AppModelType`, `DbModelType`\>(): [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`AppModelType`, `DbModelType`\>
+
+###### Returns
+
+[`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`AppModelType`, `DbModelType`\>
+
+###### Inherited from
+
+`DocumentSnapshot.constructor`
+
+#### Methods
+
+##### data()
+
+> **data**(): `AppModelType`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L114)
+
+Retrieves all fields in the document as an Object.
+
+#### Example
+
+```js
+const users = await firebase.firestore().collection('users').get();
+
+for (const user of users.docs) {
+ console.log('User', user.data());
+}
+```
+
+###### Returns
+
+`AppModelType`
+
+##### exists()
+
+> **exists**(): `true`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L99)
+
+A QueryDocumentSnapshot is always guaranteed to exist.
+
+###### Returns
+
+`true`
+
+## Interfaces
+
+### DocumentSnapshot
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L13)
+
+A DocumentSnapshot contains data read from a document in your Firestore database. The data can be extracted with
+.`data()` or `.get(:field)` to get a specific field.
+
+For a DocumentSnapshot that points to a non-existing document, any data access will return 'undefined'.
+You can use the `exists()` method to explicitly verify a document's existence.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](../modular.mdx#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata) = [`DocumentData`](../modular.mdx#documentdata)
+
+#### Properties
+
+##### id
+
+> **id**: `string`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L25)
+
+Property of the `DocumentSnapshot` that provides the document's ID.
+
+##### metadata
+
+> **metadata**: `SnapshotMetadata`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L30)
+
+Metadata about the `DocumentSnapshot`, including information about its source and local modifications.
+
+##### ref
+
+> **ref**: [`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L35)
+
+The `DocumentReference` for the document included in the `DocumentSnapshot`.
+
+#### Methods
+
+##### data()
+
+> **data**(): `AppModelType` \| `undefined`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L48)
+
+Retrieves all fields in the document as an Object. Returns 'undefined' if the document doesn't exist.
+
+#### Example
+
+```js
+const user = await firebase.firestore().doc('users/alovelace').get();
+
+console.log('User', user.data());
+```
+
+###### Returns
+
+`AppModelType` \| `undefined`
+
+##### exists()
+
+> **exists**(): `this is QueryDocumentSnapshot`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L20)
+
+Method of the `DocumentSnapshot` that signals whether or not the data exists. True if the document exists.
+
+###### Returns
+
+`this is QueryDocumentSnapshot`
+
+##### get()
+
+> **get**\<`fieldType`\>(`fieldPath`): `fieldType`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L63)
+
+Retrieves the field specified by fieldPath. Returns undefined if the document or field doesn't exist.
+
+#### Example
+
+```js
+const user = await firebase.firestore().doc('users/alovelace').get();
+
+console.log('Address ZIP Code', user.get('address.zip'));
+```
+
+###### Type Parameters
+
+###### fieldType
+
+`fieldType` *extends* `any`
+
+###### Parameters
+
+###### fieldPath
+
+`any`
+
+The path (e.g. 'foo' or 'foo.bar') to a specific field.
+
+###### Returns
+
+`fieldType`
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L82)
+
+Returns true if this `DocumentSnapshot` is equal to the provided one.
+
+#### Example
+
+```js
+const user1 = await firebase.firestore().doc('users/alovelace').get();
+const user2 = await firebase.firestore().doc('users/dsmith').get();
+
+// false
+user1.isEqual(user2);
+```
+
+###### Parameters
+
+###### other
+
+[`DocumentSnapshot`](#documentsnapshot)
+
+The `DocumentSnapshot` to compare against.
+
+###### Returns
+
+`boolean`
+
+***
+
+### QuerySnapshot
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L122)
+
+A `QuerySnapshot` contains zero or more `QueryDocumentSnapshot` objects representing the results of a query. The documents
+can be accessed as an array via the `docs` property or enumerated using the `forEach` method. The number of documents
+can be determined via the `empty` and `size` properties.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType` = [`DocumentData`](../modular.mdx#documentdata)
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata) = [`DocumentData`](../modular.mdx#documentdata)
+
+#### Properties
+
+##### docs
+
+> **docs**: [`QueryDocumentSnapshot`](#querydocumentsnapshot)\<`AppModelType`, `DbModelType`\>[]
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L129)
+
+An array of all the documents in the `QuerySnapshot`.
+
+##### empty
+
+> **empty**: `boolean`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L134)
+
+True if there are no documents in the `QuerySnapshot`.
+
+##### metadata
+
+> **metadata**: `SnapshotMetadata`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L139)
+
+Metadata about this snapshot, concerning its source and if it has local modifications.
+
+##### query
+
+> **query**: [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L144)
+
+The query on which you called get or `onSnapshot` in order to `get` this `QuerySnapshot`.
+
+##### size
+
+> **size**: `number`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L149)
+
+The number of documents in the `QuerySnapshot`.
+
+#### Methods
+
+##### forEach()
+
+> **forEach**(`callback`, `thisArg?`): `void`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L168)
+
+Enumerates all of the documents in the `QuerySnapshot`.
+
+#### Example
+
+```js
+const querySnapshot = await firebase.firestore().collection('users').get();
+
+querySnapshot.forEach((queryDocumentSnapshot) => {
+ console.log('User', queryDocumentSnapshot.data());
+})
+```
+
+###### Parameters
+
+###### callback
+
+(`result`, `index`) => `void`
+
+A callback to be called with a `QueryDocumentSnapshot` for each document in the snapshot.
+
+###### thisArg?
+
+`any`
+
+The `this` binding for the callback.
+
+###### Returns
+
+`void`
+
+##### isEqual()
+
+> **isEqual**(`other`): `boolean`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L190)
+
+Returns true if this `QuerySnapshot` is equal to the provided one.
+
+#### Example
+
+```js
+const querySnapshot1 = await firebase.firestore().collection('users').limit(5).get();
+const querySnapshot2 = await firebase.firestore().collection('users').limit(10).get();
+
+// false
+querySnapshot1.isEqual(querySnapshot2);
+```
+
+> This operation can be resource intensive when dealing with large datasets.
+
+###### Parameters
+
+###### other
+
+[`QuerySnapshot`](#querysnapshot)
+
+The `QuerySnapshot` to compare against.
+
+###### Returns
+
+`boolean`
+
+## Type Aliases
+
+### FirestoreError
+
+> **FirestoreError** = `Error`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L4)
+
+***
+
+### Unsubscribe()
+
+> **Unsubscribe** = () => `void`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:3](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L3)
+
+#### Returns
+
+`void`
+
+## Functions
+
+### onSnapshot()
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`reference`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:206](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L206)
+
+Attaches a listener for `DocumentSnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to listen to.
+
+###### observer
+
+A single object containing `next` and `error` callbacks.
+
+###### complete?
+
+() => `void`
+
+###### error?
+
+(`error`) => `void`
+
+###### next?
+
+(`snapshot`) => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`reference`, `options`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L228)
+
+Attaches a listener for `DocumentSnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to listen to.
+
+###### options
+
+`SnapshotListenOptions`
+
+Options controlling the listen behavior.
+
+###### observer
+
+A single object containing `next` and `error` callbacks.
+
+###### complete?
+
+() => `void`
+
+###### error?
+
+(`error`) => `void`
+
+###### next?
+
+(`snapshot`) => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`reference`, `onNext`, `onError?`, `onCompletion?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:255](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L255)
+
+Attaches a listener for `DocumentSnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to listen to.
+
+###### onNext
+
+(`snapshot`) => `void`
+
+A callback to be called every time a new `DocumentSnapshot`
+is available.
+
+###### onError?
+
+(`error`) => `void`
+
+A callback to be called if the listen fails or is
+cancelled. No further callbacks will occur.
+
+###### onCompletion?
+
+() => `void`
+
+Can be provided, but will not be called since streams are
+never ending.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`reference`, `options`, `onNext`, `onError?`, `onCompletion?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:280](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L280)
+
+Attaches a listener for `DocumentSnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### reference
+
+[`DocumentReference`](../modular.mdx#documentreference)\<`AppModelType`, `DbModelType`\>
+
+A reference to the document to listen to.
+
+###### options
+
+`SnapshotListenOptions`
+
+Options controlling the listen behavior.
+
+###### onNext
+
+(`snapshot`) => `void`
+
+A callback to be called every time a new `DocumentSnapshot`
+is available.
+
+###### onError?
+
+(`error`) => `void`
+
+A callback to be called if the listen fails or is
+cancelled. No further callbacks will occur.
+
+###### onCompletion?
+
+() => `void`
+
+Can be provided, but will not be called since streams are
+never ending.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`query`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:301](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L301)
+
+Attaches a listener for `QuerySnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks. The listener can be cancelled by
+calling the function that is returned when `onSnapshot` is called.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The query to listen to.
+
+###### observer
+
+A single object containing `next` and `error` callbacks.
+
+###### complete?
+
+() => `void`
+
+###### error?
+
+(`error`) => `void`
+
+###### next?
+
+(`snapshot`) => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`query`, `options`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:324](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L324)
+
+Attaches a listener for `QuerySnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks. The listener can be cancelled by
+calling the function that is returned when `onSnapshot` is called.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The query to listen to.
+
+###### options
+
+`SnapshotListenOptions`
+
+Options controlling the listen behavior.
+
+###### observer
+
+A single object containing `next` and `error` callbacks.
+
+###### complete?
+
+() => `void`
+
+###### error?
+
+(`error`) => `void`
+
+###### next?
+
+(`snapshot`) => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`query`, `onNext`, `onError?`, `onCompletion?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:352](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L352)
+
+Attaches a listener for `QuerySnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks. The listener can be cancelled by
+calling the function that is returned when `onSnapshot` is called.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The query to listen to.
+
+###### onNext
+
+(`snapshot`) => `void`
+
+A callback to be called every time a new `QuerySnapshot`
+is available.
+
+###### onError?
+
+(`error`) => `void`
+
+A callback to be called if the listen fails or is
+cancelled. No further callbacks will occur.
+
+###### onCompletion?
+
+() => `void`
+
+Can be provided, but will not be called since streams are
+never ending.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+#### Call Signature
+
+> **onSnapshot**\<`AppModelType`, `DbModelType`\>(`query`, `options`, `onNext`, `onError?`, `onCompletion?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:378](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L378)
+
+Attaches a listener for `QuerySnapshot` events. You may either pass
+individual `onNext` and `onError` callbacks or pass a single observer
+object with `next` and `error` callbacks. The listener can be cancelled by
+calling the function that is returned when `onSnapshot` is called.
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the snapshot stream is never-ending.
+
+##### Type Parameters
+
+###### AppModelType
+
+`AppModelType`
+
+###### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+##### Parameters
+
+###### query
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+The query to listen to.
+
+###### options
+
+`SnapshotListenOptions`
+
+Options controlling the listen behavior.
+
+###### onNext
+
+(`snapshot`) => `void`
+
+A callback to be called every time a new `QuerySnapshot`
+is available.
+
+###### onError?
+
+(`error`) => `void`
+
+A callback to be called if the listen fails or is
+cancelled. No further callbacks will occur.
+
+###### onCompletion?
+
+() => `void`
+
+Can be provided, but will not be called since streams are
+never ending.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An unsubscribe function that can be called to cancel
+the snapshot listener.
+
+***
+
+### onSnapshotsInSync()
+
+#### Call Signature
+
+> **onSnapshotsInSync**(`firestore`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:420](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L420)
+
+Attaches a listener for a snapshots-in-sync event.
+The snapshots-in-sync event indicates that all listeners affected by a given change have fired, even if
+a single server-generated change affects multiple listeners.
+
+##### Parameters
+
+###### firestore
+
+`Firestore`
+
+###### observer
+
+###### complete?
+
+() => `void`
+
+###### error?
+
+(`error`) => `void`
+
+###### next?
+
+(`value`) => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+#### Call Signature
+
+> **onSnapshotsInSync**(`firestore`, `onSync`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:437](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L437)
+
+Attaches a listener for a snapshots-in-sync event.
+The snapshots-in-sync event indicates that all listeners affected by a given change have fired, even if
+a single server-generated change affects multiple listeners.
+
+##### Parameters
+
+###### firestore
+
+`Firestore`
+
+###### onSync
+
+() => `void`
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+***
+
+### queryEqual()
+
+> **queryEqual**\<`AppModelType`, `DbModelType`\>(`left`, `right`): `boolean`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:407](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L407)
+
+Returns true if the provided queries point to the same collection and apply the same constraints.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### left
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Query A Query to compare.
+
+##### right
+
+[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
+
+Query A Query to compare.
+
+#### Returns
+
+`boolean`
+
+boolean true if the references point to the same location in the same Firestore database.
+
+***
+
+### snapshotEqual()
+
+> **snapshotEqual**\<`AppModelType`, `DbModelType`\>(`left`, `right`): `boolean`
+
+Defined in: [firestore/lib/modular/snapshot.d.ts:394](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/snapshot.d.ts#L394)
+
+Returns true if the provided snapshots are equal.
+
+#### Type Parameters
+
+##### AppModelType
+
+`AppModelType`
+
+##### DbModelType
+
+`DbModelType` *extends* [`DocumentData`](../modular.mdx#documentdata)
+
+#### Parameters
+
+##### left
+
+DocumentSnapshot | QuerySnapshot A snapshot to compare.
+
+[`DocumentSnapshot`](#documentsnapshot)\<`AppModelType`, `DbModelType`\> | [`QuerySnapshot`](#querysnapshot)\<`AppModelType`, `DbModelType`\>
+
+##### right
+
+DocumentSnapshot | QuerySnapshot A snapshot to compare.
+
+[`DocumentSnapshot`](#documentsnapshot)\<`AppModelType`, `DbModelType`\> | [`QuerySnapshot`](#querysnapshot)\<`AppModelType`, `DbModelType`\>
+
+#### Returns
+
+`boolean`
+
+boolean true if the snapshots are equal.
diff --git a/docs/reference/functions/lib/modular.mdx b/docs/reference/functions/lib/modular.mdx
new file mode 100644
index 0000000000..29b4c6f669
--- /dev/null
+++ b/docs/reference/functions/lib/modular.mdx
@@ -0,0 +1,172 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / functions/lib/modular
+
+# functions/lib/modular
+
+## Functions
+
+### connectFunctionsEmulator()
+
+> **connectFunctionsEmulator**(`functionsInstance`, `host`, `port`): `void`
+
+Defined in: [functions/lib/modular.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L43)
+
+Modify this instance to communicate with the Cloud Functions emulator.
+Note: this must be called before this instance has been used to do any operations.
+
+#### Parameters
+
+##### functionsInstance
+
+`Functions`
+
+A functions instance.
+
+##### host
+
+`string`
+
+The emulator host. (ex: localhost)
+
+##### port
+
+`number`
+
+The emulator port. (ex: 5001)
+
+#### Returns
+
+`void`
+
+***
+
+### getFunctions()
+
+> **getFunctions**(`app?`, `regionOrCustomDomain?`): `Functions`
+
+Defined in: [functions/lib/modular.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L28)
+
+Returns a Functions instance for the given app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+The FirebaseApp to use. Optional.
+
+##### regionOrCustomDomain?
+
+`string`
+
+One of: a) The region the callable functions are located in (ex: us-central1) b) A custom domain hosting the callable functions (ex: https://mydomain.com). Optional.
+
+#### Returns
+
+`Functions`
+
+Functions instance for the given app.
+
+***
+
+### httpsCallable()
+
+> **httpsCallable**\<`RequestData`, `ResponseData`, `StreamData`\>(`functionsInstance`, `name`, `options?`): `HttpsCallable`\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [functions/lib/modular.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L59)
+
+Returns a reference to the callable HTTPS trigger with the given name.
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+#### Parameters
+
+##### functionsInstance
+
+`Functions`
+
+A functions instance.
+
+##### name
+
+`string`
+
+The name of the trigger.
+
+##### options?
+
+`HttpsCallableOptions`
+
+An interface for metadata about how calls should be executed.
+
+#### Returns
+
+`HttpsCallable`\<`RequestData`, `ResponseData`, `StreamData`\>
+
+HttpsCallable instance
+
+***
+
+### httpsCallableFromUrl()
+
+> **httpsCallableFromUrl**\<`RequestData`, `ResponseData`, `StreamData`\>(`functionsInstance`, `url`, `options?`): `HttpsCallable`\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [functions/lib/modular.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L80)
+
+Returns a reference to the callable HTTPS trigger with the specified url.
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+#### Parameters
+
+##### functionsInstance
+
+`Functions`
+
+A functions instance.
+
+##### url
+
+`string`
+
+The url of the trigger.
+
+##### options?
+
+`HttpsCallableOptions`
+
+An instance of HttpsCallableOptions containing metadata about how calls should be executed.
+
+#### Returns
+
+`HttpsCallable`\<`RequestData`, `ResponseData`, `StreamData`\>
+
+HttpsCallable instance
diff --git a/docs/reference/in-app-messaging/lib/modular.mdx b/docs/reference/in-app-messaging/lib/modular.mdx
new file mode 100644
index 0000000000..23d849eea4
--- /dev/null
+++ b/docs/reference/in-app-messaging/lib/modular.mdx
@@ -0,0 +1,185 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / in-app-messaging/lib/modular
+
+# in-app-messaging/lib/modular
+
+## Type Aliases
+
+### FirebaseInAppMessaging
+
+> **FirebaseInAppMessaging** = `FirebaseInAppMessagingTypes.Module`
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:3](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L3)
+
+## Functions
+
+### getInAppMessaging()
+
+> **getInAppMessaging**(): `Module`
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:5](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L5)
+
+#### Returns
+
+`Module`
+
+***
+
+### isAutomaticDataCollectionEnabled()
+
+> **isAutomaticDataCollectionEnabled**(`inAppMessaging`): `boolean`
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L50)
+
+Determines whether automatic data collection is enabled or not.
+
+#### Example
+
+```js
+const inAppMessaging = getInAppMessaging();
+const isDataCollectionEnabled = isAutomaticDataCollectionEnabled(inAppMessaging);
+```
+
+#### Parameters
+
+##### inAppMessaging
+
+`Module`
+
+#### Returns
+
+`boolean`
+
+***
+
+### isMessagesDisplaySuppressed()
+
+> **isMessagesDisplaySuppressed**(`inAppMessaging`): `boolean`
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:17](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L17)
+
+Determines whether messages are suppressed or not.
+
+#### Example
+
+```js
+const inAppMessaging = getInAppMessaging();
+const isSuppressed = isMessagesDisplaySuppressed(inAppMessaging);
+```
+
+#### Parameters
+
+##### inAppMessaging
+
+`Module`
+
+#### Returns
+
+`boolean`
+
+***
+
+### setAutomaticDataCollectionEnabled()
+
+> **setAutomaticDataCollectionEnabled**(`inAppMessaging`, `enabled`): `Promise`\<`null`\>
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L70)
+
+Enable or disable automatic data collection for Firebase In-App Messaging.
+
+When enabled, generates a registration token on app startup if there is no valid one and generates a new token
+when it is deleted (which prevents `deleteInstanceId()` from stopping the periodic sending of data).
+
+This setting is persisted across app restarts and overrides the setting specified in your manifest/plist file.
+
+#### Example
+
+```js
+// Disable data collection
+const inAppMessaging = getInAppMessaging();
+setAutomaticDataCollectionEnabled(inAppMessaging, false);
+```
+
+#### Parameters
+
+##### inAppMessaging
+
+`Module`
+
+##### enabled
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setMessagesDisplaySuppressed()
+
+> **setMessagesDisplaySuppressed**(`inAppMessaging`, `enabled`): `Promise`\<`null`\>
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L35)
+
+Enable or disable suppression of Firebase In App Messaging messages.
+
+When enabled, no in app messages will be rendered until either you disable suppression, or the app restarts.
+This state is not persisted between app restarts.
+
+#### Example
+
+```js
+// Suppress messages
+const inAppMessaging = getInAppMessaging();
+await setMessagesDisplaySuppressed(inAppMessaging, true);
+```
+
+#### Parameters
+
+##### inAppMessaging
+
+`Module`
+
+##### enabled
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### triggerEvent()
+
+> **triggerEvent**(`inAppMessaging`, `eventId`): `Promise`\<`null`\>
+
+Defined in: [in-app-messaging/lib/modular/index.d.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/in-app-messaging/lib/modular/index.d.ts#L86)
+
+Trigger in-app messages programmatically
+
+#### Example
+
+```js
+// Suppress messages
+const inAppMessaging = getInAppMessaging();
+await triggerEvent(inAppMessaging, "exampleTrigger");
+```
+
+#### Parameters
+
+##### inAppMessaging
+
+`Module`
+
+##### eventId
+
+`string`
+
+#### Returns
+
+`Promise`\<`null`\>
diff --git a/docs/reference/installations/lib/modular.mdx b/docs/reference/installations/lib/modular.mdx
new file mode 100644
index 0000000000..52678d8716
--- /dev/null
+++ b/docs/reference/installations/lib/modular.mdx
@@ -0,0 +1,147 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / installations/lib/modular
+
+# installations/lib/modular
+
+## Type Aliases
+
+### IdChangeCallbackFn()
+
+> **IdChangeCallbackFn** = (`installationId`) => `void`
+
+Defined in: [installations/lib/modular/index.d.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L30)
+
+#### Parameters
+
+##### installationId
+
+`string`
+
+#### Returns
+
+`void`
+
+***
+
+### IdChangeUnsubscribeFn()
+
+> **IdChangeUnsubscribeFn** = () => `void`
+
+Defined in: [installations/lib/modular/index.d.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L31)
+
+#### Returns
+
+`void`
+
+## Functions
+
+### deleteInstallations()
+
+> **deleteInstallations**(`installations?`): `Promise`\<`void`\>
+
+Defined in: [installations/lib/modular/index.d.ts:15](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L15)
+
+Deletes the Firebase Installation and all associated data.
+
+#### Parameters
+
+##### installations?
+
+`Module`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### getId()
+
+> **getId**(`installations`): `Promise`\<`string`\>
+
+Defined in: [installations/lib/modular/index.d.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L20)
+
+Creates a Firebase Installation if there isn't one for the app and returns the Installation ID.
+
+#### Parameters
+
+##### installations
+
+`Module`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+***
+
+### getInstallations()
+
+> **getInstallations**(`app?`): `Module`
+
+Defined in: [installations/lib/modular/index.d.ts:8](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L8)
+
+Returns an instance of Installations associated with the given FirebaseApp instance.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+#### Returns
+
+`Module`
+
+***
+
+### getToken()
+
+> **getToken**(`installations`, `forceRefresh?`): `Promise`\<`string`\>
+
+Defined in: [installations/lib/modular/index.d.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L25)
+
+Returns a Firebase Installations auth token, identifying the current Firebase Installation.
+
+#### Parameters
+
+##### installations
+
+`Module`
+
+##### forceRefresh?
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+***
+
+### onIdChange()
+
+> **onIdChange**(`installations`, `callback`): [`IdChangeUnsubscribeFn`](#idchangeunsubscribefn)
+
+Defined in: [installations/lib/modular/index.d.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/installations/lib/modular/index.d.ts#L38)
+
+Throw an error since react-native-firebase does not support this method.
+
+Sets a new callback that will get called when Installation ID changes. Returns an unsubscribe function that will remove the callback when called.
+
+#### Parameters
+
+##### installations
+
+`Module`
+
+##### callback
+
+[`IdChangeCallbackFn`](#idchangecallbackfn)
+
+#### Returns
+
+[`IdChangeUnsubscribeFn`](#idchangeunsubscribefn)
diff --git a/docs/reference/messaging/lib/modular.mdx b/docs/reference/messaging/lib/modular.mdx
new file mode 100644
index 0000000000..5dfcd6a4e6
--- /dev/null
+++ b/docs/reference/messaging/lib/modular.mdx
@@ -0,0 +1,1008 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / messaging/lib/modular
+
+# messaging/lib/modular
+
+## Variables
+
+### AuthorizationStatus
+
+> `const` **AuthorizationStatus**: `object`
+
+Defined in: [messaging/lib/statics.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L4)
+
+#### Type Declaration
+
+##### AUTHORIZED
+
+> `readonly` **AUTHORIZED**: `1` = `1`
+
+##### DENIED
+
+> `readonly` **DENIED**: `0` = `0`
+
+##### EPHEMERAL
+
+> `readonly` **EPHEMERAL**: `3` = `3`
+
+##### NOT\_DETERMINED
+
+> `readonly` **NOT\_DETERMINED**: `-1` = `-1`
+
+##### PROVISIONAL
+
+> `readonly` **PROVISIONAL**: `2` = `2`
+
+***
+
+### NotificationAndroidPriority
+
+> `const` **NotificationAndroidPriority**: `object`
+
+Defined in: [messaging/lib/statics.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L12)
+
+#### Type Declaration
+
+##### PRIORITY\_DEFAULT
+
+> `readonly` **PRIORITY\_DEFAULT**: `0` = `0`
+
+##### PRIORITY\_HIGH
+
+> `readonly` **PRIORITY\_HIGH**: `1` = `1`
+
+##### PRIORITY\_LOW
+
+> `readonly` **PRIORITY\_LOW**: `-1` = `-1`
+
+##### PRIORITY\_MAX
+
+> `readonly` **PRIORITY\_MAX**: `2` = `2`
+
+##### PRIORITY\_MIN
+
+> `readonly` **PRIORITY\_MIN**: `-2` = `-2`
+
+***
+
+### NotificationAndroidVisibility
+
+> `const` **NotificationAndroidVisibility**: `object`
+
+Defined in: [messaging/lib/statics.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L20)
+
+#### Type Declaration
+
+##### VISIBILITY\_PRIVATE
+
+> `readonly` **VISIBILITY\_PRIVATE**: `0` = `0`
+
+##### VISIBILITY\_PUBLIC
+
+> `readonly` **VISIBILITY\_PUBLIC**: `1` = `1`
+
+##### VISIBILITY\_SECRET
+
+> `readonly` **VISIBILITY\_SECRET**: `-1` = `-1`
+
+## Functions
+
+### deleteToken()
+
+> **deleteToken**(`messaging`, `tokenOptions?`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L52)
+
+Removes access to an FCM token previously authorized by its scope.
+Messages sent by the server to this token will fail.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### tokenOptions?
+
+`NativeTokenOptions`
+
+Options to override senderId (iOS) and projectId (Android).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the token is deleted.
+
+***
+
+### experimentalSetDeliveryMetricsExportedToBigQueryEnabled()
+
+> **experimentalSetDeliveryMetricsExportedToBigQueryEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:431](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L431)
+
+Sets whether message delivery metrics are exported to BigQuery is enabled or disabled.
+The value is false by default. Set this to true to allow exporting of message delivery metrics to BigQuery.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable exporting of message delivery metrics to BigQuery.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### getAPNSToken()
+
+> **getAPNSToken**(`messaging`): `Promise`\<`string` \| `null`\>
+
+Defined in: [messaging/lib/modular.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L223)
+
+On iOS, it is possible to get the users APNs token. This may be required if you want to send messages to your
+iOS devices without using the FCM service.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`string` \| `null`\>
+
+Promise that resolves with the APNs token or null.
+
+***
+
+### getDidOpenSettingsForNotification()
+
+> **getDidOpenSettingsForNotification**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [messaging/lib/modular.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L170)
+
+When the app is opened from iOS notifications settings from a quit state,
+this method will return `true` or `false` if the app was opened via another method.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the app was opened from settings.
+
+***
+
+### getInitialNotification()
+
+> **getInitialNotification**(`messaging`): `Promise`\<`RemoteMessage` \| `null`\>
+
+Defined in: [messaging/lib/modular.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L159)
+
+When a notification from FCM has triggered the application to open from a quit state,
+this method will return a `RemoteMessage` containing the notification data, or `null` if
+the app was opened via another method.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`RemoteMessage` \| `null`\>
+
+Promise that resolves with the initial notification or null.
+
+***
+
+### getIsHeadless()
+
+> **getIsHeadless**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [messaging/lib/modular.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L181)
+
+Returns whether the root view is headless or not
+i.e true if the app was launched in the background (for example, by data-only cloud message)
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the app is headless.
+
+***
+
+### getMessaging()
+
+> **getMessaging**(`app?`): `Messaging`
+
+Defined in: [messaging/lib/modular.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L37)
+
+Returns a Messaging instance for the given app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+FirebaseApp. Optional.
+
+#### Returns
+
+`Messaging`
+
+Messaging instance
+
+***
+
+### getToken()
+
+> **getToken**(`messaging`, `options?`): `Promise`\<`string`\>
+
+Defined in: [messaging/lib/modular.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L66)
+
+Returns an FCM token for this device. Optionally, you can specify custom options for your own use case.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### options?
+
+`GetTokenOptions` & `NativeTokenOptions`
+
+Options to override senderId (iOS) and appName.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+Promise that resolves with the FCM token.
+
+***
+
+### hasPermission()
+
+> **hasPermission**(`messaging`): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [messaging/lib/modular.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L261)
+
+Returns a `AuthorizationStatus` as to whether the user has messaging permission for this app.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+Promise that resolves with the authorization status.
+
+***
+
+### isAutoInitEnabled()
+
+> **isAutoInitEnabled**(`messaging`): `boolean`
+
+Defined in: [messaging/lib/modular.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L137)
+
+Returns whether messaging auto initialization is enabled or disabled for the device.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating whether auto initialization is enabled.
+
+***
+
+### isDeliveryMetricsExportToBigQueryEnabled()
+
+> **isDeliveryMetricsExportToBigQueryEnabled**(`messaging`): `boolean`
+
+Defined in: [messaging/lib/modular.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L380)
+
+Returns a boolean whether message delivery metrics are exported to BigQuery.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if message delivery metrics are exported to BigQuery.
+
+***
+
+### isDeviceRegisteredForRemoteMessages()
+
+> **isDeviceRegisteredForRemoteMessages**(`messaging`): `boolean`
+
+Defined in: [messaging/lib/modular.ts:203](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L203)
+
+Returns a boolean value whether the user has registered for remote notifications via
+`registerDeviceForRemoteMessages()`. For iOS. Android always returns `true`.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if the device is registered for remote messages.
+
+***
+
+### isNotificationDelegationEnabled()
+
+> **isNotificationDelegationEnabled**(`messaging`): `boolean`
+
+Defined in: [messaging/lib/modular.ts:390](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L390)
+
+Returns a boolean whether message delegation is enabled. Android only,
+always returns false on iOS
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if notification delegation is enabled.
+
+***
+
+### isSupported()
+
+> **isSupported**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [messaging/lib/modular.ts:419](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L419)
+
+Checks if all required APIs exist in the browser.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the APIs are supported.
+
+***
+
+### onDeletedMessages()
+
+> **onDeletedMessages**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L272)
+
+Called when the FCM server deletes pending messages.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+() => `void`
+
+Called when the FCM deletes pending messages.
+
+#### Returns
+
+Function to unsubscribe from the deleted messages listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onMessage()
+
+> **onMessage**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L81)
+
+When any FCM payload is received, the listener callback is called with a `RemoteMessage`.
+> This subscriber method is only called when the app is active (in the foreground).
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a new FCM payload is received from the server.
+
+#### Returns
+
+Function to unsubscribe from the message listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onMessageSent()
+
+> **onMessageSent**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:283](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L283)
+
+When sending a `RemoteMessage`, this listener is called when the message has been sent to FCM.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+(`messageId`) => `any`
+
+Called when the FCM sends the remote message to FCM.
+
+#### Returns
+
+Function to unsubscribe from the message sent listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onNotificationOpenedApp()
+
+> **onNotificationOpenedApp**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L96)
+
+When the user presses a notification displayed via FCM, this listener will be called if the app
+has opened from a background state.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a notification press opens the application.
+
+#### Returns
+
+Function to unsubscribe from the notification opened listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onSendError()
+
+> **onSendError**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:298](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L298)
+
+When sending a `RemoteMessage`, this listener is called when an error is thrown and the
+message could not be sent.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+(`evt`) => `any`
+
+Called when the FCM sends the remote message to FCM.
+
+#### Returns
+
+Function to unsubscribe from the send error listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### onTokenRefresh()
+
+> **onTokenRefresh**(`messaging`, `listener`): () => `void`
+
+Defined in: [messaging/lib/modular.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L112)
+
+Called when a new registration token is generated for the device. For example, this event can happen when a
+token expires or when the server invalidates the token.
+> This subscriber method is only called when the app is active (in the foreground).
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### listener
+
+(`token`) => `any`
+
+Called with a FCM token when the token is refreshed.
+
+#### Returns
+
+Function to unsubscribe from the token refresh listener.
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+***
+
+### registerDeviceForRemoteMessages()
+
+> **registerDeviceForRemoteMessages**(`messaging`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:192](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L192)
+
+On iOS, if your app wants to receive remote messages from FCM (via APNs), you must explicitly register
+with APNs if auto-registration has been disabled.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the device is registered.
+
+***
+
+### requestPermission()
+
+> **requestPermission**(`messaging`, `iosPermissions?`): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [messaging/lib/modular.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L124)
+
+On iOS, messaging permission must be requested by the current application before messages can
+be received or sent.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### iosPermissions?
+
+`IOSPermissions`
+
+All the available permissions for iOS that can be requested.
+
+#### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+Promise that resolves with the authorization status.
+
+***
+
+### sendMessage()
+
+> **sendMessage**(`messaging`, `message`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L347)
+
+Send a new `RemoteMessage` to the FCM server.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### message
+
+`RemoteMessage`
+
+A `RemoteMessage` interface.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the message is sent.
+
+***
+
+### setAPNSToken()
+
+> **setAPNSToken**(`messaging`, `token`, `type?`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L251)
+
+On iOS, This method is used to set the APNs Token received by the application delegate.
+Note that the token is expected to be a hexadecimal string, as it is an NSData type in
+the underlying native firebase SDK, and raw data may only be passed as a string if it is
+hex encoded. Calling code is responsible for correct encoding, you should verify by comparing
+the results of `getAPNSToken()` with your token parameter to make sure they are equivalent.
+
+Messaging uses method swizzling to ensure that the APNs token is set automatically.
+However, if you have disabled swizzling by setting FirebaseAppDelegateProxyEnabled to NO
+in your app's Info.plist, you should manually set the APNs token in your application
+delegate's application(_:didRegisterForRemoteNotificationsWithDeviceToken:) method.
+
+If you would like to set the type of the APNs token, rather than relying on automatic
+detection, provide a type of either 'prod', 'sandbox'. Omitting the type parameter
+or specifying 'unknown' will rely on automatic type detection based on provisioning profile.
+
+At a native level you may also call objective-c `[FIRMessaging setAPNSToken];` as needed.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### token
+
+`string`
+
+A hexadecimal string representing your APNs token.
+
+##### type?
+
+`string`
+
+Optional. A string specifying 'prod', 'sandbox' or 'unknown' token type.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the APNs token is set.
+
+***
+
+### setAutoInitEnabled()
+
+> **setAutoInitEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:147](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L147)
+
+Sets whether messaging auto initialization is enabled or disabled for the device.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable auto initialization.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### setBackgroundMessageHandler()
+
+> **setBackgroundMessageHandler**(`messaging`, `handler`): `void`
+
+Defined in: [messaging/lib/modular.ts:314](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L314)
+
+Set a message handler function which is called when the app is in the background
+or terminated. In Android, a headless task is created, allowing you to access the React Native environment
+to perform tasks such as updating local storage, or sending a network request.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### handler
+
+(`message`) => `Promise`\<`any`\>
+
+Called when a message is sent and the application is in a background or terminated state.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### setNotificationDelegationEnabled()
+
+> **setNotificationDelegationEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L402)
+
+Sets whether message notification delegation is enabled or disabled.
+The value is false by default. Set this to true to allow delegation of notification to Google Play Services.
+Note if true message handlers will not function on Android, and it has no effect on iOS
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable delegation of messages to Google Play Services.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### setOpenSettingsForNotificationsHandler()
+
+> **setOpenSettingsForNotificationsHandler**(`messaging`, `handler`): `void`
+
+Defined in: [messaging/lib/modular.ts:329](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L329)
+
+Set a handler function which is called when the `${App Name} notifications settings`
+link in iOS settings is clicked.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### handler
+
+(`message`) => `any`
+
+Called when link in iOS settings is clicked.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### subscribeToTopic()
+
+> **subscribeToTopic**(`messaging`, `topic`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:359](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L359)
+
+Apps can subscribe to a topic, which allows the FCM server to send targeted messages to only those
+devices subscribed to that topic.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### topic
+
+`string`
+
+The topic name.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the subscription is complete.
+
+***
+
+### unregisterDeviceForRemoteMessages()
+
+> **unregisterDeviceForRemoteMessages**(`messaging`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L212)
+
+Unregisters the app from receiving remote notifications.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the device is unregistered.
+
+***
+
+### unsubscribeFromTopic()
+
+> **unsubscribeFromTopic**(`messaging`, `topic`): `Promise`\<`void`\>
+
+Defined in: [messaging/lib/modular.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L370)
+
+Unsubscribe the device from a topic.
+
+#### Parameters
+
+##### messaging
+
+`Messaging`
+
+Messaging instance.
+
+##### topic
+
+`string`
+
+The topic name.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the unsubscription is complete.
diff --git a/docs/reference/ml/lib/modular.mdx b/docs/reference/ml/lib/modular.mdx
new file mode 100644
index 0000000000..9bf4764879
--- /dev/null
+++ b/docs/reference/ml/lib/modular.mdx
@@ -0,0 +1,39 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / ml/lib/modular
+
+# ml/lib/modular
+
+## Type Aliases
+
+### FirebaseML
+
+> **FirebaseML** = `FirebaseMLTypes.Module`
+
+Defined in: [ml/lib/modular/index.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/modular/index.d.ts#L4)
+
+## Functions
+
+### getML()
+
+> **getML**(`app?`): `Module`
+
+Defined in: [ml/lib/modular/index.d.ts:14](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/modular/index.d.ts#L14)
+
+Returns the existing default [FirebaseML](#firebaseml) instance that is associated with the
+default @firebase/app#FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+#### Returns
+
+`Module`
+
+The [FirebaseML](#firebaseml) instance of the provided app.
diff --git a/docs/reference/modules.mdx b/docs/reference/modules.mdx
new file mode 100644
index 0000000000..4ee9b5d586
--- /dev/null
+++ b/docs/reference/modules.mdx
@@ -0,0 +1,38 @@
+[**react-native-firebase**](README.mdx)
+
+***
+
+# react-native-firebase
+
+## Modules
+
+- [ai/lib](ai/lib.mdx)
+- [analytics/lib/modular](analytics/lib/modular.mdx)
+- [app-check/lib/modular](app-check/lib/modular.mdx)
+- [app-distribution/lib/modular](app-distribution/lib/modular.mdx)
+- [app/lib/modular](app/lib/modular.mdx)
+- [app/lib/utils](app/lib/utils.mdx)
+- [app/lib/utils/UtilsStatics](app/lib/utils/UtilsStatics.mdx)
+- [auth/lib/modular](auth/lib/modular.mdx)
+- [crashlytics/lib/modular](crashlytics/lib/modular.mdx)
+- [database/lib/modular](database/lib/modular.mdx)
+- [database/lib/modular/query](database/lib/modular/query.mdx)
+- [database/lib/modular/transaction](database/lib/modular/transaction.mdx)
+- [firestore/lib/modular](firestore/lib/modular.mdx)
+- [firestore/lib/modular/Bytes](firestore/lib/modular/Bytes.mdx)
+- [firestore/lib/modular/FieldPath](firestore/lib/modular/FieldPath.mdx)
+- [firestore/lib/modular/FieldValue](firestore/lib/modular/FieldValue.mdx)
+- [firestore/lib/modular/GeoPoint](firestore/lib/modular/GeoPoint.mdx)
+- [firestore/lib/modular/query](firestore/lib/modular/query-1.mdx)
+- [firestore/lib/modular/snapshot](firestore/lib/modular/snapshot.mdx)
+- [firestore/lib/modular/Timestamp](firestore/lib/modular/Timestamp.mdx)
+- [firestore/lib/modular/VectorValue](firestore/lib/modular/VectorValue.mdx)
+- [functions/lib/modular](functions/lib/modular.mdx)
+- [in-app-messaging/lib/modular](in-app-messaging/lib/modular.mdx)
+- [installations/lib/modular](installations/lib/modular.mdx)
+- [messaging/lib/modular](messaging/lib/modular.mdx)
+- [ml/lib/modular](ml/lib/modular.mdx)
+- [perf/lib/modular](perf/lib/modular.mdx)
+- [remote-config/lib/modular](remote-config/lib/modular.mdx)
+- [storage/lib/modular](storage/lib/modular.mdx)
+- [vertexai/lib](vertexai/lib.mdx)
diff --git a/docs/reference/perf/lib/modular.mdx b/docs/reference/perf/lib/modular.mdx
new file mode 100644
index 0000000000..b038163913
--- /dev/null
+++ b/docs/reference/perf/lib/modular.mdx
@@ -0,0 +1,201 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / perf/lib/modular
+
+# perf/lib/modular
+
+## Type Aliases
+
+### PerformanceSettings
+
+> **PerformanceSettings** = `object`
+
+Defined in: [perf/lib/modular/index.d.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L35)
+
+#### Properties
+
+##### dataCollectionEnabled
+
+> **dataCollectionEnabled**: `boolean`
+
+Defined in: [perf/lib/modular/index.d.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L36)
+
+## Functions
+
+### getPerformance()
+
+> **getPerformance**(`app?`): `Module`
+
+Defined in: [perf/lib/modular/index.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L33)
+
+Returns a Performance instance for the given app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+FirebaseApp. Optional.
+
+#### Returns
+
+`Module`
+
+***
+
+### httpMetric()
+
+> **httpMetric**(`perf`, `identifier`, `httpMethod`): `HttpMetric`
+
+Defined in: [perf/lib/modular/index.d.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L65)
+
+Returns a HttpMetric instance.
+
+#### Parameters
+
+##### perf
+
+`Module`
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+A String to identify the HttpMetric instance.
+
+##### httpMethod
+
+`HttpMethod`
+
+The HTTP method for the HttpMetric instance.
+
+#### Returns
+
+`HttpMetric`
+
+***
+
+### initializePerformance()
+
+> **initializePerformance**(`app`, `settings?`): `Promise`\<`Module`\>
+
+Defined in: [perf/lib/modular/index.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L45)
+
+Returns a Performance instance for the given app.
+
+#### Parameters
+
+##### app
+
+`FirebaseApp`
+
+FirebaseApp. Required.
+
+##### settings?
+
+[`PerformanceSettings`](#performancesettings)
+
+Optional PerformanceSettings. Set "dataCollectionEnabled" which will enable/disable Performance collection.
+
+#### Returns
+
+`Promise`\<`Module`\>
+
+***
+
+### newScreenTrace()
+
+> **newScreenTrace**(`perf`, `identifier`): `ScreenTrace`
+
+Defined in: [perf/lib/modular/index.d.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L79)
+
+Creates a ScreenTrace instance with the given identifier.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Parameters
+
+##### perf
+
+`Module`
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
+
+#### Returns
+
+`ScreenTrace`
+
+#### Platform
+
+android Android !== 9.0.0 && Android !== 9.1.0
+
+***
+
+### startScreenTrace()
+
+> **startScreenTrace**(`perf`, `identifier`): `Promise`\<`ScreenTrace`\>
+
+Defined in: [perf/lib/modular/index.d.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L89)
+
+Creates a ScreenTrace instance with the given identifier and immediately starts it.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Parameters
+
+##### perf
+
+`Module`
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+Name of the screen.
+
+#### Returns
+
+`Promise`\<`ScreenTrace`\>
+
+#### Platform
+
+android Android !== 9.0.0 && Android !== 9.1.0
+
+***
+
+### trace()
+
+> **trace**(`perf`, `identifier`): `Trace`
+
+Defined in: [perf/lib/modular/index.d.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L56)
+
+Returns a Trace instance.
+
+#### Parameters
+
+##### perf
+
+`Module`
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+A String to identify the Trace instance.
+
+#### Returns
+
+`Trace`
diff --git a/docs/reference/remote-config/lib/modular.mdx b/docs/reference/remote-config/lib/modular.mdx
new file mode 100644
index 0000000000..604e07d148
--- /dev/null
+++ b/docs/reference/remote-config/lib/modular.mdx
@@ -0,0 +1,640 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / remote-config/lib/modular
+
+# remote-config/lib/modular
+
+## Interfaces
+
+### CustomSignals
+
+Defined in: [remote-config/lib/modular/index.d.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L251)
+
+Defines the type for representing custom signals and their values.
+The values in CustomSignals must be one of the following types: string, number, or null.
+There are additional limitations on key and value length, for a full description see https://firebase.google.com/docs/remote-config/parameters?template_type=client#custom_signal_conditions
+Failing to stay within these limitations will result in a silent API failure with only a warning in device logs
+
+#### Indexable
+
+\[`key`: `string`\]: `string` \| `number` \| `null`
+
+## Variables
+
+### LastFetchStatus
+
+> `const` **LastFetchStatus**: `LastFetchStatusInterface`
+
+Defined in: [remote-config/lib/modular/index.d.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L37)
+
+***
+
+### ValueSource
+
+> `const` **ValueSource**: `ValueSourceInterface`
+
+Defined in: [remote-config/lib/modular/index.d.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L38)
+
+## Functions
+
+### activate()
+
+> **activate**(`remoteConfig`): `Promise`\<`boolean`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L53)
+
+Returns a Boolean which resolves to true if the current call
+activated the fetched configs.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### ensureInitialized()
+
+> **ensureInitialized**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L60)
+
+Ensures the last activated config are available to the getters.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### fetch()
+
+> **fetch**(`remoteConfig`, `expirationDurationSeconds?`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L185)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### expirationDurationSeconds?
+
+`number`
+
+number
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### fetchAndActivate()
+
+> **fetchAndActivate**(`remoteConfig`): `Promise`\<`boolean`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L68)
+
+Performs a fetch and returns a Boolean which resolves to true
+if the current call activated the fetched configs.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### fetchConfig()
+
+> **fetchConfig**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L75)
+
+Fetches and caches configuration from the Remote Config service.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### fetchTimeMillis()
+
+> **fetchTimeMillis**(`remoteConfig`): `number`
+
+Defined in: [remote-config/lib/modular/index.d.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L141)
+
+Indicates the default value in milliseconds to abandon a pending fetch
+request made to the Remote Config server. Defaults to 60000 (One minute).
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`number`
+
+***
+
+### getAll()
+
+> **getAll**(`remoteConfig`): `ConfigValues`
+
+Defined in: [remote-config/lib/modular/index.d.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L82)
+
+Gets all config.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`ConfigValues`
+
+***
+
+### getBoolean()
+
+> **getBoolean**(`remoteConfig`, `key`): `boolean`
+
+Defined in: [remote-config/lib/modular/index.d.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L90)
+
+Gets the value for the given key as a boolean.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for boolean value
+
+#### Returns
+
+`boolean`
+
+***
+
+### getNumber()
+
+> **getNumber**(`remoteConfig`, `key`): `number`
+
+Defined in: [remote-config/lib/modular/index.d.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L98)
+
+Gets the value for the given key as a number.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for number value
+
+#### Returns
+
+`number`
+
+***
+
+### getRemoteConfig()
+
+> **getRemoteConfig**(`app?`): `Module`
+
+Defined in: [remote-config/lib/modular/index.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L45)
+
+Returns a RemoteConfig instance for the given app.
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp`
+
+FirebaseApp. Optional.
+
+#### Returns
+
+`Module`
+
+***
+
+### getString()
+
+> **getString**(`remoteConfig`, `key`): `string`
+
+Defined in: [remote-config/lib/modular/index.d.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L106)
+
+Gets the value for the given key as a string.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for string value
+
+#### Returns
+
+`string`
+
+***
+
+### getValue()
+
+> **getValue**(`remoteConfig`, `key`): `ConfigValue`
+
+Defined in: [remote-config/lib/modular/index.d.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L114)
+
+Gets the value for the given key
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for the given value
+
+#### Returns
+
+`ConfigValue`
+
+***
+
+### isSupported()
+
+> **isSupported**(): `Promise`\<`boolean`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L133)
+
+Checks two different things.
+1. Check if IndexedDB exists in the browser environment.
+2. Check if the current browser context allows IndexedDB open() calls.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### lastFetchStatus()
+
+> **lastFetchStatus**(`remoteConfig`): `LastFetchStatusType`
+
+Defined in: [remote-config/lib/modular/index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L156)
+
+The status of the latest Remote RemoteConfig fetch action.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`LastFetchStatusType`
+
+***
+
+### onConfigUpdate()
+
+> **onConfigUpdate**(`remoteConfig`, `observer`): `Unsubscribe`
+
+Defined in: [remote-config/lib/modular/index.d.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L226)
+
+Starts listening for real-time config updates from the Remote Config backend and automatically
+fetches updates from the Remote Config backend when they are available.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+The RemoteConfig instance.
+
+##### observer
+
+`ConfigUpdateObserver`
+
+The ConfigUpdateObserver to be notified of config updates.
+
+#### Returns
+
+`Unsubscribe`
+
+An Unsubscribe function to remove the listener.
+
+#### Remarks
+
+If a connection to the Remote Config backend is not already open, calling this method will
+open it. Multiple listeners can be added by calling this method again, but subsequent calls
+re-use the same connection to the backend.
+
+The list of updated keys passed to the callback will include all keys not currently active,
+and the config update process fetches the new config but does not automatically activate
+it for you. Typically you will activate the config in your callback to use the new values.
+
+***
+
+### ~~onConfigUpdated()~~
+
+> **onConfigUpdated**(`remoteConfig`, `callback`): () => `void`
+
+Defined in: [remote-config/lib/modular/index.d.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L239)
+
+Registers a listener to changes in the configuration.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### callback
+
+`CallbackOrObserver`\<`OnConfigUpdatedListenerCallback`\>
+
+function called on config change
+
+#### Returns
+
+unsubscribe listener
+
+> (): `void`
+
+##### Returns
+
+`void`
+
+#### Deprecated
+
+use official firebase-js-sdk onConfigUpdate now that web supports realtime
+
+***
+
+### reset()
+
+> **reset**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L165)
+
+Deletes all activated, fetched and defaults configs and
+resets all Firebase Remote Config settings.
+Android only. iOS does not reset anything.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setConfigSettings()
+
+> **setConfigSettings**(`remoteConfig`, `settings`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L174)
+
+Set the Remote RemoteConfig settings, currently able to set
+`fetchTimeMillis` & `minimumFetchIntervalMillis`
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### settings
+
+`ConfigSettings`
+
+ConfigSettings instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setCustomSignals()
+
+> **setCustomSignals**(`remoteConfig`, `customSignals`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:262](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L262)
+
+Sets the custom signals for the app instance.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### customSignals
+
+[`CustomSignals`](#customsignals)
+
+CustomSignals
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setDefaults()
+
+> **setDefaults**(`remoteConfig`, `defaults`): `Promise`\<`void`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L196)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### defaults
+
+`ConfigDefaults`
+
+ConfigDefaults
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setDefaultsFromResource()
+
+> **setDefaultsFromResource**(`remoteConfig`, `resourceName`): `Promise`\<`null`\>
+
+Defined in: [remote-config/lib/modular/index.d.ts:204](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L204)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### resourceName
+
+`string`
+
+string
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setLogLevel()
+
+> **setLogLevel**(`remoteConfig`, `logLevel`): `RemoteConfigLogLevel`
+
+Defined in: [remote-config/lib/modular/index.d.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L122)
+
+Defines the log level to use.
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+##### logLevel
+
+`RemoteConfigLogLevel`
+
+The log level to set
+
+#### Returns
+
+`RemoteConfigLogLevel`
+
+***
+
+### settings()
+
+> **settings**(`remoteConfig`): `ConfigSettings`
+
+Defined in: [remote-config/lib/modular/index.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L149)
+
+Returns a ConfigSettings object which provides the properties `minimumFetchIntervalMillis` & `fetchTimeMillis` if they have been set
+using setConfigSettings({ fetchTimeMillis: number, minimumFetchIntervalMillis: number }).
+
+#### Parameters
+
+##### remoteConfig
+
+`Module`
+
+RemoteConfig instance
+
+#### Returns
+
+`ConfigSettings`
diff --git a/docs/reference/storage/lib/modular.mdx b/docs/reference/storage/lib/modular.mdx
new file mode 100644
index 0000000000..c78886e312
--- /dev/null
+++ b/docs/reference/storage/lib/modular.mdx
@@ -0,0 +1,826 @@
+[**react-native-firebase**](../../README.mdx)
+
+***
+
+[react-native-firebase](../../modules.mdx) / storage/lib/modular
+
+# storage/lib/modular
+
+## Type Aliases
+
+### StringFormat
+
+> **StringFormat** = *typeof* [`StringFormat`](#stringformat-1)\[keyof *typeof* [`StringFormat`](#stringformat-1)\]
+
+Defined in: [storage/lib/modular/index.d.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L32)
+
+Union of literal string values in StringFormat "enum" object
+
+## Variables
+
+### StringFormat
+
+> `const` **StringFormat**: `FirebaseStorageTypes.StringFormat`
+
+Defined in: [storage/lib/modular/index.d.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L32)
+
+***
+
+### TaskEvent
+
+> `const` **TaskEvent**: `FirebaseStorageTypes.TaskEvent`
+
+Defined in: [storage/lib/modular/index.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L33)
+
+***
+
+### TaskState
+
+> `const` **TaskState**: `FirebaseStorageTypes.TaskState`
+
+Defined in: [storage/lib/modular/index.d.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L34)
+
+## Functions
+
+### child()
+
+> **child**(`storageRef`, `path`): `Reference`
+
+Defined in: [storage/lib/modular/index.d.ts:269](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L269)
+
+Returns a reference to a relative path from the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference as the base.
+
+##### path
+
+`string`
+
+The relative path from the base reference.
+
+#### Returns
+
+`Reference`
+
+A new Reference.
+
+***
+
+### connectStorageEmulator()
+
+> **connectStorageEmulator**(`storage`, `host`, `port`, `options?`): `void`
+
+Defined in: [storage/lib/modular/index.d.ts:83](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L83)
+
+Connects a Storage instance to the Firebase Storage emulator.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+A reference to the `Storage` instance.
+
+##### host
+
+`string`
+
+Emulator host, e.g., 'localhost'.
+
+##### port
+
+`number`
+
+Emulator port, e.g., 9199.
+
+##### options?
+
+`EmulatorMockTokenOptions`
+
+Optional. EmulatorMockTokenOptions instance.
+
+#### Returns
+
+`void`
+
+***
+
+### deleteObject()
+
+> **deleteObject**(`storageRef`): `Promise`\<`void`\>
+
+Defined in: [storage/lib/modular/index.d.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L103)
+
+Deletes the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the delete is complete.
+
+***
+
+### getBlob()
+
+> **getBlob**(`storageRef`, `maxDownloadSizeBytes?`): `Promise`\<`Blob`\>
+
+Defined in: [storage/lib/modular/index.d.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L111)
+
+Retrieves the blob at the given reference's location. Throws an error if the object is not found.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`Promise`\<`Blob`\>
+
+A promise resolving to the Blob.
+
+***
+
+### getBytes()
+
+> **getBytes**(`storageRef`, `maxDownloadSizeBytes?`): `Promise`\<`ArrayBuffer`\>
+
+Defined in: [storage/lib/modular/index.d.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L120)
+
+Retrieves bytes (up to the specified max size) from an object at the given reference's location.
+Throws an error if the object is not found or if the size exceeds the maximum allowed.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`Promise`\<`ArrayBuffer`\>
+
+A promise resolving to an ArrayBuffer.
+
+***
+
+### getDownloadURL()
+
+> **getDownloadURL**(`storageRef`): `Promise`\<`string`\>
+
+Defined in: [storage/lib/modular/index.d.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L130)
+
+Retrieves a long-lived download URL for the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A promise resolving to the URL string.
+
+***
+
+### getMetadata()
+
+> **getMetadata**(`storageRef`): `Promise`\<`FullMetadata`\>
+
+Defined in: [storage/lib/modular/index.d.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L137)
+
+Retrieves metadata for the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+#### Returns
+
+`Promise`\<`FullMetadata`\>
+
+A promise resolving to the object's FullMetadata.
+
+***
+
+### getStorage()
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): `Module`
+
+Defined in: [storage/lib/modular/index.d.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L49)
+
+Returns the existing default Storage instance that is associated with the
+default FirebaseApp. The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+Firebase app to get FirebaseStorage instance for.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to your Firebase Storage Bucket. If not passed, uses the app's default Storage Bucket.
+
+##### Returns
+
+`Module`
+
+The Storage instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`): `Module`
+
+Defined in: [storage/lib/modular/index.d.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L60)
+
+Returns the existing default Storage instance that is associated with the
+provided FirebaseApp. The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+The FirebaseApp instance that the returned Storage
+instance is associated with.
+
+##### Returns
+
+`Module`
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): `Module`
+
+Defined in: [storage/lib/modular/index.d.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L72)
+
+Returns the existing default Storage instance that is associated with the
+provided FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+The FirebaseApp instance that the returned Storage
+instance is associated with. If `null` the default app is used.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to the Firebase Storage Bucket. If `null` the default bucket is used.
+
+##### Returns
+
+`Module`
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): `Module`
+
+Defined in: [storage/lib/modular/index.d.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L74)
+
+Returns the existing default Storage instance that is associated with the
+default FirebaseApp. The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+`FirebaseApp`
+
+Firebase app to get FirebaseStorage instance for.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to your Firebase Storage Bucket. If not passed, uses the app's default Storage Bucket.
+
+##### Returns
+
+`Module`
+
+The Storage instance of the provided app.
+
+***
+
+### getStream()
+
+> **getStream**(`storageRef`, `maxDownloadSizeBytes?`): `ReadableStream`
+
+Defined in: [storage/lib/modular/index.d.ts:145](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L145)
+
+Retrieves a readable stream for the object at the given reference's location. This API is only available in Node.js.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`ReadableStream`
+
+A NodeJS ReadableStream.
+
+***
+
+### list()
+
+> **list**(`storageRef`, `options?`): `Promise`\<`ListResult`\>
+
+Defined in: [storage/lib/modular/index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L156)
+
+Lists items and prefixes under the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference under which to list items.
+
+##### options?
+
+`ListOptions`
+
+Optional. Configuration for listing.
+
+#### Returns
+
+`Promise`\<`ListResult`\>
+
+A promise resolving to a ListResult.
+
+***
+
+### listAll()
+
+> **listAll**(`storageRef`): `Promise`\<`ListResult`\>
+
+Defined in: [storage/lib/modular/index.d.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L163)
+
+Lists all items and prefixes under the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference under which to list items.
+
+#### Returns
+
+`Promise`\<`ListResult`\>
+
+A promise resolving to a ListResult.
+
+***
+
+### putFile()
+
+> **putFile**(`storageRef`, `filePath`, `metadata?`): `Task`
+
+Defined in: [storage/lib/modular/index.d.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L246)
+
+Puts a file from a local disk onto the storage bucket at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference where the file should be uploaded.
+
+##### filePath
+
+`string`
+
+The local file path of the file to upload.
+
+##### metadata?
+
+`SettableMetadata`
+
+Optional. Metadata to associate with the uploaded file.
+
+#### Returns
+
+`Task`
+
+A Task associated with the upload process.
+
+***
+
+### ref()
+
+> **ref**(`storage`, `path?`): `Reference`
+
+Defined in: [storage/lib/modular/index.d.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L96)
+
+Creates a Reference from a given path or URL.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+The Storage instance.
+
+##### path?
+
+`string`
+
+Optional. A string pointing to a location within the storage bucket.
+
+#### Returns
+
+`Reference`
+
+A new Reference.
+
+***
+
+### refFromURL()
+
+> **refFromURL**(`storage`, `url`): `Reference`
+
+Defined in: [storage/lib/modular/index.d.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L223)
+
+Creates a Reference from a storage bucket URL.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+The Storage instance.
+
+##### url
+
+`string`
+
+A URL pointing to a file or location in a storage bucket.
+
+#### Returns
+
+`Reference`
+
+A Reference pointing to the specified URL.
+
+***
+
+### setMaxDownloadRetryTime()
+
+> **setMaxDownloadRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [storage/lib/modular/index.d.ts:276](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L276)
+
+Sets the maximum time in milliseconds to retry download operations if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+The Storage instance.
+
+##### time
+
+`number`
+
+The new maximum download retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setMaxOperationRetryTime()
+
+> **setMaxOperationRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [storage/lib/modular/index.d.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L230)
+
+Sets the maximum time in milliseconds to retry operations other than upload and download if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+The Storage instance.
+
+##### time
+
+`number`
+
+The new maximum operation retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setMaxUploadRetryTime()
+
+> **setMaxUploadRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [storage/lib/modular/index.d.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L237)
+
+Sets the maximum time in milliseconds to retry upload operations if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+`Module`
+
+The Storage instance.
+
+##### time
+
+`number`
+
+The new maximum upload retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### toString()
+
+> **toString**(`storageRef`): `string`
+
+Defined in: [storage/lib/modular/index.d.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L261)
+
+Returns a gs:// URL for the object at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+#### Returns
+
+`string`
+
+The URL as a string.
+
+***
+
+### updateMetadata()
+
+> **updateMetadata**(`storageRef`, `metadata`): `Promise`\<`FullMetadata`\>
+
+Defined in: [storage/lib/modular/index.d.ts:171](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L171)
+
+Updates metadata for the object at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference to the object.
+
+##### metadata
+
+`SettableMetadata`
+
+The metadata to update.
+
+#### Returns
+
+`Promise`\<`FullMetadata`\>
+
+A promise resolving to the updated FullMetadata.
+
+***
+
+### uploadBytes()
+
+> **uploadBytes**(`storageRef`, `data`, `metadata?`): `Promise`\<`TaskResult`\>
+
+Defined in: [storage/lib/modular/index.d.ts:183](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L183)
+
+Uploads data to the object's location at the given reference. The upload is not resumable.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference where the data should be uploaded.
+
+##### data
+
+The data to upload.
+
+`ArrayBuffer` | `Blob` | `Uint8Array`\<`ArrayBufferLike`\>
+
+##### metadata?
+
+`SettableMetadata`
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+`Promise`\<`TaskResult`\>
+
+A promise resolving to a TaskResult.
+
+***
+
+### uploadBytesResumable()
+
+> **uploadBytesResumable**(`storageRef`, `data`, `metadata?`): `Task`
+
+Defined in: [storage/lib/modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L196)
+
+Initiates a resumable upload session for the data to the object's location at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference where the data should be uploaded.
+
+##### data
+
+The data to upload.
+
+`ArrayBuffer` | `Blob` | `Uint8Array`\<`ArrayBufferLike`\>
+
+##### metadata?
+
+`SettableMetadata`
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+`Task`
+
+A Task associated with the upload process.
+
+***
+
+### uploadString()
+
+> **uploadString**(`storageRef`, `data`, `format?`, `metadata?`): `Task`
+
+Defined in: [storage/lib/modular/index.d.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L210)
+
+Uploads a string to the object's location at the given reference. The string format must be specified.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference where the string should be uploaded.
+
+##### data
+
+`string`
+
+The string data to upload.
+
+##### format?
+
+[`StringFormat`](#stringformat)
+
+Optional. The format of the string ('raw', 'base64', 'base64url', 'data_url').
+
+##### metadata?
+
+`SettableMetadata`
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+`Task`
+
+A Task associated with the upload process.
+
+***
+
+### writeToFile()
+
+> **writeToFile**(`storageRef`, `filePath`): `Task`
+
+Defined in: [storage/lib/modular/index.d.ts:254](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L254)
+
+Downloads a file to the specified local file path on the device.
+
+#### Parameters
+
+##### storageRef
+
+`Reference`
+
+The Reference from which the file should be downloaded.
+
+##### filePath
+
+`string`
+
+The local file path where the file should be written.
+
+#### Returns
+
+`Task`
+
+A Task associated with the download process.
diff --git a/docs/reference/vertexai/lib.mdx b/docs/reference/vertexai/lib.mdx
new file mode 100644
index 0000000000..a436a154c9
--- /dev/null
+++ b/docs/reference/vertexai/lib.mdx
@@ -0,0 +1,884 @@
+[**react-native-firebase**](../README.mdx)
+
+***
+
+[react-native-firebase](../modules.mdx) / vertexai/lib
+
+# vertexai/lib
+
+## Interfaces
+
+### VertexAIOptions
+
+Defined in: [vertexai/lib/public-types.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L34)
+
+Options when initializing the Vertex AI in Firebase SDK.
+
+#### Properties
+
+##### appCheck?
+
+> `optional` **appCheck**: `AppCheck` \| `null`
+
+Defined in: [vertexai/lib/public-types.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L36)
+
+##### auth?
+
+> `optional` **auth**: `Module` \| `null`
+
+Defined in: [vertexai/lib/public-types.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L37)
+
+##### location?
+
+> `optional` **location**: `string`
+
+Defined in: [vertexai/lib/public-types.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L35)
+
+## Type Aliases
+
+### ~~VertexAI~~
+
+> **VertexAI** = [`AI`](../ai/lib.mdx#ai)
+
+Defined in: [vertexai/lib/public-types.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L28)
+
+#### Deprecated
+
+Use the new [AI](../ai/lib.mdx#ai) instead. The Vertex AI in Firebase SDK has been
+replaced with the Firebase AI SDK to accommodate the evolving set of supported features and
+services. For migration details, see the [migration guide](https://firebase.google.com/docs/vertex-ai/migrate-to-latest-sdk).
+An instance of the Vertex AI in Firebase SDK.
+
+## Variables
+
+### VERTEX\_TYPE
+
+> `const` **VERTEX\_TYPE**: `"vertexAI"` = `'vertexAI'`
+
+Defined in: [vertexai/lib/public-types.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/public-types.ts#L42)
+
+***
+
+### ~~VertexAIError~~
+
+> `const` **VertexAIError**: *typeof* [`AIError`](../ai/lib.mdx#aierror) = `AIError`
+
+Defined in: [vertexai/lib/index.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/index.ts#L75)
+
+#### Deprecated
+
+Use the new [AIError](../ai/lib.mdx#aierror) instead. The Vertex AI in Firebase SDK has been
+replaced with the Firebase AI SDK to accommodate the evolving set of supported features and
+services. For migration details, see the [migration guide](https://firebase.google.com/docs/vertex-ai/migrate-to-latest-sdk).
+
+Error class for the Firebase AI SDK.
+
+***
+
+### ~~VertexAIModel~~
+
+> `const` **VertexAIModel**: *typeof* [`AIModel`](../ai/lib.mdx#abstract-aimodel) = `AIModel`
+
+Defined in: [vertexai/lib/index.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/index.ts#L64)
+
+#### Deprecated
+
+Use the new [AIModel](../ai/lib.mdx#abstract-aimodel) instead. The Vertex AI in Firebase SDK has been
+replaced with the Firebase AI SDK to accommodate the evolving set of supported features and
+services. For migration details, see the [migration guide](https://firebase.google.com/docs/vertex-ai/migrate-to-latest-sdk).
+
+Base class for Firebase AI model APIs.
+
+## Functions
+
+### ~~getVertexAI()~~
+
+> **getVertexAI**(`app?`, `options?`): [`AI`](../ai/lib.mdx#ai)
+
+Defined in: [vertexai/lib/index.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/vertexai/lib/index.ts#L42)
+
+#### Parameters
+
+##### app?
+
+`FirebaseApp` = `...`
+
+The @FirebaseApp to use.
+
+##### options?
+
+[`VertexAIOptions`](#vertexaioptions)
+
+The [VertexAIOptions](#vertexaioptions) to use.
+
+#### Returns
+
+[`AI`](../ai/lib.mdx#ai)
+
+#### Deprecated
+
+Use the new [getAI()](../ai/lib.mdx#getai) instead. The Vertex AI in Firebase SDK has been
+replaced with the Firebase AI SDK to accommodate the evolving set of supported features and
+services. For migration details, see the [migration guide](https://firebase.google.com/docs/vertex-ai/migrate-to-latest-sdk).
+
+Returns a [VertexAI](#vertexai) instance for the given app, configured to use the
+Vertex AI Gemini API. This instance will be
+configured to use the Vertex AI Gemini API.
+
+Returns a [VertexAI](#vertexai) instance for the given app.
+
+## References
+
+### AI
+
+Re-exports [AI](../ai/lib.mdx#ai)
+
+***
+
+### AIError
+
+Re-exports [AIError](../ai/lib.mdx#aierror)
+
+***
+
+### AIErrorCode
+
+Re-exports [AIErrorCode](../ai/lib.mdx#aierrorcode)
+
+***
+
+### AIModel
+
+Re-exports [AIModel](../ai/lib.mdx#abstract-aimodel)
+
+***
+
+### AIOptions
+
+Re-exports [AIOptions](../ai/lib.mdx#aioptions-1)
+
+***
+
+### ArraySchema
+
+Re-exports [ArraySchema](../ai/lib.mdx#arrayschema)
+
+***
+
+### AudioTranscriptionConfig
+
+Re-exports [AudioTranscriptionConfig](../ai/lib.mdx#audiotranscriptionconfig)
+
+***
+
+### Backend
+
+Re-exports [Backend](../ai/lib.mdx#abstract-backend)
+
+***
+
+### BackendType
+
+Re-exports [BackendType](../ai/lib.mdx#backendtype-4)
+
+***
+
+### BaseParams
+
+Re-exports [BaseParams](../ai/lib.mdx#baseparams)
+
+***
+
+### BlockReason
+
+Re-exports [BlockReason](../ai/lib.mdx#blockreason)
+
+***
+
+### BooleanSchema
+
+Re-exports [BooleanSchema](../ai/lib.mdx#booleanschema)
+
+***
+
+### ChatSession
+
+Re-exports [ChatSession](../ai/lib.mdx#chatsession)
+
+***
+
+### Citation
+
+Re-exports [Citation](../ai/lib.mdx#citation)
+
+***
+
+### CitationMetadata
+
+Re-exports [CitationMetadata](../ai/lib.mdx#citationmetadata)
+
+***
+
+### Content
+
+Re-exports [Content](../ai/lib.mdx#content)
+
+***
+
+### CountTokensRequest
+
+Re-exports [CountTokensRequest](../ai/lib.mdx#counttokensrequest)
+
+***
+
+### CountTokensResponse
+
+Re-exports [CountTokensResponse](../ai/lib.mdx#counttokensresponse)
+
+***
+
+### CustomErrorData
+
+Re-exports [CustomErrorData](../ai/lib.mdx#customerrordata-1)
+
+***
+
+### Date
+
+Re-exports [Date](../ai/lib.mdx#date)
+
+***
+
+### EnhancedGenerateContentResponse
+
+Re-exports [EnhancedGenerateContentResponse](../ai/lib.mdx#enhancedgeneratecontentresponse)
+
+***
+
+### ErrorDetails
+
+Re-exports [ErrorDetails](../ai/lib.mdx#errordetails-1)
+
+***
+
+### FileData
+
+Re-exports [FileData](../ai/lib.mdx#filedata)
+
+***
+
+### FileDataPart
+
+Re-exports [FileDataPart](../ai/lib.mdx#filedatapart)
+
+***
+
+### FinishReason
+
+Re-exports [FinishReason](../ai/lib.mdx#finishreason)
+
+***
+
+### FunctionCall
+
+Re-exports [FunctionCall](../ai/lib.mdx#functioncall-1)
+
+***
+
+### FunctionCallingConfig
+
+Re-exports [FunctionCallingConfig](../ai/lib.mdx#functioncallingconfig)
+
+***
+
+### FunctionCallingMode
+
+Re-exports [FunctionCallingMode](../ai/lib.mdx#functioncallingmode)
+
+***
+
+### FunctionCallPart
+
+Re-exports [FunctionCallPart](../ai/lib.mdx#functioncallpart)
+
+***
+
+### FunctionDeclaration
+
+Re-exports [FunctionDeclaration](../ai/lib.mdx#functiondeclaration)
+
+***
+
+### FunctionDeclarationsTool
+
+Re-exports [FunctionDeclarationsTool](../ai/lib.mdx#functiondeclarationstool)
+
+***
+
+### FunctionResponse
+
+Re-exports [FunctionResponse](../ai/lib.mdx#functionresponse-2)
+
+***
+
+### FunctionResponsePart
+
+Re-exports [FunctionResponsePart](../ai/lib.mdx#functionresponsepart)
+
+***
+
+### GenerateContentCandidate
+
+Re-exports [GenerateContentCandidate](../ai/lib.mdx#generatecontentcandidate)
+
+***
+
+### GenerateContentRequest
+
+Re-exports [GenerateContentRequest](../ai/lib.mdx#generatecontentrequest)
+
+***
+
+### GenerateContentResponse
+
+Re-exports [GenerateContentResponse](../ai/lib.mdx#generatecontentresponse)
+
+***
+
+### GenerateContentResult
+
+Re-exports [GenerateContentResult](../ai/lib.mdx#generatecontentresult)
+
+***
+
+### GenerateContentStreamResult
+
+Re-exports [GenerateContentStreamResult](../ai/lib.mdx#generatecontentstreamresult)
+
+***
+
+### GenerationConfig
+
+Re-exports [GenerationConfig](../ai/lib.mdx#generationconfig-6)
+
+***
+
+### GenerativeContentBlob
+
+Re-exports [GenerativeContentBlob](../ai/lib.mdx#generativecontentblob)
+
+***
+
+### GenerativeModel
+
+Re-exports [GenerativeModel](../ai/lib.mdx#generativemodel)
+
+***
+
+### getAI
+
+Re-exports [getAI](../ai/lib.mdx#getai)
+
+***
+
+### getGenerativeModel
+
+Re-exports [getGenerativeModel](../ai/lib.mdx#getgenerativemodel)
+
+***
+
+### getImagenModel
+
+Re-exports [getImagenModel](../ai/lib.mdx#getimagenmodel)
+
+***
+
+### getLiveGenerativeModel
+
+Re-exports [getLiveGenerativeModel](../ai/lib.mdx#getlivegenerativemodel)
+
+***
+
+### getTemplateGenerativeModel
+
+Re-exports [getTemplateGenerativeModel](../ai/lib.mdx#gettemplategenerativemodel)
+
+***
+
+### getTemplateImagenModel
+
+Re-exports [getTemplateImagenModel](../ai/lib.mdx#gettemplateimagenmodel)
+
+***
+
+### GoogleAIBackend
+
+Re-exports [GoogleAIBackend](../ai/lib.mdx#googleaibackend)
+
+***
+
+### GoogleAICitationMetadata
+
+Re-exports [GoogleAICitationMetadata](../ai/lib.mdx#googleaicitationmetadata)
+
+***
+
+### GoogleAICountTokensRequest
+
+Re-exports [GoogleAICountTokensRequest](../ai/lib.mdx#googleaicounttokensrequest)
+
+***
+
+### GoogleAIGenerateContentCandidate
+
+Re-exports [GoogleAIGenerateContentCandidate](../ai/lib.mdx#googleaigeneratecontentcandidate)
+
+***
+
+### GoogleAIGenerateContentResponse
+
+Re-exports [GoogleAIGenerateContentResponse](../ai/lib.mdx#googleaigeneratecontentresponse)
+
+***
+
+### GoogleSearch
+
+Re-exports [GoogleSearch](../ai/lib.mdx#googlesearch)
+
+***
+
+### GoogleSearchTool
+
+Re-exports [GoogleSearchTool](../ai/lib.mdx#googlesearchtool)
+
+***
+
+### GroundingAttribution
+
+Re-exports [GroundingAttribution](../ai/lib.mdx#groundingattribution)
+
+***
+
+### GroundingChunk
+
+Re-exports [GroundingChunk](../ai/lib.mdx#groundingchunk)
+
+***
+
+### GroundingMetadata
+
+Re-exports [GroundingMetadata](../ai/lib.mdx#groundingmetadata-2)
+
+***
+
+### GroundingSupport
+
+Re-exports [GroundingSupport](../ai/lib.mdx#groundingsupport)
+
+***
+
+### HarmBlockMethod
+
+Re-exports [HarmBlockMethod](../ai/lib.mdx#harmblockmethod)
+
+***
+
+### HarmBlockThreshold
+
+Re-exports [HarmBlockThreshold](../ai/lib.mdx#harmblockthreshold)
+
+***
+
+### HarmCategory
+
+Re-exports [HarmCategory](../ai/lib.mdx#harmcategory)
+
+***
+
+### HarmProbability
+
+Re-exports [HarmProbability](../ai/lib.mdx#harmprobability)
+
+***
+
+### HarmSeverity
+
+Re-exports [HarmSeverity](../ai/lib.mdx#harmseverity)
+
+***
+
+### ImagenAspectRatio
+
+Re-exports [ImagenAspectRatio](../ai/lib.mdx#imagenaspectratio-1)
+
+***
+
+### ImagenGCSImage
+
+Re-exports [ImagenGCSImage](../ai/lib.mdx#imagengcsimage)
+
+***
+
+### ImagenGenerationConfig
+
+Re-exports [ImagenGenerationConfig](../ai/lib.mdx#imagengenerationconfig)
+
+***
+
+### ImagenGenerationResponse
+
+Re-exports [ImagenGenerationResponse](../ai/lib.mdx#imagengenerationresponse)
+
+***
+
+### ImagenImageFormat
+
+Re-exports [ImagenImageFormat](../ai/lib.mdx#imagenimageformat)
+
+***
+
+### ImagenInlineImage
+
+Re-exports [ImagenInlineImage](../ai/lib.mdx#imageninlineimage)
+
+***
+
+### ImagenModel
+
+Re-exports [ImagenModel](../ai/lib.mdx#imagenmodel)
+
+***
+
+### ImagenModelParams
+
+Re-exports [ImagenModelParams](../ai/lib.mdx#imagenmodelparams)
+
+***
+
+### ImagenPersonFilterLevel
+
+Re-exports [ImagenPersonFilterLevel](../ai/lib.mdx#imagenpersonfilterlevel-1)
+
+***
+
+### ImagenSafetyFilterLevel
+
+Re-exports [ImagenSafetyFilterLevel](../ai/lib.mdx#imagensafetyfilterlevel-1)
+
+***
+
+### ImagenSafetySettings
+
+Re-exports [ImagenSafetySettings](../ai/lib.mdx#imagensafetysettings)
+
+***
+
+### InferenceMode
+
+Re-exports [InferenceMode](../ai/lib.mdx#inferencemode-1)
+
+***
+
+### InlineDataPart
+
+Re-exports [InlineDataPart](../ai/lib.mdx#inlinedatapart)
+
+***
+
+### IntegerSchema
+
+Re-exports [IntegerSchema](../ai/lib.mdx#integerschema)
+
+***
+
+### LiveGenerationConfig
+
+Re-exports [LiveGenerationConfig](../ai/lib.mdx#livegenerationconfig)
+
+***
+
+### LiveGenerativeModel
+
+Re-exports [LiveGenerativeModel](../ai/lib.mdx#livegenerativemodel)
+
+***
+
+### LiveModelParams
+
+Re-exports [LiveModelParams](../ai/lib.mdx#livemodelparams)
+
+***
+
+### LiveResponseType
+
+Re-exports [LiveResponseType](../ai/lib.mdx#liveresponsetype-1)
+
+***
+
+### LiveServerContent
+
+Re-exports [LiveServerContent](../ai/lib.mdx#liveservercontent)
+
+***
+
+### LiveServerToolCall
+
+Re-exports [LiveServerToolCall](../ai/lib.mdx#liveservertoolcall)
+
+***
+
+### LiveServerToolCallCancellation
+
+Re-exports [LiveServerToolCallCancellation](../ai/lib.mdx#liveservertoolcallcancellation)
+
+***
+
+### LiveSession
+
+Re-exports [LiveSession](../ai/lib.mdx#livesession)
+
+***
+
+### Modality
+
+Re-exports [Modality](../ai/lib.mdx#modality)
+
+***
+
+### ModalityTokenCount
+
+Re-exports [ModalityTokenCount](../ai/lib.mdx#modalitytokencount)
+
+***
+
+### ModelParams
+
+Re-exports [ModelParams](../ai/lib.mdx#modelparams)
+
+***
+
+### NumberSchema
+
+Re-exports [NumberSchema](../ai/lib.mdx#numberschema)
+
+***
+
+### ObjectSchema
+
+Re-exports [ObjectSchema](../ai/lib.mdx#objectschema)
+
+***
+
+### ObjectSchemaInterface
+
+Re-exports [ObjectSchemaInterface](../ai/lib.mdx#objectschemainterface)
+
+***
+
+### Part
+
+Re-exports [Part](../ai/lib.mdx#part)
+
+***
+
+### POSSIBLE\_ROLES
+
+Re-exports [POSSIBLE_ROLES](../ai/lib.mdx#possible_roles)
+
+***
+
+### PrebuiltVoiceConfig
+
+Re-exports [PrebuiltVoiceConfig](../ai/lib.mdx#prebuiltvoiceconfig)
+
+***
+
+### PromptFeedback
+
+Re-exports [PromptFeedback](../ai/lib.mdx#promptfeedback-3)
+
+***
+
+### RequestOptions
+
+Re-exports [RequestOptions](../ai/lib.mdx#requestoptions-5)
+
+***
+
+### ResponseModality
+
+Re-exports [ResponseModality](../ai/lib.mdx#responsemodality-1)
+
+***
+
+### RetrievedContextAttribution
+
+Re-exports [RetrievedContextAttribution](../ai/lib.mdx#retrievedcontextattribution)
+
+***
+
+### Role
+
+Re-exports [Role](../ai/lib.mdx#role-1)
+
+***
+
+### SafetyRating
+
+Re-exports [SafetyRating](../ai/lib.mdx#safetyrating)
+
+***
+
+### SafetySetting
+
+Re-exports [SafetySetting](../ai/lib.mdx#safetysetting)
+
+***
+
+### Schema
+
+Re-exports [Schema](../ai/lib.mdx#abstract-schema)
+
+***
+
+### SchemaInterface
+
+Re-exports [SchemaInterface](../ai/lib.mdx#schemainterface)
+
+***
+
+### SchemaParams
+
+Re-exports [SchemaParams](../ai/lib.mdx#schemaparams)
+
+***
+
+### SchemaRequest
+
+Re-exports [SchemaRequest](../ai/lib.mdx#schemarequest)
+
+***
+
+### SchemaShared
+
+Re-exports [SchemaShared](../ai/lib.mdx#schemashared)
+
+***
+
+### SchemaType
+
+Re-exports [SchemaType](../ai/lib.mdx#schematype)
+
+***
+
+### Segment
+
+Re-exports [Segment](../ai/lib.mdx#segment-2)
+
+***
+
+### SpeechConfig
+
+Re-exports [SpeechConfig](../ai/lib.mdx#speechconfig-1)
+
+***
+
+### StartChatParams
+
+Re-exports [StartChatParams](../ai/lib.mdx#startchatparams)
+
+***
+
+### StringSchema
+
+Re-exports [StringSchema](../ai/lib.mdx#stringschema)
+
+***
+
+### TemplateGenerativeModel
+
+Re-exports [TemplateGenerativeModel](../ai/lib.mdx#templategenerativemodel)
+
+***
+
+### TemplateImagenModel
+
+Re-exports [TemplateImagenModel](../ai/lib.mdx#templateimagenmodel)
+
+***
+
+### TextPart
+
+Re-exports [TextPart](../ai/lib.mdx#textpart)
+
+***
+
+### ThinkingConfig
+
+Re-exports [ThinkingConfig](../ai/lib.mdx#thinkingconfig-1)
+
+***
+
+### Tool
+
+Re-exports [Tool](../ai/lib.mdx#tool)
+
+***
+
+### ToolConfig
+
+Re-exports [ToolConfig](../ai/lib.mdx#toolconfig-6)
+
+***
+
+### Transcription
+
+Re-exports [Transcription](../ai/lib.mdx#transcription)
+
+***
+
+### TypedSchema
+
+Re-exports [TypedSchema](../ai/lib.mdx#typedschema)
+
+***
+
+### UsageMetadata
+
+Re-exports [UsageMetadata](../ai/lib.mdx#usagemetadata-3)
+
+***
+
+### VertexAIBackend
+
+Re-exports [VertexAIBackend](../ai/lib.mdx#vertexaibackend)
+
+***
+
+### VertexAIErrorCode
+
+Renames and re-exports [AIErrorCode](../ai/lib.mdx#aierrorcode)
+
+***
+
+### VideoMetadata
+
+Re-exports [VideoMetadata](../ai/lib.mdx#videometadata-1)
+
+***
+
+### VoiceConfig
+
+Re-exports [VoiceConfig](../ai/lib.mdx#voiceconfig-1)
+
+***
+
+### WebAttribution
+
+Re-exports [WebAttribution](../ai/lib.mdx#webattribution)
+
+***
+
+### WebGroundingChunk
+
+Re-exports [WebGroundingChunk](../ai/lib.mdx#webgroundingchunk)
From 68fa6d66441720379a041c13d1e1bd056d304575 Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 07:50:51 -0500
Subject: [PATCH 11/20] docs(lint): format-on-save auto-formatting
---
docs.json | 62 ++++++++++++++++++++++++++++---------------------------
1 file changed, 32 insertions(+), 30 deletions(-)
diff --git a/docs.json b/docs.json
index 1fe15fdde7..b45e6a2ace 100644
--- a/docs.json
+++ b/docs.json
@@ -24,10 +24,16 @@
{ "title": "Migration Guide to v24", "href": "/migrating-to-v24" },
{ "title": "TypeScript", "href": "/typescript" },
{ "title": "Platforms", "href": "/platforms" },
- { "title": "Release Notes", "href": "https://github.com/invertase/react-native-firebase/blob/main/CHANGELOG.md" },
+ {
+ "title": "Release Notes",
+ "href": "https://github.com/invertase/react-native-firebase/blob/main/CHANGELOG.md"
+ },
{ "title": "FAQs and Tips", "href": "/faqs-and-tips" },
{ "title": "Feature Requests", "href": "https://invertase.canny.io/react-native-firebase" },
- { "title": "Contributing", "href": "https://github.com/invertase/react-native-firebase/blob/main/CONTRIBUTING.md" }
+ {
+ "title": "Contributing",
+ "href": "https://github.com/invertase/react-native-firebase/blob/main/CONTRIBUTING.md"
+ }
]
},
{
@@ -60,22 +66,21 @@
"pages": [
{ "title": "Usage", "href": "/analytics/usage" },
{ "title": "Screen Tracking", "href": "/analytics/screen-tracking" },
- { "title": "Building an Analytics Funnel", "href": "https://blog.theodo.com/2018/01/building-google-analytics-funnel-firebase-react-native" }
+ {
+ "title": "Building an Analytics Funnel",
+ "href": "https://blog.theodo.com/2018/01/building-google-analytics-funnel-firebase-react-native"
+ }
]
},
{
"group": "App Check",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
- "pages": [
- { "title": "Usage", "href": "/app-check/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/app-check/usage" }]
},
{
"group": "App Distribution",
"icon": "//static.invertase.io/assets/firebase/app-distribution.svg",
- "pages": [
- { "title": "Usage", "href": "/app-distribution/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/app-distribution/usage" }]
},
{
"group": "Authentication",
@@ -96,7 +101,10 @@
{ "title": "Usage with Emulator", "href": "/firestore/emulator" },
{ "title": "Usage with FlatLists", "href": "/firestore/usage-with-flatlists" },
{ "title": "Implementing Pagination", "href": "/firestore/pagination" },
- { "title": "Building a \"TODO\" app", "href": "https://invertase.io/blog/getting-started-with-cloud-firestore-on-react-native" }
+ {
+ "title": "Building a \"TODO\" app",
+ "href": "https://invertase.io/blog/getting-started-with-cloud-firestore-on-react-native"
+ }
]
},
{
@@ -104,7 +112,10 @@
"icon": "//static.invertase.io/assets/firebase/cloud-functions.svg",
"pages": [
{ "title": "Usage", "href": "/functions/usage" },
- { "title": "Writing & Deploying Functions", "href": "/functions/writing-deploying-functions" }
+ {
+ "title": "Writing & Deploying Functions",
+ "href": "/functions/writing-deploying-functions"
+ }
]
},
{
@@ -122,9 +133,7 @@
{
"group": "Cloud Storage",
"icon": "//static.invertase.io/assets/firebase/cloud-storage.svg",
- "pages": [
- { "title": "Usage", "href": "/storage/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/storage/usage" }]
},
{
"group": "Core / App",
@@ -155,30 +164,22 @@
{
"group": "In-App Messaging",
"icon": "//static.invertase.io/assets/firebase/in-app-messaging.svg",
- "pages": [
- { "title": "Usage", "href": "/in-app-messaging/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/in-app-messaging/usage" }]
},
{
"group": "Installations",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
- "pages": [
- { "title": "Usage", "href": "/installations/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/installations/usage" }]
},
{
"group": "ML",
"icon": "//static.invertase.io/assets/firebase/ml-kit.svg",
- "pages": [
- { "title": "Usage", "href": "/ml/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/ml/usage" }]
},
{
"group": "Remote Config",
"icon": "//static.invertase.io/assets/firebase/remote-config.svg",
- "pages": [
- { "title": "Usage", "href": "/remote-config/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/remote-config/usage" }]
},
{
"group": "Performance Monitoring",
@@ -192,16 +193,17 @@
{
"group": "VertexAi",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
- "pages": [
- { "title": "Usage", "href": "/vertexai/usage" }
- ]
+ "pages": [{ "title": "Usage", "href": "/vertexai/usage" }]
},
{
"group": "Legacy docs",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [
{ "title": "Migrating to v6", "href": "/migrating-to-v6" },
- { "title": "Legacy Docs (<= v5)", "href": "https://v5.rnfirebase.io/docs/v5.x.x/getting-started" }
+ {
+ "title": "Legacy Docs (<= v5)",
+ "href": "https://v5.rnfirebase.io/docs/v5.x.x/getting-started"
+ }
]
}
]
From 13f82f51c04068756060ef1a5d04cdfb3b395c21 Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 07:53:47 -0500
Subject: [PATCH 12/20] docs: put reference API on separate tab
---
docs.json | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/docs.json b/docs.json
index b45e6a2ace..fa04f6ab28 100644
--- a/docs.json
+++ b/docs.json
@@ -14,9 +14,22 @@
"x": "@invertaseio",
"github": "invertase/react-native-firebase"
},
+ "tabs": [
+ {
+ "id": "root",
+ "title": "Documentation",
+ "href": "/"
+ },
+ {
+ "id": "reference",
+ "title": "Reference API",
+ "href": "/reference"
+ }
+ ],
"sidebar": [
{
"group": "Getting Started",
+ "tab": "root",
"pages": [
{ "title": "Getting Started", "href": "/" },
{ "title": "Migration Guide to v22", "href": "/migrating-to-v22" },
@@ -38,6 +51,7 @@
},
{
"group": "Reference API",
+ "tab": "reference",
"pages": [
{ "title": "ai", "href": "/reference/ai/lib" },
{ "title": "analytics", "href": "/reference/analytics/lib/modular" },
@@ -62,6 +76,7 @@
},
{
"group": "Analytics",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/analytics.svg",
"pages": [
{ "title": "Usage", "href": "/analytics/usage" },
@@ -74,16 +89,19 @@
},
{
"group": "App Check",
+ "tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/app-check/usage" }]
},
{
"group": "App Distribution",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/app-distribution.svg",
"pages": [{ "title": "Usage", "href": "/app-distribution/usage" }]
},
{
"group": "Authentication",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/authentication.svg",
"pages": [
{ "title": "Usage", "href": "/auth/usage" },
@@ -95,6 +113,7 @@
},
{
"group": "Cloud Firestore",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-firestore.svg",
"pages": [
{ "title": "Usage", "href": "/firestore/usage" },
@@ -109,6 +128,7 @@
},
{
"group": "Cloud Functions",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-functions.svg",
"pages": [
{ "title": "Usage", "href": "/functions/usage" },
@@ -120,6 +140,7 @@
},
{
"group": "Cloud Messaging",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-messaging.svg",
"pages": [
{ "title": "Usage", "href": "/messaging/usage" },
@@ -132,11 +153,13 @@
},
{
"group": "Cloud Storage",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/cloud-storage.svg",
"pages": [{ "title": "Usage", "href": "/storage/usage" }]
},
{
"group": "Core / App",
+ "tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [
{ "title": "Usage", "href": "/app/usage" },
@@ -146,6 +169,7 @@
},
{
"group": "Crashlytics",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/crashlytics.svg",
"pages": [
{ "title": "Usage", "href": "/crashlytics/usage" },
@@ -154,6 +178,7 @@
},
{
"group": "Realtime Database",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/realtime-database.svg",
"pages": [
{ "title": "Usage", "href": "/database/usage" },
@@ -163,26 +188,31 @@
},
{
"group": "In-App Messaging",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/in-app-messaging.svg",
"pages": [{ "title": "Usage", "href": "/in-app-messaging/usage" }]
},
{
"group": "Installations",
+ "tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/installations/usage" }]
},
{
"group": "ML",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/ml-kit.svg",
"pages": [{ "title": "Usage", "href": "/ml/usage" }]
},
{
"group": "Remote Config",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/remote-config.svg",
"pages": [{ "title": "Usage", "href": "/remote-config/usage" }]
},
{
"group": "Performance Monitoring",
+ "tab": "root",
"icon": "//static.invertase.io/assets/firebase/performance-monitoring.svg",
"pages": [
{ "title": "Usage", "href": "/perf/usage" },
@@ -192,11 +222,13 @@
},
{
"group": "VertexAi",
+ "tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [{ "title": "Usage", "href": "/vertexai/usage" }]
},
{
"group": "Legacy docs",
+ "tab": "root",
"icon": "//static.invertase.io/assets/social/firebase-logo.png",
"pages": [
{ "title": "Migrating to v6", "href": "/migrating-to-v6" },
From 178fe3e6ed209fb0e145e1788b7e2becdbec5b83 Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 08:55:11 -0500
Subject: [PATCH 13/20] docs(reference): move typedoc main README file to
index.mdx
---
docs/reference/{README.mdx => index.mdx} | 0
package.json | 3 ++-
2 files changed, 2 insertions(+), 1 deletion(-)
rename docs/reference/{README.mdx => index.mdx} (100%)
diff --git a/docs/reference/README.mdx b/docs/reference/index.mdx
similarity index 100%
rename from docs/reference/README.mdx
rename to docs/reference/index.mdx
diff --git a/package.json b/package.json
index 5748ab4b4e..87dc675970 100644
--- a/package.json
+++ b/package.json
@@ -62,7 +62,8 @@
"tests:macos:test": "cd tests && npx jet --target=macos --coverage",
"tests:macos:test-cover": "cd tests && npx jet --target=macos --coverage",
"format:js": "prettier --write \"packages/**/*.{js,ts,tsx}\"",
- "format:markdown": "prettier --write \"docs/**/*.md\""
+ "format:markdown": "prettier --write \"docs/**/*.md\"",
+ "typedoc": "typedoc && mv docs/reference/README.mdx docs/reference/index.mdx"
},
"devDependencies": {
"@babel/core": "^7.28.6",
From 1e5655e39fdb24ad809e5dd50d9e1d2aabc4118f Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 09:42:38 -0500
Subject: [PATCH 14/20] empty reference index page as workaround
---
docs/reference/index.mdx | 103 +++------------------------------------
1 file changed, 8 insertions(+), 95 deletions(-)
diff --git a/docs/reference/index.mdx b/docs/reference/index.mdx
index 49e86af7ce..7ab527f2cf 100644
--- a/docs/reference/index.mdx
+++ b/docs/reference/index.mdx
@@ -1,97 +1,10 @@
-**react-native-firebase**
-***
+# React Native Firebase Reference API Documentation
-
-
+* ai
+* analytics
+* app
+** app Utils
+* app-check
+* etc
+* etc
From a393eeaa3313abe7a51b9e68b37531aac522c4fc Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 09:50:20 -0500
Subject: [PATCH 15/20] app reference page error bisect WIP
---
docs/reference/app/lib/modular.mdx | 10 ++--------
docs/reference/index.mdx | 3 ++-
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/docs/reference/app/lib/modular.mdx b/docs/reference/app/lib/modular.mdx
index 751fe36fec..19c3464dd4 100644
--- a/docs/reference/app/lib/modular.mdx
+++ b/docs/reference/app/lib/modular.mdx
@@ -16,6 +16,8 @@ Defined in: [app/lib/modular.ts:219](https://github.com/invertase/react-native-f
## Functions
+cache bust
+
### deleteApp()
> **deleteApp**(`app`): `Promise`\<`void`\>
@@ -36,8 +38,6 @@ The app to delete.
`Promise`\<`void`\>
-Promise
-
***
### getApp()
@@ -230,8 +230,6 @@ the value of the native preference to set
`Promise`\<`void`\>
-Promise
-
***
### preferencesSetString()
@@ -260,8 +258,6 @@ the value of the native preference to set
`Promise`\<`void`\>
-Promise
-
***
### registerVersion()
@@ -296,8 +292,6 @@ library variant. Optional.
`Promise`\<`void`\>
-Promise
-
***
### setLogLevel()
diff --git a/docs/reference/index.mdx b/docs/reference/index.mdx
index 7ab527f2cf..d506b35bc0 100644
--- a/docs/reference/index.mdx
+++ b/docs/reference/index.mdx
@@ -1,5 +1,6 @@
+**react-native-firebase**
-# React Native Firebase Reference API Documentation
+***
* ai
* analytics
From 416e1b14d553528699cd0c8896de3ea10840dbf2 Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 10:28:05 -0500
Subject: [PATCH 16/20] style: enclose return types in code backticks
---
packages/app/lib/modular.ts | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/app/lib/modular.ts b/packages/app/lib/modular.ts
index 71c2a86d54..ef82369849 100644
--- a/packages/app/lib/modular.ts
+++ b/packages/app/lib/modular.ts
@@ -33,7 +33,7 @@ import type { RNFBAppModuleInterface } from './internal/NativeModules';
/**
* Renders this app unusable and frees the resources of all associated services.
* @param app - The app to delete.
- * @returns Promise
+ * @returns `Promise`
*/
export function deleteApp(app: ReactNativeFirebase.FirebaseApp): Promise {
return deleteAppCompat.call(
@@ -50,7 +50,7 @@ export function deleteApp(app: ReactNativeFirebase.FirebaseApp): Promise {
* @param _libraryKeyOrName - library name or key.
* @param _version - library version.
* @param _variant - library variant. Optional.
- * @returns Promise
+ * @returns `Promise`
*/
export function registerVersion(
_libraryKeyOrName: string,
@@ -170,7 +170,7 @@ export function jsonGetAll(): Promise<{ [key: string]: string | boolean }> {
/**
* Clears react-native-firebase specific native preferences
- * @returns Promise
+ * @returns `Promise`
*/
export function preferencesClearAll(): Promise {
const RNFBAppModule = getReactNativeModule(
@@ -194,7 +194,7 @@ export function preferencesGetAll(): Promise<{ [key: string]: string | boolean }
* Sets react-native-firebase specific native boolean preference
* @param key the name of the native preference to set
* @param value the value of the native preference to set
- * @returns Promise
+ * @returns `Promise`
*/
export function preferencesSetBool(key: string, value: boolean): Promise {
const RNFBAppModule = getReactNativeModule(
@@ -207,7 +207,7 @@ export function preferencesSetBool(key: string, value: boolean): Promise {
* Sets react-native-firebase specific native string preference
* @param key the name of the native preference to set
* @param value the value of the native preference to set
- * @returns Promise
+ * @returns `Promise`
*/
export function preferencesSetString(key: string, value: string): Promise {
const RNFBAppModule = getReactNativeModule(
From 97c01ad7defbdeac33e86c3ab806bbccdae04d2f Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 10:28:35 -0500
Subject: [PATCH 17/20] docs: create empty reference index page to avoid render
issues
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 87dc675970..f491fd00c2 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,7 @@
"tests:macos:test-cover": "cd tests && npx jet --target=macos --coverage",
"format:js": "prettier --write \"packages/**/*.{js,ts,tsx}\"",
"format:markdown": "prettier --write \"docs/**/*.md\"",
- "typedoc": "typedoc && mv docs/reference/README.mdx docs/reference/index.mdx"
+ "typedoc": "typedoc && rimraf docs/reference/README.mdx && echo '# Reference API Documentation' > docs/reference/index.mdx"
},
"devDependencies": {
"@babel/core": "^7.28.6",
From 7e83992d2c04ee64a588c4b74a50ae7a7fdbf7b3 Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Fri, 13 Feb 2026 10:29:06 -0500
Subject: [PATCH 18/20] docs(reference): regenerate typedoc with fixes
---
docs/reference/app-check/lib/modular.mdx | 7 +-
docs/reference/app/lib/modular.mdx | 12 ++-
docs/reference/database/lib/modular.mdx | 8 +-
docs/reference/firestore/lib/modular.mdx | 30 +++---
.../firestore/lib/modular/FieldValue.mdx | 17 ++--
.../firestore/lib/modular/GeoPoint.mdx | 4 +-
.../firestore/lib/modular/Timestamp.mdx | 2 +-
.../firestore/lib/modular/VectorValue.mdx | 4 +-
.../firestore/lib/modular/query-1.mdx | 93 +++++++++----------
.../firestore/lib/modular/snapshot.mdx | 8 +-
docs/reference/index.mdx | 12 +--
docs/reference/remote-config/lib/modular.mdx | 52 ++++++++++-
12 files changed, 150 insertions(+), 99 deletions(-)
diff --git a/docs/reference/app-check/lib/modular.mdx b/docs/reference/app-check/lib/modular.mdx
index 1bdd10fd32..b9bc9fc09a 100644
--- a/docs/reference/app-check/lib/modular.mdx
+++ b/docs/reference/app-check/lib/modular.mdx
@@ -88,13 +88,12 @@ For use with server calls to firebase functions or custom backends using the fir
`AppCheck`
The App Check instance.
+@returns`Promise`
#### Returns
`Promise`\<`AppCheckTokenResult`\>
-Promise
-
***
### getToken()
@@ -124,7 +123,7 @@ Whether to force refresh the token. Optional
`Promise`\<`AppCheckTokenResult`\>
-Promise
+`Promise`
***
@@ -154,7 +153,7 @@ App Check options.
`Promise`\<`AppCheck`\>
-Promise
+`Promise`
***
diff --git a/docs/reference/app/lib/modular.mdx b/docs/reference/app/lib/modular.mdx
index 19c3464dd4..3aa18ff835 100644
--- a/docs/reference/app/lib/modular.mdx
+++ b/docs/reference/app/lib/modular.mdx
@@ -16,8 +16,6 @@ Defined in: [app/lib/modular.ts:219](https://github.com/invertase/react-native-f
## Functions
-cache bust
-
### deleteApp()
> **deleteApp**(`app`): `Promise`\<`void`\>
@@ -38,6 +36,8 @@ The app to delete.
`Promise`\<`void`\>
+`Promise`
+
***
### getApp()
@@ -184,7 +184,7 @@ Clears react-native-firebase specific native preferences
`Promise`\<`void`\>
-Promise
+`Promise`
***
@@ -230,6 +230,8 @@ the value of the native preference to set
`Promise`\<`void`\>
+`Promise`
+
***
### preferencesSetString()
@@ -258,6 +260,8 @@ the value of the native preference to set
`Promise`\<`void`\>
+`Promise`
+
***
### registerVersion()
@@ -292,6 +296,8 @@ library variant. Optional.
`Promise`\<`void`\>
+`Promise`
+
***
### setLogLevel()
diff --git a/docs/reference/database/lib/modular.mdx b/docs/reference/database/lib/modular.mdx
index 47e748e703..050e3a2aa9 100644
--- a/docs/reference/database/lib/modular.mdx
+++ b/docs/reference/database/lib/modular.mdx
@@ -146,8 +146,6 @@ instance uses a custom database URL.
`FirebaseApp`
-The FirebaseApp instance that the returned Realtime Database instance is associated with.
-
##### url?
`string`
@@ -156,6 +154,8 @@ The FirebaseApp instance that the returned Realtime Database instance is associa
`Module`
+Database instance
+
***
### getServerTime()
@@ -342,6 +342,8 @@ The Firebase URL at which the returned Reference will point.
`Reference`
+DatabaseReference
+
***
### serverTimestamp()
@@ -401,6 +403,8 @@ Whether debug logging is enabled.
`void`
+void
+
***
### setPersistenceCacheSizeBytes()
diff --git a/docs/reference/firestore/lib/modular.mdx b/docs/reference/firestore/lib/modular.mdx
index dfc808d4aa..d35181d502 100644
--- a/docs/reference/firestore/lib/modular.mdx
+++ b/docs/reference/firestore/lib/modular.mdx
@@ -30,7 +30,7 @@ Defined in: [firestore/lib/modular/index.d.ts:1298](https://github.com/invertase
**`Internal`**
-Create a new AggregateField
+Create a new `AggregateField`
###### Parameters
@@ -1278,7 +1278,7 @@ with `merge` and `mergeFields`, `toFirestore()` must be defined with
`PartialWithFieldValue`.
The `WithFieldValue` type extends `T` to also allow FieldValues such as
-(deleteField:1) to be used as property values.
+deleteField to be used as property values.
###### Parameters
@@ -1505,7 +1505,7 @@ Defined in: [firestore/lib/modular/index.d.ts:108](https://github.com/invertase/
Defined in: [firestore/lib/modular/index.d.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/index.d.ts#L77)
-For each field (e.g. 'bar'), find all nested keys (e.g. {'bar.baz': T1, 'bar.qux': T2}).
+For each field (e.g. 'bar'), find all nested keys (e.g. `{'bar.baz': T1, 'bar.qux': T2}`).
Intersect them together to make a single map containing all possible keys that are all marked as optional
#### Type Parameters
@@ -2047,11 +2047,13 @@ generated by `setIndexConfiguration()`, which is deprecated.
`PersistentCacheIndexManager`
+The `PersistentCacheIndexManager` instance.
+
#### Returns
`Promise`\<`void`\>
-- A promise that resolves when the operation is complete.
+`Promise`- A promise that resolves when the operation is complete.
***
@@ -2094,11 +2096,13 @@ The indexes which have been created by calling `enableIndexAutoCreation()` still
`PersistentCacheIndexManager`
+The `PersistentCacheIndexManager` instance.
+
#### Returns
`Promise`\<`void`\>
-- A promise that resolves when the operation is complete.
+`Promise` - A promise that resolves when the operation is complete.
***
@@ -2291,11 +2295,13 @@ This feature is disabled by default.
`PersistentCacheIndexManager`
+The `PersistentCacheIndexManager` instance.
+
#### Returns
`Promise`\<`void`\>
-- A promise that resolves when the operation is complete.
+`Promise` - A promise that resolves when the operation is complete.
***
@@ -2420,7 +2426,7 @@ instance with default settings.
`FirebaseApp`
-The @firebase/app#FirebaseApp instance that the returned Firestore
+The FirebaseApp instance that the returned Firestore
instance is associated with.
##### Returns
@@ -2467,7 +2473,7 @@ instance with default settings.
`FirebaseApp`
-The @firebase/app#FirebaseApp instance that the returned Firestore
+The FirebaseApp instance that the returned Firestore
instance is associated with.
###### databaseId?
@@ -2500,11 +2506,13 @@ Persistent cache indexes are optional indexes that only exist within the SDK to
`Module`
+The Firestore instance.
+
#### Returns
`PersistentCacheIndexManager` \| `null`
-- The `PersistentCacheIndexManager` instance or `null` if local persistent storage is not in use.
+`PersistentCacheIndexManager | null` - The `PersistentCacheIndexManager` instance or `null` if local persistent storage is not in use.
***
@@ -2624,13 +2632,13 @@ Returns true if the provided references are equal.
##### left
-DocumentReference | CollectionReference A reference to compare.
+`DocumentReference | CollectionReference` A reference to compare.
[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\> | [`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
##### right
-DocumentReference | CollectionReference A reference to compare.
+`DocumentReference | CollectionReference` A reference to compare.
[`DocumentReference`](#documentreference)\<`AppModelType`, `DbModelType`\> | [`CollectionReference`](#collectionreference)\<`AppModelType`, `DbModelType`\>
diff --git a/docs/reference/firestore/lib/modular/FieldValue.mdx b/docs/reference/firestore/lib/modular/FieldValue.mdx
index c975ddaca9..d062cb4cb6 100644
--- a/docs/reference/firestore/lib/modular/FieldValue.mdx
+++ b/docs/reference/firestore/lib/modular/FieldValue.mdx
@@ -51,7 +51,8 @@ Defined in: [firestore/lib/modular/FieldValue.d.ts:6](https://github.com/inverta
Defined in: [firestore/lib/modular/FieldValue.d.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L46)
-Returns a special value that can be used with (setDoc:1) or updateDoc:1 that tells the server to remove the given elements from any
+Returns a special value that can be used with `setDoc` or
+`updateDoc` that tells the server to remove the given elements from any
array value that already exists on the server. All instances of each element
specified will be removed from the array. If the field being modified is not
already an array it will be overwritten with an empty array.
@@ -79,7 +80,8 @@ The `FieldValue` sentinel for use in a call to `setDoc()` or
Defined in: [firestore/lib/modular/FieldValue.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L33)
-Returns a special value that can be used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) that tells the server to union the given elements with any array
+Returns a special value that can be used with `setDoc` or
+`updateDoc` that tells the server to union the given elements with any array
value that already exists on the server. Each specified element that doesn't
already exist in the array will be added to the end. If the field being
modified is not already an array it will be overwritten with an array
@@ -108,8 +110,8 @@ The `FieldValue` sentinel for use in a call to `setDoc()` or
Defined in: [firestore/lib/modular/FieldValue.d.ts:13](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L13)
-Returns a sentinel for use with @firebase/firestore#(updateDoc:1) or
-@firebase/firestore/lite#(setDoc:1) with `{merge: true}` to mark a field for deletion.
+Returns a sentinel for use with `updateDoc` or
+`setDoc` with `{merge: true}` to mark a field for deletion.
#### Returns
@@ -123,7 +125,8 @@ Returns a sentinel for use with @firebase/firestore#(updateDoc:1) or
Defined in: [firestore/lib/modular/FieldValue.d.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L67)
-Returns a special value that can be used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) that tells the server to increment the field's current value by
+Returns a special value that can be used with `setDoc` or
+`updateDoc` that tells the server to increment the field's current value by
the given value.
If either the operand or the current field value uses floating point
@@ -131,7 +134,7 @@ precision, all arithmetic follows IEEE 754 semantics. If both values are
integers, values outside of JavaScript's safe number range
(`Number.MIN_SAFE_INTEGER` to `Number.MAX_SAFE_INTEGER`) are also subject to
precision loss. Furthermore, once processed by the Firestore backend, all
-integer operations are capped between -2^63 and 2^63-1.
+integer operations are capped between `-2^63` and `2^63-1`.
If the current field value is not of type `number`, or if the field does not
yet exist, the transformation sets the field to the given value.
@@ -159,7 +162,7 @@ The `FieldValue` sentinel for use in a call to `setDoc()` or
Defined in: [firestore/lib/modular/FieldValue.d.ts:19](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/FieldValue.d.ts#L19)
-Returns a sentinel used with @firebase/firestore#(setDoc:1) or @firebase/firestore/lite#(updateDoc:1) to
+Returns a sentinel used with `setDoc` or `updateDoc` to
include a server-generated timestamp in the written data.
#### Returns
diff --git a/docs/reference/firestore/lib/modular/GeoPoint.mdx b/docs/reference/firestore/lib/modular/GeoPoint.mdx
index 25f6465234..ecff315c35 100644
--- a/docs/reference/firestore/lib/modular/GeoPoint.mdx
+++ b/docs/reference/firestore/lib/modular/GeoPoint.mdx
@@ -15,8 +15,8 @@ Defined in: [firestore/lib/modular/GeoPoint.d.ts:8](https://github.com/invertase
An immutable object representing a geographic location in Firestore. The
location is represented as latitude/longitude pair.
-Latitude values are in the range of [-90, 90].
-Longitude values are in the range of [-180, 180].
+Latitude values are in the range of `[-90, 90]`.
+Longitude values are in the range of `[-180, 180]`.
#### Constructors
diff --git a/docs/reference/firestore/lib/modular/Timestamp.mdx b/docs/reference/firestore/lib/modular/Timestamp.mdx
index 708db11198..22f5d7340a 100644
--- a/docs/reference/firestore/lib/modular/Timestamp.mdx
+++ b/docs/reference/firestore/lib/modular/Timestamp.mdx
@@ -23,7 +23,7 @@ table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to
9999-12-31T23:59:59.999999999Z.
For examples and further specifications, refer to the
-[Timestamp definition](https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto).
+[https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto].
#### Constructors
diff --git a/docs/reference/firestore/lib/modular/VectorValue.mdx b/docs/reference/firestore/lib/modular/VectorValue.mdx
index 16cae7dee5..467b0074c5 100644
--- a/docs/reference/firestore/lib/modular/VectorValue.mdx
+++ b/docs/reference/firestore/lib/modular/VectorValue.mdx
@@ -12,7 +12,7 @@
Defined in: [firestore/lib/modular/VectorValue.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L4)
-Represents a vector type in Firestore documents. Create an instance with vector().
+Represents a vector type in Firestore documents. Create an instance with `vector()`.
#### Constructors
@@ -78,7 +78,7 @@ Returns a JSON-serializable representation of this VectorValue instance.
Defined in: [firestore/lib/modular/VectorValue.d.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/VectorValue.d.ts#L12)
-Builds a VectorValue instance from a JSON object created by VectorValue.toJSON().
+Builds a VectorValue instance from a JSON object created by `VectorValue.toJSON()`.
###### Parameters
diff --git a/docs/reference/firestore/lib/modular/query-1.mdx b/docs/reference/firestore/lib/modular/query-1.mdx
index cbf8af4c9e..374442d5f6 100644
--- a/docs/reference/firestore/lib/modular/query-1.mdx
+++ b/docs/reference/firestore/lib/modular/query-1.mdx
@@ -544,7 +544,7 @@ Takes the provided [Query](../modular.mdx#query) and returns a copy of the [Quer
> **OrderByDirection** = `"desc"` \| `"asc"`
-Defined in: [firestore/lib/modular/query.d.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L161)
+Defined in: [firestore/lib/modular/query.d.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L160)
The direction of a [orderBy](#orderby) clause is specified as 'desc' or 'asc'
(descending or ascending).
@@ -581,10 +581,10 @@ to create a new query instance that also contains the `QueryConstraint`.
> **and**(...`queries`): `QueryCompositeFilterConstraint`
-Defined in: [firestore/lib/modular/query.d.ts:155](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L155)
+Defined in: [firestore/lib/modular/query.d.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L154)
-The and() function used to generate a logical AND query.
-e.g. and(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
+The `and()` function used to generate a logical AND query.
+e.g. `and(where('name', '==', 'Ada'), where('name', '==', 'Bob'))`
#### Parameters
@@ -602,7 +602,7 @@ e.g. and(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
> **deleteDoc**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<`void`\>
-Defined in: [firestore/lib/modular/query.d.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L321)
+Defined in: [firestore/lib/modular/query.d.ts:320](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L320)
Deletes the document referred to by the specified `DocumentReference`.
@@ -639,7 +639,7 @@ deleted from the backend (note that it won't resolve while you're offline).
> **endAt**(...`fieldValues`): [`QueryEndAtConstraint`](#queryendatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:331](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L331)
+Defined in: [firestore/lib/modular/query.d.ts:330](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L330)
Creates a QueryEndAtConstraint that modifies the result set to end at the provided fields relative to the order of the query.
The order of the field values must match the order of the order by clauses of the query.
@@ -658,7 +658,7 @@ The order of the field values must match the order of the order by clauses of th
> **endAt**\<`AppModelType`, `DbModelType`\>(`snapshot`): [`QueryEndAtConstraint`](#queryendatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:338](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L338)
+Defined in: [firestore/lib/modular/query.d.ts:337](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L337)
reates a QueryEndAtConstraint that modifies the result set to end at the provided document (inclusive).
The end position is relative to the order of the query. The document must contain all of the fields provided in the orderBy of the query.
@@ -689,7 +689,7 @@ The end position is relative to the order of the query. The document must contai
> **endBefore**(...`fieldValues`): [`QueryEndAtConstraint`](#queryendatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:348](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L348)
+Defined in: [firestore/lib/modular/query.d.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L347)
Creates a QueryEndAtConstraint that modifies the result set to end before the provided fields relative to the order of the query.
The order of the field values must match the order of the order by clauses of the query.
@@ -710,7 +710,7 @@ The order of the field values must match the order of the order by clauses of th
> **getDoc**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L253)
+Defined in: [firestore/lib/modular/query.d.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L252)
Reads the document referred to by this `DocumentReference`.
@@ -750,7 +750,7 @@ current document contents.
> **getDocFromCache**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L264)
+Defined in: [firestore/lib/modular/query.d.ts:263](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L263)
Reads the document referred to by this `DocumentReference` from cache.
Returns an error if the document is not currently cached.
@@ -784,7 +784,7 @@ current document contents.
> **getDocFromServer**\<`AppModelType`, `DbModelType`\>(`reference`): `Promise`\<[`DocumentSnapshot`](snapshot.mdx#documentsnapshot)\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L275)
+Defined in: [firestore/lib/modular/query.d.ts:274](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L274)
Reads the document referred to by this `DocumentReference` from the server.
Returns an error if the network is not available.
@@ -818,7 +818,7 @@ current document contents.
> **getDocs**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L289)
+Defined in: [firestore/lib/modular/query.d.ts:288](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L288)
Executes the query and returns the results as a `QuerySnapshot`.
@@ -855,7 +855,7 @@ A `Promise` that will be resolved with the results of the query.
> **getDocsFromCache**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:300](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L300)
+Defined in: [firestore/lib/modular/query.d.ts:299](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L299)
Executes the query and returns the results as a `QuerySnapshot` from cache.
Returns an empty result set if no documents matching the query are currently
@@ -889,7 +889,7 @@ A `Promise` that will be resolved with the results of the query.
> **getDocsFromServer**\<`AppModelType`, `DbModelType`\>(`query`): `Promise`\<`QuerySnapshot`\<`AppModelType`, `DbModelType`\>\>
-Defined in: [firestore/lib/modular/query.d.ts:310](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L310)
+Defined in: [firestore/lib/modular/query.d.ts:309](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L309)
Executes the query and returns the results as a `QuerySnapshot` from the
server. Returns an error if the network is not available.
@@ -922,7 +922,7 @@ A `Promise` that will be resolved with the results of the query.
> **limit**(`limit`): [`QueryLimitConstraint`](#querylimitconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L239)
+Defined in: [firestore/lib/modular/query.d.ts:238](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L238)
Creates a [QueryLimitConstraint](#querylimitconstraint) that only returns the first matching
documents.
@@ -939,7 +939,7 @@ The maximum number of items to return.
[`QueryLimitConstraint`](#querylimitconstraint)
-The created [QueryLimitConstraint](#querylimitconstraint).
+The created QueryLimitConstraint
***
@@ -947,7 +947,7 @@ The created [QueryLimitConstraint](#querylimitconstraint).
> **limitToLast**(`limit`): [`QueryConstraint`](#abstract-queryconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:368](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L368)
+Defined in: [firestore/lib/modular/query.d.ts:367](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L367)
Creates a new `QueryConstraint` that is limited to return only the last
specified number of children.
@@ -962,7 +962,7 @@ event for the last 100 ordered messages. As items change, we will receive
that the total number stays at 100.
You can read more about `limitToLast()` in
-[Filtering data](https://firebase.google.com/docs/database/web/lists-of-data#filtering_data).
+[https://firebase.google.com/docs/database/web/lists-of-data#filtering_data].
#### Parameters
@@ -982,10 +982,10 @@ The maximum number of nodes to include in this query.
> **or**(...`queries`): `QueryCompositeFilterConstraint`
-Defined in: [firestore/lib/modular/query.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L149)
+Defined in: [firestore/lib/modular/query.d.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L148)
-The or() function used to generate a logical OR query.
-e.g. or(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
+The `or()` function used to generate a logical OR query.
+e.g. `or(where('name', '==', 'Ada'), where('name', '==', 'Bob'))`
#### Parameters
@@ -1003,7 +1003,7 @@ e.g. or(where('name', '==', 'Ada'), where('name', '==', 'Bob'))
> **orderBy**(`fieldPath`, `directionStr?`): [`QueryOrderByConstraint`](#queryorderbyconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L175)
+Defined in: [firestore/lib/modular/query.d.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L174)
Creates a [QueryOrderByConstraint](#queryorderbyconstraint) that sorts the query result by the
specified field, optionally in descending order instead of ascending.
@@ -1030,7 +1030,7 @@ not specified, order will be ascending.
[`QueryOrderByConstraint`](#queryorderbyconstraint)
-The created [QueryOrderByConstraint](#queryorderbyconstraint).
+The created QueryOrderByConstraint.
***
@@ -1040,7 +1040,7 @@ The created [QueryOrderByConstraint](#queryorderbyconstraint).
> **query**\<`AppModelType`, `DbModelType`\>(`query`, `compositeFilter`, ...`queryConstraints`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-Defined in: [firestore/lib/modular/query.d.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L107)
+Defined in: [firestore/lib/modular/query.d.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L106)
Creates a new immutable instance of [Query](../modular.mdx#query) that is extended to also
include additional query constraints.
@@ -1061,23 +1061,22 @@ include additional query constraints.
[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-The [Query](../modular.mdx#query) instance to use as a base for the new
+Query instance to use as a base for the new
constraints.
###### compositeFilter
`QueryCompositeFilterConstraint`
-The [QueryCompositeFilterConstraint](../modular.mdx#querycompositefilterconstraint) to
-apply. Create [QueryCompositeFilterConstraint](../modular.mdx#querycompositefilterconstraint) using [and](#and) or
-[or](#or).
+The QueryCompositeFilterConstraint to
+apply. Create QueryCompositeFilterConstraint using `and` or `or`.
###### queryConstraints
...[`QueryNonFilterConstraint`](#querynonfilterconstraint)[]
-Additional [QueryNonFilterConstraint](#querynonfilterconstraint)s to
-apply (e.g. [orderBy](#orderby), [limit](#limit)).
+Additional QueryNonFilterConstraint to
+apply (e.g. orderBy, limit).
##### Returns
@@ -1092,7 +1091,7 @@ existing or new constraints.
> **query**\<`AppModelType`, `DbModelType`\>(`query`, ...`queryConstraints`): [`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-Defined in: [firestore/lib/modular/query.d.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L123)
+Defined in: [firestore/lib/modular/query.d.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L122)
Creates a new immutable instance of [Query](../modular.mdx#query) that is extended to also
include additional query constraints.
@@ -1113,14 +1112,14 @@ include additional query constraints.
[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-The [Query](../modular.mdx#query) instance to use as a base for the new
+The Query instance to use as a base for the new
constraints.
###### queryConstraints
...[`QueryConstraint`](#abstract-queryconstraint)[]
-The list of [QueryConstraint](#abstract-queryconstraint)s to apply.
+The list of QueryConstraints to apply.
##### Returns
@@ -1139,7 +1138,7 @@ existing or new constraints.
> **startAfter**\<`AppModelType`, `DbModelType`\>(`snapshot`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:213](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L213)
+Defined in: [firestore/lib/modular/query.d.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L212)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start after the provided document (exclusive). The starting position is
@@ -1168,13 +1167,13 @@ The snapshot of the document to start after.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+A QueryStartAtConstraint to pass to `query()`
#### Call Signature
> **startAfter**(...`fieldValues`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L226)
+Defined in: [firestore/lib/modular/query.d.ts:225](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L225)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start after the provided fields relative to the order of the query. The order
@@ -1193,13 +1192,13 @@ of the query's order by.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+A QueryStartAtConstraint to pass to `query()`
#### Call Signature
> **startAfter**\<`AppModelType`, `DbModelType`\>(...`docOrFields`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L228)
+Defined in: [firestore/lib/modular/query.d.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L227)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start after the provided document (exclusive). The starting position is
@@ -1226,7 +1225,7 @@ fields provided in the orderBy of the query.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
+A QueryStartAtConstraint to pass to `query()`
***
@@ -1236,7 +1235,7 @@ A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`
> **startAt**(`snapshot`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L189)
+Defined in: [firestore/lib/modular/query.d.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L188)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start at the provided document (inclusive). The starting position is relative
@@ -1255,13 +1254,13 @@ The snapshot of the document to start at.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+A QueryStartAtConstraint to pass to `query()`.
#### Call Signature
> **startAt**(...`fieldValues`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L200)
+Defined in: [firestore/lib/modular/query.d.ts:199](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L199)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start at the provided fields relative to the order of the query. The order of
@@ -1280,13 +1279,13 @@ of the query's order by.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+A QueryStartAtConstraint to pass to `query()`.
#### Call Signature
> **startAt**(...`docOrFields`): [`QueryStartAtConstraint`](#querystartatconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L202)
+Defined in: [firestore/lib/modular/query.d.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L201)
Creates a [QueryStartAtConstraint](#querystartatconstraint) that modifies the result set to
start at the provided document (inclusive). The starting position is relative
@@ -1303,7 +1302,7 @@ provided in the `orderBy` of this query.
[`QueryStartAtConstraint`](#querystartatconstraint)
-A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
+A QueryStartAtConstraint to pass to `query()`.
***
@@ -1311,7 +1310,7 @@ A [QueryStartAtConstraint](#querystartatconstraint) to pass to `query()`.
> **where**(`fieldPath`, `opStr`, `value`): [`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
-Defined in: [firestore/lib/modular/query.d.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L139)
+Defined in: [firestore/lib/modular/query.d.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/modular/query.d.ts#L138)
Creates a [QueryFieldFilterConstraint](#queryfieldfilterconstraint) that enforces that documents
must contain the specified field and that the value should satisfy the
@@ -1342,4 +1341,4 @@ The value for comparison
[`QueryFieldFilterConstraint`](#queryfieldfilterconstraint)
-The created [QueryFieldFilterConstraint](#queryfieldfilterconstraint).
+The created QueryFieldFilterConstraint
diff --git a/docs/reference/firestore/lib/modular/snapshot.mdx b/docs/reference/firestore/lib/modular/snapshot.mdx
index 3fa956aefc..ca9ef0b4fa 100644
--- a/docs/reference/firestore/lib/modular/snapshot.mdx
+++ b/docs/reference/firestore/lib/modular/snapshot.mdx
@@ -952,13 +952,13 @@ Returns true if the provided queries point to the same collection and apply the
[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-Query A Query to compare.
+`Query` A Query to compare.
##### right
[`Query`](../modular.mdx#query)\<`AppModelType`, `DbModelType`\>
-Query A Query to compare.
+`Query` A Query to compare.
#### Returns
@@ -990,13 +990,13 @@ Returns true if the provided snapshots are equal.
##### left
-DocumentSnapshot | QuerySnapshot A snapshot to compare.
+`DocumentSnapshot | QuerySnapshot` A snapshot to compare.
[`DocumentSnapshot`](#documentsnapshot)\<`AppModelType`, `DbModelType`\> | [`QuerySnapshot`](#querysnapshot)\<`AppModelType`, `DbModelType`\>
##### right
-DocumentSnapshot | QuerySnapshot A snapshot to compare.
+`DocumentSnapshot | QuerySnapshot` A snapshot to compare.
[`DocumentSnapshot`](#documentsnapshot)\<`AppModelType`, `DbModelType`\> | [`QuerySnapshot`](#querysnapshot)\<`AppModelType`, `DbModelType`\>
diff --git a/docs/reference/index.mdx b/docs/reference/index.mdx
index d506b35bc0..c6d64295ba 100644
--- a/docs/reference/index.mdx
+++ b/docs/reference/index.mdx
@@ -1,11 +1 @@
-**react-native-firebase**
-
-***
-
-* ai
-* analytics
-* app
-** app Utils
-* app-check
-* etc
-* etc
+# Reference API Documentation
diff --git a/docs/reference/remote-config/lib/modular.mdx b/docs/reference/remote-config/lib/modular.mdx
index 604e07d148..24e6a22b91 100644
--- a/docs/reference/remote-config/lib/modular.mdx
+++ b/docs/reference/remote-config/lib/modular.mdx
@@ -14,7 +14,7 @@ Defined in: [remote-config/lib/modular/index.d.ts:251](https://github.com/invert
Defines the type for representing custom signals and their values.
The values in CustomSignals must be one of the following types: string, number, or null.
-There are additional limitations on key and value length, for a full description see https://firebase.google.com/docs/remote-config/parameters?template_type=client#custom_signal_conditions
+There are additional limitations on key and value length, for a full description see [https://firebase.google.com/docs/remote-config/parameters?template_type=client#custom_signal_conditions]
Failing to stay within these limitations will result in a silent API failure with only a warning in device logs
#### Indexable
@@ -60,6 +60,8 @@ RemoteConfig instance
`Promise`\<`boolean`\>
+`Promise`
+
***
### ensureInitialized()
@@ -82,6 +84,8 @@ RemoteConfig instance
`Promise`\<`void`\>
+`Promise`
+
***
### fetch()
@@ -110,6 +114,8 @@ number
`Promise`\<`void`\>
+`Promise`
+
***
### fetchAndActivate()
@@ -133,6 +139,8 @@ RemoteConfig instance
`Promise`\<`boolean`\>
+`Promise`
+
***
### fetchConfig()
@@ -155,6 +163,8 @@ RemoteConfig instance
`Promise`\<`void`\>
+`Promise`
+
***
### fetchTimeMillis()
@@ -178,6 +188,8 @@ RemoteConfig instance
`number`
+number
+
***
### getAll()
@@ -200,6 +212,8 @@ RemoteConfig instance
`ConfigValues`
+ConfigValues
+
***
### getBoolean()
@@ -228,6 +242,8 @@ key for boolean value
`boolean`
+boolean
+
***
### getNumber()
@@ -256,6 +272,8 @@ key for number value
`number`
+number
+
***
### getRemoteConfig()
@@ -278,6 +296,8 @@ FirebaseApp. Optional.
`Module`
+RemoteConfig
+
***
### getString()
@@ -306,6 +326,8 @@ key for string value
`string`
+string
+
***
### getValue()
@@ -334,6 +356,8 @@ key for the given value
`ConfigValue`
+ConfigValue
+
***
### isSupported()
@@ -350,6 +374,8 @@ Checks two different things.
`Promise`\<`boolean`\>
+`Promise`
+
***
### lastFetchStatus()
@@ -372,6 +398,8 @@ RemoteConfig instance
`LastFetchStatusType`
+LastFetchStatusType
+
***
### onConfigUpdate()
@@ -401,7 +429,7 @@ The ConfigUpdateObserver to be notified of config updates.
`Unsubscribe`
-An Unsubscribe function to remove the listener.
+Unsubscribe function to remove the listener.
#### Remarks
@@ -475,6 +503,8 @@ RemoteConfig instance
`Promise`\<`void`\>
+`Promise`
+
***
### setConfigSettings()
@@ -504,6 +534,8 @@ ConfigSettings instance
`Promise`\<`void`\>
+`Promise`
+
***
### setCustomSignals()
@@ -526,12 +558,14 @@ RemoteConfig instance
[`CustomSignals`](#customsignals)
-CustomSignals
+CustomSignals instance
#### Returns
`Promise`\<`void`\>
+`Promise`
+
***
### setDefaults()
@@ -560,6 +594,8 @@ ConfigDefaults
`Promise`\<`void`\>
+`Promise`
+
***
### setDefaultsFromResource()
@@ -588,6 +624,8 @@ string
`Promise`\<`null`\>
+`Promise`
+
***
### setLogLevel()
@@ -616,6 +654,8 @@ The log level to set
`RemoteConfigLogLevel`
+RemoteConfigLogLevel
+
***
### settings()
@@ -624,8 +664,8 @@ The log level to set
Defined in: [remote-config/lib/modular/index.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L149)
-Returns a ConfigSettings object which provides the properties `minimumFetchIntervalMillis` & `fetchTimeMillis` if they have been set
-using setConfigSettings({ fetchTimeMillis: number, minimumFetchIntervalMillis: number }).
+Returns a ConfigSettings object which provides the properties `minimumFetchIntervalMillis` and `fetchTimeMillis` if they have been set
+using `setConfigSettings({ fetchTimeMillis: number, minimumFetchIntervalMillis: number })`.
#### Parameters
@@ -638,3 +678,5 @@ RemoteConfig instance
#### Returns
`ConfigSettings`
+
+ConfigSettings
From 017ef4f4366c8713e7b0a11f2181828c6ce1e73e Mon Sep 17 00:00:00 2001
From: Mike Hardy
Date: Wed, 1 Apr 2026 17:55:45 -0500
Subject: [PATCH 19/20] WIP - regenerate speculatively with packages typedoc
monorepo style
note that many of the resulting docs pages for modules are empty, so this is not working
but I'm curious how it looks on docs.page and you have to push to see it
---
.../lib.mdx => @react-native-firebase/ai.mdx} | 6814 +++++++------
.../analytics/README.mdx | 5278 ++++++++++
.../namespaces/FirebaseAnalyticsTypes.mdx | 372 +
.../app-check/README.mdx | 953 ++
.../namespaces/FirebaseAppCheckTypes.mdx | 140 +
.../app-distribution.mdx | 7 +
.../@react-native-firebase/app/README.mdx | 445 +
.../app/namespaces/ReactNativeFirebase.mdx | 721 ++
.../app/namespaces/Utils.mdx | 596 ++
.../reference/@react-native-firebase/auth.mdx | 7 +
.../crashlytics/README.mdx | 701 ++
.../namespaces/FirebaseCrashlyticsTypes.mdx | 28 +
.../@react-native-firebase/database.mdx | 7 +
.../firestore/README.mdx | 12 +
.../firestore/pipelines.mdx | 8722 +++++++++++++++++
.../functions/README.mdx | 621 ++
.../namespaces/FirebaseFunctionsTypes.mdx | 208 +
.../in-app-messaging.mdx | 7 +
.../@react-native-firebase/installations.mdx | 7 +
.../messaging/README.mdx | 2269 +++++
.../namespaces/FirebaseMessagingTypes.mdx | 127 +
.../@react-native-firebase/ml/README.mdx | 79 +
.../ml/namespaces/FirebaseMLTypes.mdx | 98 +
.../@react-native-firebase/perf/README.mdx | 241 +
.../namespaces/FirebasePerformanceTypes.mdx | 962 ++
.../remote-config/README.mdx | 718 ++
.../namespaces/FirebaseRemoteConfigTypes.mdx | 1043 ++
.../@react-native-firebase/storage/README.mdx | 866 ++
.../namespaces/FirebaseStorageTypes.mdx | 1873 ++++
docs/reference/analytics/lib/modular.mdx | 2547 -----
docs/reference/app-check/lib/modular.mdx | 262 -
.../app-distribution/lib/modular.mdx | 119 -
docs/reference/app/lib/modular.mdx | 346 -
docs/reference/app/lib/utils.mdx | 15 -
docs/reference/app/lib/utils/UtilsStatics.mdx | 15 -
docs/reference/auth/lib/modular.mdx | 2089 ----
docs/reference/crashlytics/lib/modular.mdx | 433 -
docs/reference/database/lib/modular.mdx | 738 --
docs/reference/database/lib/modular/query.mdx | 3175 ------
.../database/lib/modular/transaction.mdx | 96 -
docs/reference/firestore/lib/modular.mdx | 3386 -------
.../reference/firestore/lib/modular/Bytes.mdx | 101 -
.../firestore/lib/modular/FieldPath.mdx | 71 -
.../firestore/lib/modular/FieldValue.mdx | 170 -
.../firestore/lib/modular/GeoPoint.mdx | 91 -
.../firestore/lib/modular/Timestamp.mdx | 225 -
.../firestore/lib/modular/VectorValue.mdx | 111 -
.../firestore/lib/modular/query-1.mdx | 1344 ---
.../firestore/lib/modular/snapshot.mdx | 1007 --
docs/reference/functions/lib/modular.mdx | 172 -
.../in-app-messaging/lib/modular.mdx | 185 -
.../firestore/index.mdx | 5876 +++++++++++
.../namespaces/FirebaseFirestoreTypes.mdx | 5739 +++++++++++
docs/reference/installations/lib/modular.mdx | 147 -
docs/reference/messaging/lib/modular.mdx | 1008 --
docs/reference/ml/lib/modular.mdx | 39 -
docs/reference/modules.mdx | 38 -
docs/reference/packages.mdx | 25 +
docs/reference/perf/lib/modular.mdx | 201 -
docs/reference/remote-config/lib/modular.mdx | 682 --
docs/reference/storage/lib/modular.mdx | 826 --
docs/reference/vertexai/lib.mdx | 884 --
62 files changed, 42447 insertions(+), 23638 deletions(-)
rename docs/reference/{ai/lib.mdx => @react-native-firebase/ai.mdx} (50%)
create mode 100644 docs/reference/@react-native-firebase/analytics/README.mdx
create mode 100644 docs/reference/@react-native-firebase/analytics/namespaces/FirebaseAnalyticsTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/app-check/README.mdx
create mode 100644 docs/reference/@react-native-firebase/app-check/namespaces/FirebaseAppCheckTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/app-distribution.mdx
create mode 100644 docs/reference/@react-native-firebase/app/README.mdx
create mode 100644 docs/reference/@react-native-firebase/app/namespaces/ReactNativeFirebase.mdx
create mode 100644 docs/reference/@react-native-firebase/app/namespaces/Utils.mdx
create mode 100644 docs/reference/@react-native-firebase/auth.mdx
create mode 100644 docs/reference/@react-native-firebase/crashlytics/README.mdx
create mode 100644 docs/reference/@react-native-firebase/crashlytics/namespaces/FirebaseCrashlyticsTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/database.mdx
create mode 100644 docs/reference/@react-native-firebase/firestore/README.mdx
create mode 100644 docs/reference/@react-native-firebase/firestore/pipelines.mdx
create mode 100644 docs/reference/@react-native-firebase/functions/README.mdx
create mode 100644 docs/reference/@react-native-firebase/functions/namespaces/FirebaseFunctionsTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/in-app-messaging.mdx
create mode 100644 docs/reference/@react-native-firebase/installations.mdx
create mode 100644 docs/reference/@react-native-firebase/messaging/README.mdx
create mode 100644 docs/reference/@react-native-firebase/messaging/namespaces/FirebaseMessagingTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/ml/README.mdx
create mode 100644 docs/reference/@react-native-firebase/ml/namespaces/FirebaseMLTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/perf/README.mdx
create mode 100644 docs/reference/@react-native-firebase/perf/namespaces/FirebasePerformanceTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/remote-config/README.mdx
create mode 100644 docs/reference/@react-native-firebase/remote-config/namespaces/FirebaseRemoteConfigTypes.mdx
create mode 100644 docs/reference/@react-native-firebase/storage/README.mdx
create mode 100644 docs/reference/@react-native-firebase/storage/namespaces/FirebaseStorageTypes.mdx
delete mode 100644 docs/reference/analytics/lib/modular.mdx
delete mode 100644 docs/reference/app-check/lib/modular.mdx
delete mode 100644 docs/reference/app-distribution/lib/modular.mdx
delete mode 100644 docs/reference/app/lib/modular.mdx
delete mode 100644 docs/reference/app/lib/utils.mdx
delete mode 100644 docs/reference/app/lib/utils/UtilsStatics.mdx
delete mode 100644 docs/reference/auth/lib/modular.mdx
delete mode 100644 docs/reference/crashlytics/lib/modular.mdx
delete mode 100644 docs/reference/database/lib/modular.mdx
delete mode 100644 docs/reference/database/lib/modular/query.mdx
delete mode 100644 docs/reference/database/lib/modular/transaction.mdx
delete mode 100644 docs/reference/firestore/lib/modular.mdx
delete mode 100644 docs/reference/firestore/lib/modular/Bytes.mdx
delete mode 100644 docs/reference/firestore/lib/modular/FieldPath.mdx
delete mode 100644 docs/reference/firestore/lib/modular/FieldValue.mdx
delete mode 100644 docs/reference/firestore/lib/modular/GeoPoint.mdx
delete mode 100644 docs/reference/firestore/lib/modular/Timestamp.mdx
delete mode 100644 docs/reference/firestore/lib/modular/VectorValue.mdx
delete mode 100644 docs/reference/firestore/lib/modular/query-1.mdx
delete mode 100644 docs/reference/firestore/lib/modular/snapshot.mdx
delete mode 100644 docs/reference/functions/lib/modular.mdx
delete mode 100644 docs/reference/in-app-messaging/lib/modular.mdx
create mode 100644 docs/reference/index/@react-native-firebase/firestore/index.mdx
create mode 100644 docs/reference/index/@react-native-firebase/firestore/namespaces/FirebaseFirestoreTypes.mdx
delete mode 100644 docs/reference/installations/lib/modular.mdx
delete mode 100644 docs/reference/messaging/lib/modular.mdx
delete mode 100644 docs/reference/ml/lib/modular.mdx
delete mode 100644 docs/reference/modules.mdx
create mode 100644 docs/reference/packages.mdx
delete mode 100644 docs/reference/perf/lib/modular.mdx
delete mode 100644 docs/reference/remote-config/lib/modular.mdx
delete mode 100644 docs/reference/storage/lib/modular.mdx
delete mode 100644 docs/reference/vertexai/lib.mdx
diff --git a/docs/reference/ai/lib.mdx b/docs/reference/@react-native-firebase/ai.mdx
similarity index 50%
rename from docs/reference/ai/lib.mdx
rename to docs/reference/@react-native-firebase/ai.mdx
index cc97080fd7..282b323d32 100644
--- a/docs/reference/ai/lib.mdx
+++ b/docs/reference/@react-native-firebase/ai.mdx
@@ -1,809 +1,817 @@
-[**react-native-firebase**](../README.mdx)
+[**React Native Firebase**](../README.mdx)
***
-[react-native-firebase](../modules.mdx) / ai/lib
+[React Native Firebase](../packages.mdx) / @react-native-firebase/ai
-# ai/lib
+# @react-native-firebase/ai
-## Enumerations
-
-### AIErrorCode
-
-Defined in: [ai/lib/types/error.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L65)
+## Functions
-Standardized error codes that [AIError](#aierror) can have.
+### getAI()
-#### Enumeration Members
+> **getAI**(`app?`, `options?`): [`AI`](#ai)
-##### API\_NOT\_ENABLED
+Defined in: [index.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L78)
-> **API\_NOT\_ENABLED**: `"api-not-enabled"`
+Returns the default [AI](#ai) instance that is associated with the provided
+@firebase/app#FirebaseApp. If no instance exists, initializes a new instance with the
+default settings.
-Defined in: [ai/lib/types/error.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L82)
+#### Parameters
-An error due to the Firebase API not being enabled in the Console.
+##### app?
-##### ERROR
+[`FirebaseApp`](app/namespaces/ReactNativeFirebase.mdx#firebaseapp) = `...`
-> **ERROR**: `"error"`
+The @firebase/app#FirebaseApp to use.
-Defined in: [ai/lib/types/error.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L67)
+##### options?
-A generic error occurred.
+[`AIOptions`](#aioptions-1)
-##### FETCH\_ERROR
+[AIOptions](#aioptions-1) that configure the AI instance.
-> **FETCH\_ERROR**: `"fetch-error"`
+#### Returns
-Defined in: [ai/lib/types/error.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L76)
+[`AI`](#ai)
-An error occurred while performing a fetch.
+The default [AI](#ai) instance for the given @firebase/app#FirebaseApp.
-##### INVALID\_CONTENT
+#### Examples
-> **INVALID\_CONTENT**: `"invalid-content"`
+```javascript
+const ai = getAI(app);
+```
-Defined in: [ai/lib/types/error.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L79)
+```javascript
+// Get an AI instance configured to use the Gemini Developer API (via Google AI).
+const ai = getAI(app, { backend: new GoogleAIBackend() });
+```
-An error associated with a Content object.
+```javascript
+// Get an AI instance configured to use the Vertex AI Gemini API.
+const ai = getAI(app, { backend: new VertexAIBackend() });
+```
-##### INVALID\_SCHEMA
+***
-> **INVALID\_SCHEMA**: `"invalid-schema"`
+### getGenerativeModel()
-Defined in: [ai/lib/types/error.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L85)
+> **getGenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
-An error due to invalid Schema input.
+Defined in: [index.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L103)
-##### NO\_API\_KEY
+Returns a [GenerativeModel](#generativemodel) class with methods for inference
+and other functionality.
-> **NO\_API\_KEY**: `"no-api-key"`
+#### Parameters
-Defined in: [ai/lib/types/error.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L88)
+##### ai
-An error occurred due to a missing Firebase API key.
+[`AI`](#ai)
-##### NO\_APP\_ID
+##### modelParams
-> **NO\_APP\_ID**: `"no-app-id"`
+[`ModelParams`](#modelparams)
-Defined in: [ai/lib/types/error.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L91)
+##### requestOptions?
-An error occurred due to a missing Firebase app ID.
+[`RequestOptions`](#requestoptions-5)
-##### NO\_MODEL
+#### Returns
-> **NO\_MODEL**: `"no-model"`
+[`GenerativeModel`](#generativemodel)
-Defined in: [ai/lib/types/error.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L94)
+***
-An error occurred due to a model name not being specified during initialization.
+### getImagenModel()
-##### NO\_PROJECT\_ID
+> **getImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
-> **NO\_PROJECT\_ID**: `"no-project-id"`
+Defined in: [index.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L131)
-Defined in: [ai/lib/types/error.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L97)
+**`Beta`**
-An error occurred due to a missing project ID.
+Returns an [ImagenModel](#imagenmodel) class with methods for using Imagen.
-##### PARSE\_FAILED
+Only Imagen 3 models (named `imagen-3.0-*`) are supported.
-> **PARSE\_FAILED**: `"parse-failed"`
+#### Parameters
-Defined in: [ai/lib/types/error.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L100)
+##### ai
-An error occurred while parsing.
+[`AI`](#ai)
-##### REQUEST\_ERROR
+An [AI](#ai) instance.
-> **REQUEST\_ERROR**: `"request-error"`
+##### modelParams
-Defined in: [ai/lib/types/error.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L70)
+[`ImagenModelParams`](#imagenmodelparams)
-An error occurred in a request.
+Parameters to use when making Imagen requests.
-##### RESPONSE\_ERROR
+##### requestOptions?
-> **RESPONSE\_ERROR**: `"response-error"`
+[`RequestOptions`](#requestoptions-5)
-Defined in: [ai/lib/types/error.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L73)
+Additional options to use when making requests.
-An error occurred in a response.
+#### Returns
-##### SESSION\_CLOSED
+[`ImagenModel`](#imagenmodel)
-> **SESSION\_CLOSED**: `"session-closed"`
+#### Throws
-Defined in: [ai/lib/types/error.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L106)
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
-An error occurred due to a session being closed.
+***
-##### UNSUPPORTED
+### getLiveGenerativeModel()
-> **UNSUPPORTED**: `"unsupported"`
+> **getLiveGenerativeModel**(`ai`, `modelParams`): [`LiveGenerativeModel`](#livegenerativemodel)
-Defined in: [ai/lib/types/error.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L103)
+Defined in: [index.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L157)
-An error occurred due an attempt to use an unsupported feature.
+**`Beta`**
-***
+Returns a [LiveGenerativeModel](#livegenerativemodel) class for real-time, bidirectional communication.
-### BlockReason
+The Live API is only supported in modern browser windows and Node >= 22.
-Defined in: [ai/lib/types/enums.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L142)
+#### Parameters
-Reason that a prompt was blocked.
+##### ai
-#### Enumeration Members
+[`AI`](#ai)
-##### BLOCKLIST
+An [AI](#ai) instance.
-> **BLOCKLIST**: `"BLOCKLIST"`
+##### modelParams
-Defined in: [ai/lib/types/enums.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L154)
+[`LiveModelParams`](#livemodelparams)
-Content was blocked because it contained terms from the terminology blocklist.
+Parameters to use when setting up a [LiveSession](#livesession).
-##### OTHER
+#### Returns
-> **OTHER**: `"OTHER"`
+[`LiveGenerativeModel`](#livegenerativemodel)
-Defined in: [ai/lib/types/enums.ts:150](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L150)
+#### Throws
-Content was blocked, but the reason is uncategorized.
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
-##### PROHIBITED\_CONTENT
+***
-> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
+### getTemplateGenerativeModel()
-Defined in: [ai/lib/types/enums.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L158)
+> **getTemplateGenerativeModel**(`ai`, `requestOptions?`): [`TemplateGenerativeModel`](#templategenerativemodel)
-Content was blocked due to prohibited content.
+Defined in: [index.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L176)
-##### SAFETY
+**`Beta`**
-> **SAFETY**: `"SAFETY"`
+Returns a [TemplateGenerativeModel](#templategenerativemodel) class for executing server-side Gemini templates.
-Defined in: [ai/lib/types/enums.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L146)
+#### Parameters
-Content was blocked by safety settings.
+##### ai
-***
+[`AI`](#ai)
-### FinishReason
+An [AI](#ai) instance.
-Defined in: [ai/lib/types/enums.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L165)
+##### requestOptions?
-Reason that a candidate finished.
+[`RequestOptions`](#requestoptions-5)
-#### Enumeration Members
+Additional options to use when making requests.
-##### BLOCKLIST
+#### Returns
-> **BLOCKLIST**: `"BLOCKLIST"`
+[`TemplateGenerativeModel`](#templategenerativemodel)
-Defined in: [ai/lib/types/enums.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L189)
+***
-The candidate content contained forbidden terms.
+### getTemplateImagenModel()
-##### MALFORMED\_FUNCTION\_CALL
+> **getTemplateImagenModel**(`ai`, `requestOptions?`): [`TemplateImagenModel`](#templateimagenmodel)
-> **MALFORMED\_FUNCTION\_CALL**: `"MALFORMED_FUNCTION_CALL"`
+Defined in: [index.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L191)
-Defined in: [ai/lib/types/enums.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L201)
+**`Beta`**
-The function call generated by the model was invalid.
+Returns a [TemplateImagenModel](#templateimagenmodel) class for executing server-side Imagen templates.
-##### MAX\_TOKENS
+#### Parameters
-> **MAX\_TOKENS**: `"MAX_TOKENS"`
+##### ai
-Defined in: [ai/lib/types/enums.ts:173](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L173)
+[`AI`](#ai)
-The maximum number of tokens as specified in the request was reached.
+An [AI](#ai) instance.
-##### OTHER
+##### requestOptions?
-> **OTHER**: `"OTHER"`
+[`RequestOptions`](#requestoptions-5)
-Defined in: [ai/lib/types/enums.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L185)
+Additional options to use when making requests.
-Unknown reason.
+#### Returns
-##### PROHIBITED\_CONTENT
+[`TemplateImagenModel`](#templateimagenmodel)
-> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
+## Classes
-Defined in: [ai/lib/types/enums.ts:193](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L193)
+### AIError
-The candidate content potentially contained prohibited content.
+Defined in: [errors.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L27)
-##### RECITATION
+Error class for the Vertex AI in Firebase SDK.
-> **RECITATION**: `"RECITATION"`
+#### Extends
-Defined in: [ai/lib/types/enums.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L181)
+- `FirebaseError`
-The candidate content was flagged for recitation reasons.
+#### Constructors
-##### SAFETY
+##### Constructor
-> **SAFETY**: `"SAFETY"`
+> **new AIError**(`code`, `message`, `customErrorData?`): [`AIError`](#aierror)
-Defined in: [ai/lib/types/enums.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L177)
+Defined in: [errors.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L35)
-The candidate content was flagged for safety reasons.
+Constructs a new instance of the `AIError` class.
-##### SPII
+###### Parameters
-> **SPII**: `"SPII"`
+###### code
-Defined in: [ai/lib/types/enums.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L197)
+[`AIErrorCode`](#aierrorcode)
-The candidate content potentially contained Sensitive Personally Identifiable Information (SPII).
+The error code from [AIErrorCode](#aierrorcode).
-##### STOP
+###### message
-> **STOP**: `"STOP"`
+`string`
-Defined in: [ai/lib/types/enums.ts:169](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L169)
+A human-readable message describing the error.
-Natural stop point of the model or provided stop sequence.
+###### customErrorData?
-***
+[`CustomErrorData`](#customerrordata-1)
-### FunctionCallingMode
+Optional error data.
-Defined in: [ai/lib/types/enums.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L209)
+###### Returns
-Function calling mode for the model.
+[`AIError`](#aierror)
-#### Enumeration Members
+###### Overrides
-##### ANY
+`FirebaseError.constructor`
-> **ANY**: `"ANY"`
+#### Properties
-Defined in: [ai/lib/types/enums.ts:221](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L221)
+##### code
-Model is constrained to always predicting a function call only.
-If `allowed_function_names` is set, the predicted function call will be
-limited to any one of `allowed_function_names`, else the predicted
-function call will be any one of the provided `function_declarations`.
+> `readonly` **code**: [`AIErrorCode`](#aierrorcode)
-##### AUTO
+Defined in: [errors.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L36)
-> **AUTO**: `"AUTO"`
+The error code from [AIErrorCode](#aierrorcode).
-Defined in: [ai/lib/types/enums.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L214)
+###### Inherited from
-Default model behavior; model decides to predict either a function call
-or a natural language response.
+`FirebaseError.code`
-##### NONE
+##### customErrorData?
-> **NONE**: `"NONE"`
+> `readonly` `optional` **customErrorData?**: [`CustomErrorData`](#customerrordata-1)
-Defined in: [ai/lib/types/enums.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L226)
+Defined in: [errors.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L38)
-Model will not predict any function call. Model behavior is same as when
-not passing any function declarations.
+Optional error data.
***
-### HarmBlockMethod
+### `abstract` AIModel
-Defined in: [ai/lib/types/enums.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L74)
+Defined in: [models/ai-model.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L30)
-This property is not supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)).
+Base class for Firebase AI model APIs.
-#### Enumeration Members
+Instances of this class are associated with a specific Firebase AI [Backend](#abstract-backend)
+and provide methods for interacting with the configured generative model.
-##### PROBABILITY
+#### Extended by
-> **PROBABILITY**: `"PROBABILITY"`
+- [`GenerativeModel`](#generativemodel)
+- [`ImagenModel`](#imagenmodel)
+- [`LiveGenerativeModel`](#livegenerativemodel)
-Defined in: [ai/lib/types/enums.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L82)
+#### Constructors
-The harm block method uses the probability score.
+##### Constructor
-##### SEVERITY
+> `protected` **new AIModel**(`ai`, `modelName`): [`AIModel`](#abstract-aimodel)
-> **SEVERITY**: `"SEVERITY"`
+Defined in: [models/ai-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L59)
-Defined in: [ai/lib/types/enums.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L78)
+**`Internal`**
-The harm block method uses both probability and severity scores.
+Constructs a new instance of the [AIModel](#abstract-aimodel) class.
-***
+This constructor should only be called from subclasses that provide
+a model API.
-### HarmBlockThreshold
+###### Parameters
-Defined in: [ai/lib/types/enums.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L45)
+###### ai
-Threshold above which a prompt or candidate will be blocked.
+[`AI`](#ai)
-#### Enumeration Members
+an [AI](#ai) instance.
-##### BLOCK\_LOW\_AND\_ABOVE
+###### modelName
-> **BLOCK\_LOW\_AND\_ABOVE**: `"BLOCK_LOW_AND_ABOVE"`
+`string`
-Defined in: [ai/lib/types/enums.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L49)
+The name of the model being used. It can be in one of the following formats:
+- `my-model` (short name, will resolve to `publishers/google/models/my-model`)
+- `models/my-model` (will resolve to `publishers/google/models/my-model`)
+- `publishers/my-publisher/models/my-model` (fully qualified model name)
-Content with `NEGLIGIBLE` will be allowed.
+###### Returns
-##### BLOCK\_MEDIUM\_AND\_ABOVE
+[`AIModel`](#abstract-aimodel)
-> **BLOCK\_MEDIUM\_AND\_ABOVE**: `"BLOCK_MEDIUM_AND_ABOVE"`
+###### Throws
-Defined in: [ai/lib/types/enums.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L53)
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
-Content with `NEGLIGIBLE` and `LOW` will be allowed.
+#### Methods
-##### BLOCK\_NONE
+##### normalizeModelName()
-> **BLOCK\_NONE**: `"BLOCK_NONE"`
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
-Defined in: [ai/lib/types/enums.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L61)
+Defined in: [models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
-All content will be allowed.
+**`Internal`**
-##### BLOCK\_ONLY\_HIGH
+Normalizes the given model name to a fully qualified model resource name.
-> **BLOCK\_ONLY\_HIGH**: `"BLOCK_ONLY_HIGH"`
+###### Parameters
-Defined in: [ai/lib/types/enums.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L57)
+###### modelName
-Content with `NEGLIGIBLE`, `LOW`, and `MEDIUM` will be allowed.
+`string`
-##### OFF
+The model name to normalize.
-> **OFF**: `"OFF"`
+###### backendType
-Defined in: [ai/lib/types/enums.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L66)
+[`BackendType`](#backendtype-3)
-All content will be allowed. This is the same as `BLOCK_NONE`, but the metadata corresponding
-to the [HarmCategory](#harmcategory) will not be present in the response.
+###### Returns
-***
+`string`
-### HarmCategory
+The fully qualified model resource name.
-Defined in: [ai/lib/types/enums.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L34)
+#### Properties
-Harm categories that would cause prompts or candidates to be blocked.
+##### \_apiSettings
-#### Enumeration Members
+> `protected` **\_apiSettings**: `ApiSettings`
-##### HARM\_CATEGORY\_DANGEROUS\_CONTENT
+Defined in: [models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
-> **HARM\_CATEGORY\_DANGEROUS\_CONTENT**: `"HARM_CATEGORY_DANGEROUS_CONTENT"`
+**`Internal`**
-Defined in: [ai/lib/types/enums.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L38)
+##### model
-##### HARM\_CATEGORY\_HARASSMENT
+> `readonly` **model**: `string`
-> **HARM\_CATEGORY\_HARASSMENT**: `"HARM_CATEGORY_HARASSMENT"`
+Defined in: [models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
-Defined in: [ai/lib/types/enums.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L37)
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
-##### HARM\_CATEGORY\_HATE\_SPEECH
+***
-> **HARM\_CATEGORY\_HATE\_SPEECH**: `"HARM_CATEGORY_HATE_SPEECH"`
+### ArraySchema
-Defined in: [ai/lib/types/enums.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L35)
+Defined in: [requests/schema-builder.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L216)
-##### HARM\_CATEGORY\_SEXUALLY\_EXPLICIT
+Schema class for "array" types.
+The `items` param should refer to the type of item that can be a member
+of the array.
-> **HARM\_CATEGORY\_SEXUALLY\_EXPLICIT**: `"HARM_CATEGORY_SEXUALLY_EXPLICIT"`
+#### Extends
-Defined in: [ai/lib/types/enums.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L36)
+- [`Schema`](#abstract-schema)
-***
+#### Indexable
-### HarmProbability
+> \[`key`: `string`\]: `unknown`
-Defined in: [ai/lib/types/enums.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L89)
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
-Probability that a prompt or candidate matches a harm category.
+#### Constructors
-#### Enumeration Members
+##### Constructor
-##### HIGH
+> **new ArraySchema**(`schemaParams`, `items`): [`ArraySchema`](#arrayschema)
-> **HIGH**: `"HIGH"`
+Defined in: [requests/schema-builder.ts:217](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L217)
-Defined in: [ai/lib/types/enums.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L105)
+###### Parameters
-Content has a high chance of being unsafe.
+###### schemaParams
-##### LOW
+[`SchemaParams`](#schemaparams)
-> **LOW**: `"LOW"`
+###### items
-Defined in: [ai/lib/types/enums.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L97)
+[`TypedSchema`](#typedschema)
-Content has a low chance of being unsafe.
+###### Returns
-##### MEDIUM
+[`ArraySchema`](#arrayschema)
-> **MEDIUM**: `"MEDIUM"`
+###### Overrides
-Defined in: [ai/lib/types/enums.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L101)
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-Content has a medium chance of being unsafe.
+#### Methods
-##### NEGLIGIBLE
+##### toJSON()
-> **NEGLIGIBLE**: `"NEGLIGIBLE"`
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/types/enums.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L93)
+Defined in: [requests/schema-builder.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L230)
-Content has a negligible chance of being unsafe.
+**`Internal`**
-***
+###### Returns
-### HarmSeverity
+[`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/types/enums.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L112)
+###### Overrides
-Harm severity levels.
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
-#### Enumeration Members
+##### array()
-##### HARM\_SEVERITY\_HIGH
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-> **HARM\_SEVERITY\_HIGH**: `"HARM_SEVERITY_HIGH"`
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-Defined in: [ai/lib/types/enums.ts:128](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L128)
+###### Parameters
-High level of harm severity.
+###### arrayParams
-##### HARM\_SEVERITY\_LOW
+[`SchemaParams`](#schemaparams) & `object`
-> **HARM\_SEVERITY\_LOW**: `"HARM_SEVERITY_LOW"`
+###### Returns
-Defined in: [ai/lib/types/enums.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L120)
+[`ArraySchema`](#arrayschema)
-Low level of harm severity.
+###### Inherited from
-##### HARM\_SEVERITY\_MEDIUM
+[`Schema`](#abstract-schema).[`array`](#array-6)
-> **HARM\_SEVERITY\_MEDIUM**: `"HARM_SEVERITY_MEDIUM"`
+##### boolean()
-Defined in: [ai/lib/types/enums.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L124)
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-Medium level of harm severity.
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-##### HARM\_SEVERITY\_NEGLIGIBLE
+###### Parameters
-> **HARM\_SEVERITY\_NEGLIGIBLE**: `"HARM_SEVERITY_NEGLIGIBLE"`
+###### booleanParams?
-Defined in: [ai/lib/types/enums.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L116)
+[`SchemaParams`](#schemaparams)
-Negligible level of harm severity.
+###### Returns
-##### HARM\_SEVERITY\_UNSUPPORTED
+[`BooleanSchema`](#booleanschema)
-> **HARM\_SEVERITY\_UNSUPPORTED**: `"HARM_SEVERITY_UNSUPPORTED"`
+###### Inherited from
-Defined in: [ai/lib/types/enums.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L135)
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
-Harm severity is not supported.
+##### enumString()
-###### Remarks
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-The GoogleAI backend does not support `HarmSeverity`, so this value is used as a fallback.
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-***
+###### Parameters
-### Modality
+###### stringParams
-Defined in: [ai/lib/types/enums.ts:233](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L233)
+[`SchemaParams`](#schemaparams) & `object`
-Content part modality.
+###### Returns
-#### Enumeration Members
+[`StringSchema`](#stringschema)
-##### AUDIO
+###### Inherited from
-> **AUDIO**: `"AUDIO"`
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
-Defined in: [ai/lib/types/enums.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L253)
+##### integer()
-Audio.
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-##### DOCUMENT
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
-> **DOCUMENT**: `"DOCUMENT"`
+###### Parameters
-Defined in: [ai/lib/types/enums.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L257)
+###### integerParams?
-Document (for example, PDF).
+[`SchemaParams`](#schemaparams)
-##### IMAGE
+###### Returns
-> **IMAGE**: `"IMAGE"`
+[`IntegerSchema`](#integerschema)
-Defined in: [ai/lib/types/enums.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L245)
+###### Inherited from
-Image.
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
-##### MODALITY\_UNSPECIFIED
+##### number()
-> **MODALITY\_UNSPECIFIED**: `"MODALITY_UNSPECIFIED"`
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Defined in: [ai/lib/types/enums.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L237)
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
-Unspecified modality.
+###### Parameters
-##### TEXT
+###### numberParams?
-> **TEXT**: `"TEXT"`
+[`SchemaParams`](#schemaparams)
-Defined in: [ai/lib/types/enums.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L241)
+###### Returns
-Plain text.
+[`NumberSchema`](#numberschema)
-##### VIDEO
+###### Inherited from
-> **VIDEO**: `"VIDEO"`
+[`Schema`](#abstract-schema).[`number`](#number-6)
-Defined in: [ai/lib/types/enums.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L249)
+##### object()
-Video.
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-***
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
-### SchemaType
+###### Parameters
-Defined in: [ai/lib/types/schema.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L24)
+###### objectParams
-Contains the list of OpenAPI data types
-as defined by the
-[OpenAPI specification](https://swagger.io/docs/specification/data-models/data-types/)
+[`SchemaParams`](#schemaparams) & `object`
-#### Enumeration Members
+###### Returns
-##### ARRAY
+[`ObjectSchema`](#objectschema)
-> **ARRAY**: `"array"`
+###### Inherited from
-Defined in: [ai/lib/types/schema.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L34)
+[`Schema`](#abstract-schema).[`object`](#object-6)
-Array type.
+##### string()
-##### BOOLEAN
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-> **BOOLEAN**: `"boolean"`
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
-Defined in: [ai/lib/types/schema.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L32)
+###### Parameters
-Boolean type.
+###### stringParams?
-##### INTEGER
+[`SchemaParams`](#schemaparams)
-> **INTEGER**: `"integer"`
+###### Returns
-Defined in: [ai/lib/types/schema.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L30)
+[`StringSchema`](#stringschema)
-Integer type.
+###### Inherited from
-##### NUMBER
+[`Schema`](#abstract-schema).[`string`](#string-6)
-> **NUMBER**: `"number"`
+#### Properties
-Defined in: [ai/lib/types/schema.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L28)
+##### description?
-Number type.
+> `optional` **description?**: `string`
-##### OBJECT
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
-> **OBJECT**: `"object"`
+Optional. The description of the property.
-Defined in: [ai/lib/types/schema.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L36)
+###### Inherited from
-Object type.
+[`Schema`](#abstract-schema).[`description`](#description-5)
-##### STRING
+##### example?
-> **STRING**: `"string"`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L26)
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
-String type.
+Optional. The example of the property.
-## Classes
+###### Inherited from
-### AIError
+[`Schema`](#abstract-schema).[`example`](#example-5)
-Defined in: [ai/lib/errors.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L27)
+##### format?
-Error class for the Vertex AI in Firebase SDK.
+> `optional` **format?**: `string`
-#### Extends
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
-- `FirebaseError`
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
-#### Constructors
+###### Inherited from
-##### Constructor
+[`Schema`](#abstract-schema).[`format`](#format-5)
-> **new AIError**(`code`, `message`, `customErrorData?`): [`AIError`](#aierror)
+##### items
-Defined in: [ai/lib/errors.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L35)
+> **items**: [`TypedSchema`](#typedschema)
-Constructs a new instance of the `AIError` class.
+Defined in: [requests/schema-builder.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L219)
-###### Parameters
+Optional. The items of the property.
-###### code
+###### Inherited from
-[`AIErrorCode`](#aierrorcode)
+[`Schema`](#abstract-schema).[`items`](#items-5)
-The error code from [AIErrorCode](#aierrorcode).
+##### maxItems?
-###### message
+> `optional` **maxItems?**: `number`
-`string`
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
-A human-readable message describing the error.
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-###### customErrorData?
+###### Inherited from
-[`CustomErrorData`](#customerrordata-1)
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
-Optional error data.
+##### minItems?
-###### Returns
+> `optional` **minItems?**: `number`
-[`AIError`](#aierror)
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
-###### Overrides
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-`FirebaseError.constructor`
+###### Inherited from
-#### Properties
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
-##### code
+##### nullable
-> `readonly` **code**: [`AIErrorCode`](#aierrorcode)
+> **nullable**: `boolean`
-Defined in: [ai/lib/errors.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L36)
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
-The error code from [AIErrorCode](#aierrorcode).
+Optional. Whether the property is nullable. Defaults to false.
###### Inherited from
-`FirebaseError.code`
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
-##### customErrorData?
+##### type
-> `readonly` `optional` **customErrorData**: [`CustomErrorData`](#customerrordata-1)
+> **type**: [`SchemaType`](#schematype)
-Defined in: [ai/lib/errors.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/errors.ts#L38)
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
-Optional error data.
+Optional. The type of the property. [SchemaType](#schematype).
-***
+###### Inherited from
-### `abstract` AIModel
+[`Schema`](#abstract-schema).[`type`](#type-5)
-Defined in: [ai/lib/models/ai-model.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L30)
+***
-Base class for Firebase AI model APIs.
+### `abstract` Backend
-Instances of this class are associated with a specific Firebase AI [Backend](#abstract-backend)
-and provide methods for interacting with the configured generative model.
+Defined in: [backend.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L29)
+
+Abstract base class representing the configuration for an AI service backend.
+This class should not be instantiated directly. Use its subclasses; [GoogleAIBackend](#googleaibackend) for
+the Gemini Developer API (via [Google AI](https://ai.google/)), and
+[VertexAIBackend](#vertexaibackend) for the Vertex AI Gemini API.
#### Extended by
-- [`GenerativeModel`](#generativemodel)
-- [`ImagenModel`](#imagenmodel)
-- [`LiveGenerativeModel`](#livegenerativemodel)
+- [`GoogleAIBackend`](#googleaibackend)
+- [`VertexAIBackend`](#vertexaibackend)
#### Constructors
##### Constructor
-> `protected` **new AIModel**(`ai`, `modelName`): [`AIModel`](#abstract-aimodel)
-
-Defined in: [ai/lib/models/ai-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L59)
-
-**`Internal`**
+> `protected` **new Backend**(`type`): [`Backend`](#abstract-backend)
-Constructs a new instance of the [AIModel](#abstract-aimodel) class.
+Defined in: [backend.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L39)
-This constructor should only be called from subclasses that provide
-a model API.
+Protected constructor for use by subclasses.
###### Parameters
-###### ai
-
-[`AI`](#ai)
-
-an [AI](#ai) instance.
-
-###### modelName
+###### type
-`string`
+[`BackendType`](#backendtype-3)
-The name of the model being used. It can be in one of the following formats:
-- `my-model` (short name, will resolve to `publishers/google/models/my-model`)
-- `models/my-model` (will resolve to `publishers/google/models/my-model`)
-- `publishers/my-publisher/models/my-model` (fully qualified model name)
+The backend type.
###### Returns
-[`AIModel`](#abstract-aimodel)
+[`Backend`](#abstract-backend)
-###### Throws
+#### Methods
-If the `apiKey` or `projectId` fields are missing in your
-Firebase config.
+##### \_getModelPath()
-#### Properties
+> `abstract` **\_getModelPath**(`project`, `model`): `string`
-##### \_apiSettings
+Defined in: [backend.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L46)
-> `protected` **\_apiSettings**: `ApiSettings`
+**`Internal`**
-Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+###### Parameters
-**`Internal`**
+###### project
-##### model
+`string`
-> `readonly` **model**: `string`
+###### model
-Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+`string`
-The fully qualified model resource name to use for generating images
-(for example, `publishers/google/models/imagen-3.0-generate-002`).
+###### Returns
-#### Methods
+`string`
-##### normalizeModelName()
+##### \_getTemplatePath()
-> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+> `abstract` **\_getTemplatePath**(`project`, `templateId`): `string`
-Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+Defined in: [backend.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L51)
**`Internal`**
-Normalizes the given model name to a fully qualified model resource name.
-
###### Parameters
-###### modelName
+###### project
`string`
-The model name to normalize.
-
-###### backendType
+###### templateId
-[`BackendType`](#backendtype-3)
+`string`
###### Returns
`string`
-The fully qualified model resource name.
+#### Properties
+
+##### backendType
+
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+
+Defined in: [backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+
+Specifies the backend type.
***
-### ArraySchema
+### BooleanSchema
-Defined in: [ai/lib/requests/schema-builder.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L216)
+Defined in: [requests/schema-builder.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L174)
-Schema class for "array" types.
-The `items` param should refer to the type of item that can be a member
-of the array.
+Schema class for "boolean" types.
#### Extends
@@ -811,7 +819,7 @@ of the array.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
Allows user to add other schema properties that have not yet
been officially added to the SDK.
@@ -820,205 +828,100 @@ been officially added to the SDK.
##### Constructor
-> **new ArraySchema**(`schemaParams`, `items`): [`ArraySchema`](#arrayschema)
+> **new BooleanSchema**(`schemaParams?`): [`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/requests/schema-builder.ts:217](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L217)
+Defined in: [requests/schema-builder.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L175)
###### Parameters
-###### schemaParams
+###### schemaParams?
[`SchemaParams`](#schemaparams)
-###### items
-
-[`TypedSchema`](#typedschema)
-
###### Returns
-[`ArraySchema`](#arrayschema)
+[`BooleanSchema`](#booleanschema)
###### Overrides
[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-#### Properties
-
-##### description?
-
-> `optional` **description**: `string`
-
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+#### Methods
-Optional. The description of the property.
+##### toJSON()
-###### Inherited from
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
-[`Schema`](#abstract-schema).[`description`](#description-5)
+Defined in: [requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
-##### example?
+**`Internal`**
-> `optional` **example**: `unknown`
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+###### Returns
-Optional. The example of the property.
+[`SchemaRequest`](#schemarequest)
###### Inherited from
-[`Schema`](#abstract-schema).[`example`](#example-5)
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
-##### format?
+##### array()
-> `optional` **format**: `string`
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-Optional. The format of the property.
-Supported formats:
-
-
for NUMBER type: "float", "double"
-
for INTEGER type: "int32", "int64"
-
for STRING type: "email", "byte", etc
-
+###### Parameters
-###### Inherited from
+###### arrayParams
-[`Schema`](#abstract-schema).[`format`](#format-5)
+[`SchemaParams`](#schemaparams) & `object`
-##### items
+###### Returns
-> **items**: [`TypedSchema`](#typedschema)
+[`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/requests/schema-builder.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L219)
+###### Inherited from
-Optional. The items of the property.
+[`Schema`](#abstract-schema).[`array`](#array-6)
-###### Inherited from
+##### boolean()
-[`Schema`](#abstract-schema).[`items`](#items-5)
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-##### maxItems?
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-> `optional` **maxItems**: `number`
+###### Parameters
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+###### booleanParams?
-The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+[`SchemaParams`](#schemaparams)
-###### Inherited from
+###### Returns
-[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+[`BooleanSchema`](#booleanschema)
-##### minItems?
+###### Inherited from
-> `optional` **minItems**: `number`
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+##### enumString()
-The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-###### Inherited from
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+###### Parameters
-##### nullable
+###### stringParams
-> **nullable**: `boolean`
+[`SchemaParams`](#schemaparams) & `object`
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+###### Returns
-Optional. Whether the property is nullable. Defaults to false.
-
-###### Inherited from
-
-[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
-
-##### type
-
-> **type**: [`SchemaType`](#schematype)
-
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
-
-Optional. The type of the property. [SchemaType](#schematype).
-
-###### Inherited from
-
-[`Schema`](#abstract-schema).[`type`](#type-5)
-
-#### Methods
-
-##### toJSON()
-
-> **toJSON**(): [`SchemaRequest`](#schemarequest)
-
-Defined in: [ai/lib/requests/schema-builder.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L230)
-
-**`Internal`**
-
-###### Returns
-
-[`SchemaRequest`](#schemarequest)
-
-###### Overrides
-
-[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
-
-##### array()
-
-> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-
-###### Parameters
-
-###### arrayParams
-
-[`SchemaParams`](#schemaparams) & `object`
-
-###### Returns
-
-[`ArraySchema`](#arrayschema)
-
-###### Inherited from
-
-[`Schema`](#abstract-schema).[`array`](#array-6)
-
-##### boolean()
-
-> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-
-###### Parameters
-
-###### booleanParams?
-
-[`SchemaParams`](#schemaparams)
-
-###### Returns
-
-[`BooleanSchema`](#booleanschema)
-
-###### Inherited from
-
-[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
-
-##### enumString()
-
-> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-
-###### Parameters
-
-###### stringParams
-
-[`SchemaParams`](#schemaparams) & `object`
-
-###### Returns
-
-[`StringSchema`](#stringschema)
+[`StringSchema`](#stringschema)
###### Inherited from
@@ -1028,7 +931,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase
> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
###### Parameters
@@ -1048,7 +951,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase
> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
###### Parameters
@@ -1068,7 +971,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase
> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
###### Parameters
@@ -1088,7 +991,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase
> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
###### Parameters
@@ -1104,148 +1007,13 @@ Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase
[`Schema`](#abstract-schema).[`string`](#string-6)
-***
-
-### `abstract` Backend
-
-Defined in: [ai/lib/backend.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L29)
-
-Abstract base class representing the configuration for an AI service backend.
-This class should not be instantiated directly. Use its subclasses; [GoogleAIBackend](#googleaibackend) for
-the Gemini Developer API (via [Google AI](https://ai.google/)), and
-[VertexAIBackend](#vertexaibackend) for the Vertex AI Gemini API.
-
-#### Extended by
-
-- [`GoogleAIBackend`](#googleaibackend)
-- [`VertexAIBackend`](#vertexaibackend)
-
-#### Constructors
-
-##### Constructor
-
-> `protected` **new Backend**(`type`): [`Backend`](#abstract-backend)
-
-Defined in: [ai/lib/backend.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L39)
-
-Protected constructor for use by subclasses.
-
-###### Parameters
-
-###### type
-
-[`BackendType`](#backendtype-3)
-
-The backend type.
-
-###### Returns
-
-[`Backend`](#abstract-backend)
-
-#### Properties
-
-##### backendType
-
-> `readonly` **backendType**: [`BackendType`](#backendtype-3)
-
-Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
-
-Specifies the backend type.
-
-#### Methods
-
-##### \_getModelPath()
-
-> `abstract` **\_getModelPath**(`project`, `model`): `string`
-
-Defined in: [ai/lib/backend.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L46)
-
-**`Internal`**
-
-###### Parameters
-
-###### project
-
-`string`
-
-###### model
-
-`string`
-
-###### Returns
-
-`string`
-
-##### \_getTemplatePath()
-
-> `abstract` **\_getTemplatePath**(`project`, `templateId`): `string`
-
-Defined in: [ai/lib/backend.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L51)
-
-**`Internal`**
-
-###### Parameters
-
-###### project
-
-`string`
-
-###### templateId
-
-`string`
-
-###### Returns
-
-`string`
-
-***
-
-### BooleanSchema
-
-Defined in: [ai/lib/requests/schema-builder.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L174)
-
-Schema class for "boolean" types.
-
-#### Extends
-
-- [`Schema`](#abstract-schema)
-
-#### Indexable
-
-\[`key`: `string`\]: `unknown`
-
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
-
-#### Constructors
-
-##### Constructor
-
-> **new BooleanSchema**(`schemaParams?`): [`BooleanSchema`](#booleanschema)
-
-Defined in: [ai/lib/requests/schema-builder.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L175)
-
-###### Parameters
-
-###### schemaParams?
-
-[`SchemaParams`](#schemaparams)
-
-###### Returns
-
-[`BooleanSchema`](#booleanschema)
-
-###### Overrides
-
-[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
Optional. The description of the property.
@@ -1255,9 +1023,9 @@ Optional. The description of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
Optional. The example of the property.
@@ -1267,9 +1035,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
Optional. The format of the property.
Supported formats:
@@ -1285,9 +1053,9 @@ Supported formats:
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
Optional. The items of the property.
@@ -1297,9 +1065,9 @@ Optional. The items of the property.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -1309,9 +1077,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -1323,7 +1091,7 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
> **nullable**: `boolean`
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
Optional. Whether the property is nullable. Defaults to false.
@@ -1335,7 +1103,7 @@ Optional. Whether the property is nullable. Defaults to false.
> **type**: [`SchemaType`](#schematype)
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
Optional. The type of the property. [SchemaType](#schematype).
@@ -1343,1081 +1111,1608 @@ Optional. The type of the property. [SchemaType](#schematype).
[`Schema`](#abstract-schema).[`type`](#type-5)
-#### Methods
+***
-##### toJSON()
+### ChatSession
-> **toJSON**(): [`SchemaRequest`](#schemarequest)
+Defined in: [methods/chat-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L46)
-Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+ChatSession class that enables sending chat messages and stores
+history of sent and received messages so far.
-**`Internal`**
+#### Constructors
-Defines how this Schema should be serialized as JSON.
-See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+##### Constructor
-###### Returns
+> **new ChatSession**(`apiSettings`, `model`, `params?`, `requestOptions?`): [`ChatSession`](#chatsession)
-[`SchemaRequest`](#schemarequest)
+Defined in: [methods/chat-session.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L51)
-###### Inherited from
+###### Parameters
-[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+###### apiSettings
-##### array()
+`ApiSettings`
-> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+###### model
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+`string`
-###### Parameters
+###### params?
-###### arrayParams
+[`StartChatParams`](#startchatparams)
-[`SchemaParams`](#schemaparams) & `object`
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
###### Returns
-[`ArraySchema`](#arrayschema)
+[`ChatSession`](#chatsession)
-###### Inherited from
+#### Methods
-[`Schema`](#abstract-schema).[`array`](#array-6)
+##### getHistory()
-##### boolean()
+> **getHistory**(): `Promise`\<[`Content`](#content)[]\>
-> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+Defined in: [methods/chat-session.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L69)
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Gets the chat history so far. Blocked prompts are not added to history.
+Neither blocked candidates nor the prompts that generated them are added
+to history.
+
+###### Returns
+
+`Promise`\<[`Content`](#content)[]\>
+
+##### sendMessage()
+
+> **sendMessage**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+
+Defined in: [methods/chat-session.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L78)
+
+Sends a chat message and receives a non-streaming
+[GenerateContentResult](#generatecontentresult)
###### Parameters
-###### booleanParams?
+###### request
-[`SchemaParams`](#schemaparams)
+`string` \| (`string` \| [`Part`](#part))[]
###### Returns
-[`BooleanSchema`](#booleanschema)
-
-###### Inherited from
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
-[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+##### sendMessageStream()
-##### enumString()
+> **sendMessageStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
-> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+Defined in: [methods/chat-session.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L123)
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+Sends a chat message and receives the response as a
+[GenerateContentStreamResult](#generatecontentstreamresult) containing an iterable stream
+and a response promise.
###### Parameters
-###### stringParams
+###### request
-[`SchemaParams`](#schemaparams) & `object`
+`string` \| (`string` \| [`Part`](#part))[]
###### Returns
-[`StringSchema`](#stringschema)
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
-###### Inherited from
+#### Properties
-[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+##### model
-##### integer()
+> **model**: `string`
-> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+Defined in: [methods/chat-session.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L53)
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+##### params?
-###### Parameters
+> `optional` **params?**: [`StartChatParams`](#startchatparams)
-###### integerParams?
+Defined in: [methods/chat-session.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L54)
-[`SchemaParams`](#schemaparams)
+##### requestOptions?
-###### Returns
+> `optional` **requestOptions?**: [`RequestOptions`](#requestoptions-5)
-[`IntegerSchema`](#integerschema)
+Defined in: [methods/chat-session.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L55)
-###### Inherited from
+***
-[`Schema`](#abstract-schema).[`integer`](#integer-6)
+### GenerativeModel
-##### number()
+Defined in: [models/generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L45)
-> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+Class for generative model APIs.
+
+#### Extends
+
+- [`AIModel`](#abstract-aimodel)
+
+#### Constructors
+
+##### Constructor
+
+> **new GenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Defined in: [models/generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L53)
###### Parameters
-###### numberParams?
+###### ai
-[`SchemaParams`](#schemaparams)
+[`AI`](#ai)
+
+###### modelParams
+
+[`ModelParams`](#modelparams)
+
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
###### Returns
-[`NumberSchema`](#numberschema)
+[`GenerativeModel`](#generativemodel)
-###### Inherited from
+###### Overrides
-[`Schema`](#abstract-schema).[`number`](#number-6)
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
-##### object()
+#### Methods
-> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+##### countTokens()
+
+> **countTokens**(`request`): `Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
+
+Defined in: [models/generative-model.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L139)
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+Counts the tokens in the provided request.
###### Parameters
-###### objectParams
+###### request
-[`SchemaParams`](#schemaparams) & `object`
+`string` \| [`CountTokensRequest`](#counttokensrequest) \| (`string` \| [`Part`](#part))[]
###### Returns
-[`ObjectSchema`](#objectschema)
-
-###### Inherited from
+`Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
-[`Schema`](#abstract-schema).[`object`](#object-6)
+##### generateContent()
-##### string()
+> **generateContent**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
-> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+Defined in: [models/generative-model.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L67)
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+Makes a single non-streaming call to the model
+and returns an object containing a single [GenerateContentResponse](#generatecontentresponse).
###### Parameters
-###### stringParams?
+###### request
-[`SchemaParams`](#schemaparams)
+`string` \| [`GenerateContentRequest`](#generatecontentrequest) \| (`string` \| [`Part`](#part))[]
###### Returns
-[`StringSchema`](#stringschema)
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
-###### Inherited from
+##### generateContentStream()
-[`Schema`](#abstract-schema).[`string`](#string-6)
+> **generateContentStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
-***
+Defined in: [models/generative-model.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L92)
-### ChatSession
+Makes a single streaming call to the model
+and returns an object containing an iterable stream that iterates
+over all chunks in the streaming response as well as
+a promise that returns the final aggregated response.
-Defined in: [ai/lib/methods/chat-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L46)
+###### Parameters
-ChatSession class that enables sending chat messages and stores
-history of sent and received messages so far.
+###### request
-#### Constructors
+`string` \| [`GenerateContentRequest`](#generatecontentrequest) \| (`string` \| [`Part`](#part))[]
-##### Constructor
+###### Returns
-> **new ChatSession**(`apiSettings`, `model`, `params?`, `requestOptions?`): [`ChatSession`](#chatsession)
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+
+##### startChat()
+
+> **startChat**(`startChatParams?`): [`ChatSession`](#chatsession)
+
+Defined in: [models/generative-model.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L115)
-Defined in: [ai/lib/methods/chat-session.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L51)
+Gets a new [ChatSession](#chatsession) instance which can be used for
+multi-turn chats.
###### Parameters
-###### apiSettings
+###### startChatParams?
-`ApiSettings`
+[`StartChatParams`](#startchatparams)
-###### model
+###### Returns
-`string`
+[`ChatSession`](#chatsession)
-###### params?
+##### normalizeModelName()
-[`StartChatParams`](#startchatparams)
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
-###### requestOptions?
+Defined in: [models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
-[`RequestOptions`](#requestoptions-5)
+**`Internal`**
-###### Returns
+Normalizes the given model name to a fully qualified model resource name.
-[`ChatSession`](#chatsession)
+###### Parameters
-#### Properties
+###### modelName
-##### model
+`string`
-> **model**: `string`
+The model name to normalize.
-Defined in: [ai/lib/methods/chat-session.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L53)
+###### backendType
-##### params?
+[`BackendType`](#backendtype-3)
-> `optional` **params**: [`StartChatParams`](#startchatparams)
+###### Returns
-Defined in: [ai/lib/methods/chat-session.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L54)
+`string`
-##### requestOptions?
+The fully qualified model resource name.
-> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+###### Inherited from
-Defined in: [ai/lib/methods/chat-session.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L55)
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
-#### Methods
+#### Properties
-##### getHistory()
+##### \_apiSettings
-> **getHistory**(): `Promise`\<[`Content`](#content)[]\>
+> `protected` **\_apiSettings**: `ApiSettings`
-Defined in: [ai/lib/methods/chat-session.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L69)
+Defined in: [models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
-Gets the chat history so far. Blocked prompts are not added to history.
-Neither blocked candidates nor the prompts that generated them are added
-to history.
+**`Internal`**
-###### Returns
+###### Inherited from
-`Promise`\<[`Content`](#content)[]\>
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
-##### sendMessage()
+##### generationConfig
-> **sendMessage**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+> **generationConfig**: [`GenerationConfig`](#generationconfig-6)
-Defined in: [ai/lib/methods/chat-session.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L78)
+Defined in: [models/generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L46)
-Sends a chat message and receives a non-streaming
-[GenerateContentResult](#generatecontentresult)
+##### model
-###### Parameters
+> `readonly` **model**: `string`
-###### request
+Defined in: [models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
-`string` | (`string` \| [`Part`](#part))[]
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
-###### Returns
+###### Inherited from
-`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+[`AIModel`](#abstract-aimodel).[`model`](#model)
-##### sendMessageStream()
+##### requestOptions?
-> **sendMessageStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+> `optional` **requestOptions?**: [`RequestOptions`](#requestoptions-5)
-Defined in: [ai/lib/methods/chat-session.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/chat-session.ts#L123)
+Defined in: [models/generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L48)
-Sends a chat message and receives the response as a
-[GenerateContentStreamResult](#generatecontentstreamresult) containing an iterable stream
-and a response promise.
+##### safetySettings
-###### Parameters
+> **safetySettings**: [`SafetySetting`](#safetysetting)[]
-###### request
+Defined in: [models/generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L47)
-`string` | (`string` \| [`Part`](#part))[]
+##### systemInstruction?
-###### Returns
+> `optional` **systemInstruction?**: [`Content`](#content)
-`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+Defined in: [models/generative-model.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L51)
+
+##### toolConfig?
+
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
+
+Defined in: [models/generative-model.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L50)
+
+##### tools?
+
+> `optional` **tools?**: [`Tool`](#tool)[]
+
+Defined in: [models/generative-model.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L49)
***
-### GenerativeModel
+### GoogleAIBackend
-Defined in: [ai/lib/models/generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L45)
+Defined in: [backend.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L62)
-Class for generative model APIs.
+Configuration class for the Gemini Developer API.
+
+Use this with [AIOptions](#aioptions-1) when initializing the AI service via
+[getAI()](#getai) to specify the Gemini Developer API as the backend.
#### Extends
-- [`AIModel`](#abstract-aimodel)
+- [`Backend`](#abstract-backend)
#### Constructors
##### Constructor
-> **new GenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
+> **new GoogleAIBackend**(): [`GoogleAIBackend`](#googleaibackend)
+
+Defined in: [backend.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L66)
+
+Creates a configuration object for the Gemini Developer API backend.
+
+###### Returns
+
+[`GoogleAIBackend`](#googleaibackend)
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
+
+#### Methods
+
+##### \_getModelPath()
+
+> **\_getModelPath**(`project`, `model`): `string`
+
+Defined in: [backend.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L73)
-Defined in: [ai/lib/models/generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L53)
+**`Internal`**
###### Parameters
-###### ai
+###### project
-[`AI`](#ai)
+`string`
-###### modelParams
+###### model
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
+
+##### \_getTemplatePath()
+
+> **\_getTemplatePath**(`project`, `templateId`): `string`
+
+Defined in: [backend.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L80)
+
+**`Internal`**
+
+###### Parameters
+
+###### project
+
+`string`
+
+###### templateId
+
+`string`
+
+###### Returns
+
+`string`
+
+###### Overrides
+
+[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
+
+#### Properties
+
+##### backendType
+
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+
+Defined in: [backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+
+Specifies the backend type.
+
+###### Inherited from
+
+[`Backend`](#abstract-backend).[`backendType`](#backendtype)
+
+***
+
+### ImagenImageFormat
+
+Defined in: [requests/imagen-image-format.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L37)
+
+**`Beta`**
+
+Defines the image format for images generated by Imagen.
+
+Use this class to specify the desired format (JPEG or PNG) and compression quality
+for images generated by Imagen. This is typically included as part of
+[ImagenModelParams](#imagenmodelparams).
+
+#### Example
+
+```javascript
+const imagenModelParams = {
+ // ... other ImagenModelParams
+ imageFormat: ImagenImageFormat.jpeg(75) // JPEG with a compression level of 75.
+}
+```
+
+#### Methods
+
+##### jpeg()
+
+> `static` **jpeg**(`compressionQuality?`): [`ImagenImageFormat`](#imagenimageformat)
+
+Defined in: [requests/imagen-image-format.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L59)
+
+**`Beta`**
+
+Creates an [ImagenImageFormat](#imagenimageformat) for a JPEG image.
+
+###### Parameters
+
+###### compressionQuality?
+
+`number`
+
+The level of compression (a number between 0 and 100).
+
+###### Returns
+
+[`ImagenImageFormat`](#imagenimageformat)
+
+An [ImagenImageFormat](#imagenimageformat) object for a JPEG image.
+
+##### png()
+
+> `static` **png**(): [`ImagenImageFormat`](#imagenimageformat)
+
+Defined in: [requests/imagen-image-format.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L75)
+
+**`Beta`**
+
+Creates an [ImagenImageFormat](#imagenimageformat) for a PNG image.
+
+###### Returns
+
+[`ImagenImageFormat`](#imagenimageformat)
+
+An [ImagenImageFormat](#imagenimageformat) object for a PNG image.
+
+#### Properties
+
+##### compressionQuality?
+
+> `optional` **compressionQuality?**: `number`
+
+Defined in: [requests/imagen-image-format.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L45)
+
+**`Beta`**
+
+The level of compression (a number between 0 and 100).
+
+##### mimeType
+
+> **mimeType**: `string`
+
+Defined in: [requests/imagen-image-format.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L41)
+
+**`Beta`**
+
+The MIME type.
+
+***
+
+### ImagenModel
+
+Defined in: [models/imagen-model.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L55)
+
+**`Beta`**
+
+Class for Imagen model APIs.
+
+This class provides methods for generating images using the Imagen model.
+
+#### Example
+
+```javascript
+const imagen = new ImagenModel(
+ ai,
+ {
+ model: 'imagen-3.0-generate-002'
+ }
+);
+
+const response = await imagen.generateImages('A photo of a cat');
+if (response.images.length > 0) {
+ console.log(response.images[0].bytesBase64Encoded);
+}
+```
+
+#### Extends
+
+- [`AIModel`](#abstract-aimodel)
+
+#### Constructors
+
+##### Constructor
+
+> **new ImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
+
+Defined in: [models/imagen-model.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L75)
+
+**`Beta`**
+
+Constructs a new instance of the [ImagenModel](#imagenmodel) class.
+
+###### Parameters
+
+###### ai
+
+[`AI`](#ai)
+
+an [AI](#ai) instance.
+
+###### modelParams
+
+[`ImagenModelParams`](#imagenmodelparams)
+
+Parameters to use when making requests to Imagen.
+
+###### requestOptions?
+
+[`RequestOptions`](#requestoptions-5)
+
+Additional options to use when making requests.
+
+###### Returns
+
+[`ImagenModel`](#imagenmodel)
+
+###### Throws
+
+If the `apiKey` or `projectId` fields are missing in your
+Firebase config.
+
+###### Overrides
+
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+
+#### Methods
+
+##### generateImages()
+
+> **generateImages**(`prompt`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+Defined in: [models/imagen-model.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L104)
+
+**`Beta`**
+
+Generates images using the Imagen model and returns them as
+base64-encoded strings.
+
+###### Parameters
+
+###### prompt
+
+`string`
+
+A text prompt describing the image(s) to generate.
+
+###### Returns
+
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+
+A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
+object containing the generated images.
+
+###### Throws
+
+If the request to generate images fails. This happens if the
+prompt is blocked.
+
+###### Remarks
+
+If the prompt was not blocked, but one or more of the generated images were filtered, the
+returned object will have a `filteredReason` property.
+If all images are filtered, the `images` array will be empty.
+
+##### generateImagesGCS()
+
+> **generateImagesGCS**(`prompt`, `gcsURI`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+
+Defined in: [models/imagen-model.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L141)
+
+**`Internal`**
+
+Generates images to Cloud Storage for Firebase using the Imagen model.
+
+ This method is temporarily internal.
+
+###### Parameters
+
+###### prompt
+
+`string`
+
+A text prompt describing the image(s) to generate.
+
+###### gcsURI
+
+`string`
+
+The URI of file stored in a Cloud Storage for Firebase bucket.
+This should be a directory. For example, `gs://my-bucket/my-directory/`.
+
+###### Returns
+
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+
+A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
+object containing the URLs of the generated images.
+
+###### Throws
+
+If the request fails to generate images fails. This happens if
+the prompt is blocked.
+
+###### Remarks
+
+If the prompt was not blocked, but one or more of the generated images were filtered, the
+returned object will have a `filteredReason` property.
+If all images are filtered, the `images` array will be empty.
+
+##### normalizeModelName()
+
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+
+Defined in: [models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+
+**`Internal`**
+
+Normalizes the given model name to a fully qualified model resource name.
+
+###### Parameters
+
+###### modelName
+
+`string`
+
+The model name to normalize.
+
+###### backendType
+
+[`BackendType`](#backendtype-3)
+
+###### Returns
+
+`string`
+
+The fully qualified model resource name.
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+
+#### Properties
+
+##### \_apiSettings
+
+> `protected` **\_apiSettings**: `ApiSettings`
+
+Defined in: [models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+
+**`Internal`**
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+
+##### generationConfig?
+
+> `optional` **generationConfig?**: [`ImagenGenerationConfig`](#imagengenerationconfig)
+
+Defined in: [models/imagen-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L59)
+
+**`Beta`**
+
+The Imagen generation configuration.
+
+##### model
+
+> `readonly` **model**: `string`
+
+Defined in: [models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
+
+###### Inherited from
+
+[`AIModel`](#abstract-aimodel).[`model`](#model)
+
+##### requestOptions?
+
+> `optional` **requestOptions?**: [`RequestOptions`](#requestoptions-5)
+
+Defined in: [models/imagen-model.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L78)
+
+**`Beta`**
+
+Additional options to use when making requests.
+
+##### safetySettings?
+
+> `optional` **safetySettings?**: [`ImagenSafetySettings`](#imagensafetysettings)
+
+Defined in: [models/imagen-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L63)
+
+**`Beta`**
+
+Safety settings for filtering inappropriate content.
+
+***
+
+### IntegerSchema
+
+Defined in: [requests/schema-builder.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L148)
+
+Schema class for "integer" types.
+
+#### Extends
+
+- [`Schema`](#abstract-schema)
+
+#### Indexable
+
+> \[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
+
+#### Constructors
+
+##### Constructor
+
+> **new IntegerSchema**(`schemaParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [requests/schema-builder.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L149)
-[`ModelParams`](#modelparams)
+###### Parameters
-###### requestOptions?
+###### schemaParams?
-[`RequestOptions`](#requestoptions-5)
+[`SchemaParams`](#schemaparams)
###### Returns
-[`GenerativeModel`](#generativemodel)
+[`IntegerSchema`](#integerschema)
###### Overrides
-[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-#### Properties
+#### Methods
-##### \_apiSettings
+##### toJSON()
-> `protected` **\_apiSettings**: `ApiSettings`
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+Defined in: [requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
**`Internal`**
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+
+###### Returns
+
+[`SchemaRequest`](#schemarequest)
+
###### Inherited from
-[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
-##### generationConfig
+##### array()
-> **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/models/generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L46)
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-##### model
+###### Parameters
-> `readonly` **model**: `string`
+###### arrayParams
-Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+[`SchemaParams`](#schemaparams) & `object`
-The fully qualified model resource name to use for generating images
-(for example, `publishers/google/models/imagen-3.0-generate-002`).
+###### Returns
+
+[`ArraySchema`](#arrayschema)
###### Inherited from
-[`AIModel`](#abstract-aimodel).[`model`](#model)
+[`Schema`](#abstract-schema).[`array`](#array-6)
-##### requestOptions?
+##### boolean()
-> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/models/generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L48)
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-##### safetySettings
+###### Parameters
-> **safetySettings**: [`SafetySetting`](#safetysetting)[]
+###### booleanParams?
-Defined in: [ai/lib/models/generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L47)
+[`SchemaParams`](#schemaparams)
-##### systemInstruction?
+###### Returns
-> `optional` **systemInstruction**: [`Content`](#content)
+[`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/models/generative-model.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L51)
+###### Inherited from
-##### toolConfig?
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+##### enumString()
-Defined in: [ai/lib/models/generative-model.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L50)
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-##### tools?
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-> `optional` **tools**: [`Tool`](#tool)[]
+###### Parameters
-Defined in: [ai/lib/models/generative-model.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L49)
+###### stringParams
-#### Methods
+[`SchemaParams`](#schemaparams) & `object`
-##### countTokens()
+###### Returns
-> **countTokens**(`request`): `Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
+[`StringSchema`](#stringschema)
-Defined in: [ai/lib/models/generative-model.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L139)
+###### Inherited from
-Counts the tokens in the provided request.
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+
+##### integer()
+
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
###### Parameters
-###### request
+###### integerParams?
-`string` | [`CountTokensRequest`](#counttokensrequest) | (`string` \| [`Part`](#part))[]
+[`SchemaParams`](#schemaparams)
###### Returns
-`Promise`\<[`CountTokensResponse`](#counttokensresponse)\>
+[`IntegerSchema`](#integerschema)
-##### generateContent()
+###### Inherited from
-> **generateContent**(`request`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
+
+##### number()
-Defined in: [ai/lib/models/generative-model.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L67)
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Makes a single non-streaming call to the model
-and returns an object containing a single [GenerateContentResponse](#generatecontentresponse).
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
###### Parameters
-###### request
+###### numberParams?
-`string` | [`GenerateContentRequest`](#generatecontentrequest) | (`string` \| [`Part`](#part))[]
+[`SchemaParams`](#schemaparams)
###### Returns
-`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+[`NumberSchema`](#numberschema)
-##### generateContentStream()
+###### Inherited from
-> **generateContentStream**(`request`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+[`Schema`](#abstract-schema).[`number`](#number-6)
-Defined in: [ai/lib/models/generative-model.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L92)
+##### object()
-Makes a single streaming call to the model
-and returns an object containing an iterable stream that iterates
-over all chunks in the streaming response as well as
-a promise that returns the final aggregated response.
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
###### Parameters
-###### request
+###### objectParams
-`string` | [`GenerateContentRequest`](#generatecontentrequest) | (`string` \| [`Part`](#part))[]
+[`SchemaParams`](#schemaparams) & `object`
###### Returns
-`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+[`ObjectSchema`](#objectschema)
-##### startChat()
+###### Inherited from
-> **startChat**(`startChatParams?`): [`ChatSession`](#chatsession)
+[`Schema`](#abstract-schema).[`object`](#object-6)
-Defined in: [ai/lib/models/generative-model.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/generative-model.ts#L115)
+##### string()
-Gets a new [ChatSession](#chatsession) instance which can be used for
-multi-turn chats.
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
###### Parameters
-###### startChatParams?
+###### stringParams?
-[`StartChatParams`](#startchatparams)
+[`SchemaParams`](#schemaparams)
###### Returns
-[`ChatSession`](#chatsession)
+[`StringSchema`](#stringschema)
-##### normalizeModelName()
+###### Inherited from
-> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+[`Schema`](#abstract-schema).[`string`](#string-6)
-Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+#### Properties
-**`Internal`**
+##### description?
-Normalizes the given model name to a fully qualified model resource name.
+> `optional` **description?**: `string`
-###### Parameters
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
-###### modelName
+Optional. The description of the property.
-`string`
+###### Inherited from
-The model name to normalize.
+[`Schema`](#abstract-schema).[`description`](#description-5)
-###### backendType
+##### example?
-[`BackendType`](#backendtype-3)
+> `optional` **example?**: `unknown`
-###### Returns
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
-`string`
+Optional. The example of the property.
-The fully qualified model resource name.
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format?**: `string`
+
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
###### Inherited from
-[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+[`Schema`](#abstract-schema).[`format`](#format-5)
-***
+##### items?
-### GoogleAIBackend
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/backend.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L62)
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
-Configuration class for the Gemini Developer API.
+Optional. The items of the property.
-Use this with [AIOptions](#aioptions-1) when initializing the AI service via
-[getAI()](#getai) to specify the Gemini Developer API as the backend.
+###### Inherited from
-#### Extends
+[`Schema`](#abstract-schema).[`items`](#items-5)
-- [`Backend`](#abstract-backend)
+##### maxItems?
-#### Constructors
+> `optional` **maxItems?**: `number`
-##### Constructor
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
-> **new GoogleAIBackend**(): [`GoogleAIBackend`](#googleaibackend)
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-Defined in: [ai/lib/backend.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L66)
+###### Inherited from
-Creates a configuration object for the Gemini Developer API backend.
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
-###### Returns
+##### minItems?
-[`GoogleAIBackend`](#googleaibackend)
+> `optional` **minItems?**: `number`
-###### Overrides
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
-[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-#### Properties
+###### Inherited from
-##### backendType
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
-> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+##### nullable
-Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+> **nullable**: `boolean`
-Specifies the backend type.
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
###### Inherited from
-[`Backend`](#abstract-backend).[`backendType`](#backendtype)
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
-#### Methods
+##### type
-##### \_getModelPath()
+> **type**: [`SchemaType`](#schematype)
-> **\_getModelPath**(`project`, `model`): `string`
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
-Defined in: [ai/lib/backend.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L73)
+Optional. The type of the property. [SchemaType](#schematype).
-**`Internal`**
+###### Inherited from
-###### Parameters
+[`Schema`](#abstract-schema).[`type`](#type-5)
-###### project
+***
-`string`
+### LiveGenerativeModel
-###### model
+Defined in: [models/live-generative-model.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L44)
-`string`
+**`Beta`**
-###### Returns
+Class for Live generative model APIs. The Live API enables low-latency, two-way multimodal
+interactions with Gemini.
-`string`
+This class should only be instantiated with [getLiveGenerativeModel](#getlivegenerativemodel).
-###### Overrides
+#### Extends
-[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
+- [`AIModel`](#abstract-aimodel)
-##### \_getTemplatePath()
+#### Constructors
-> **\_getTemplatePath**(`project`, `templateId`): `string`
+##### Constructor
+
+> **new LiveGenerativeModel**(`ai`, `modelParams`, `_webSocketHandler`): [`LiveGenerativeModel`](#livegenerativemodel)
-Defined in: [ai/lib/backend.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L80)
+Defined in: [models/live-generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L53)
**`Internal`**
###### Parameters
-###### project
+###### ai
-`string`
+[`AI`](#ai)
-###### templateId
+###### modelParams
-`string`
+[`LiveModelParams`](#livemodelparams)
+
+###### \_webSocketHandler
+
+`WebSocketHandler`
+
+**`Internal`**
###### Returns
-`string`
+[`LiveGenerativeModel`](#livegenerativemodel)
###### Overrides
-[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
+[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
-***
+#### Methods
-### ImagenImageFormat
+##### connect()
+
+> **connect**(): `Promise`\<[`LiveSession`](#livesession)\>
-Defined in: [ai/lib/requests/imagen-image-format.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L37)
+Defined in: [models/live-generative-model.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L76)
**`Beta`**
-Defines the image format for images generated by Imagen.
+Starts a [LiveSession](#livesession).
-Use this class to specify the desired format (JPEG or PNG) and compression quality
-for images generated by Imagen. This is typically included as part of
-[ImagenModelParams](#imagenmodelparams).
+###### Returns
-#### Example
+`Promise`\<[`LiveSession`](#livesession)\>
-```javascript
-const imagenModelParams = {
- // ... other ImagenModelParams
- imageFormat: ImagenImageFormat.jpeg(75) // JPEG with a compression level of 75.
-}
-```
+A [LiveSession](#livesession).
-#### Properties
+###### Throws
-##### compressionQuality?
+If the connection failed to be established with the server.
-> `optional` **compressionQuality**: `number`
+##### normalizeModelName()
-Defined in: [ai/lib/requests/imagen-image-format.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L45)
+> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
-**`Beta`**
+Defined in: [models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
-The level of compression (a number between 0 and 100).
+**`Internal`**
-##### mimeType
+Normalizes the given model name to a fully qualified model resource name.
-> **mimeType**: `string`
+###### Parameters
-Defined in: [ai/lib/requests/imagen-image-format.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L41)
+###### modelName
-**`Beta`**
+`string`
-The MIME type.
+The model name to normalize.
-#### Methods
+###### backendType
-##### jpeg()
+[`BackendType`](#backendtype-3)
-> `static` **jpeg**(`compressionQuality?`): [`ImagenImageFormat`](#imagenimageformat)
+###### Returns
-Defined in: [ai/lib/requests/imagen-image-format.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L59)
+`string`
-**`Beta`**
+The fully qualified model resource name.
-Creates an [ImagenImageFormat](#imagenimageformat) for a JPEG image.
+###### Inherited from
-###### Parameters
+[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
-###### compressionQuality?
+#### Properties
-`number`
+##### \_apiSettings
-The level of compression (a number between 0 and 100).
+> `protected` **\_apiSettings**: `ApiSettings`
-###### Returns
+Defined in: [models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
-[`ImagenImageFormat`](#imagenimageformat)
+**`Internal`**
-An [ImagenImageFormat](#imagenimageformat) object for a JPEG image.
+###### Inherited from
-##### png()
+[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
-> `static` **png**(): [`ImagenImageFormat`](#imagenimageformat)
+##### generationConfig
+
+> **generationConfig**: [`LiveGenerationConfig`](#livegenerationconfig)
-Defined in: [ai/lib/requests/imagen-image-format.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/imagen-image-format.ts#L75)
+Defined in: [models/live-generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L45)
**`Beta`**
-Creates an [ImagenImageFormat](#imagenimageformat) for a PNG image.
+##### model
-###### Returns
+> `readonly` **model**: `string`
-[`ImagenImageFormat`](#imagenimageformat)
+Defined in: [models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
-An [ImagenImageFormat](#imagenimageformat) object for a PNG image.
+The fully qualified model resource name to use for generating images
+(for example, `publishers/google/models/imagen-3.0-generate-002`).
-***
+###### Inherited from
-### ImagenModel
+[`AIModel`](#abstract-aimodel).[`model`](#model)
+
+##### systemInstruction?
+
+> `optional` **systemInstruction?**: [`Content`](#content)
-Defined in: [ai/lib/models/imagen-model.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L55)
+Defined in: [models/live-generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L48)
**`Beta`**
-Class for Imagen model APIs.
+##### toolConfig?
-This class provides methods for generating images using the Imagen model.
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
-#### Example
+Defined in: [models/live-generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L47)
-```javascript
-const imagen = new ImagenModel(
- ai,
- {
- model: 'imagen-3.0-generate-002'
- }
-);
+**`Beta`**
-const response = await imagen.generateImages('A photo of a cat');
-if (response.images.length > 0) {
- console.log(response.images[0].bytesBase64Encoded);
-}
-```
+##### tools?
-#### Extends
+> `optional` **tools?**: [`Tool`](#tool)[]
-- [`AIModel`](#abstract-aimodel)
+Defined in: [models/live-generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L46)
-#### Constructors
+**`Beta`**
-##### Constructor
+***
-> **new ImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
+### LiveSession
-Defined in: [ai/lib/models/imagen-model.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L75)
+Defined in: [methods/live-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L46)
**`Beta`**
-Constructs a new instance of the [ImagenModel](#imagenmodel) class.
+Represents an active, real-time, bidirectional conversation with the model.
-###### Parameters
+This class should only be instantiated by calling [LiveGenerativeModel.connect](#connect).
-###### ai
+#### Constructors
-[`AI`](#ai)
+##### Constructor
-an [AI](#ai) instance.
+> **new LiveSession**(`webSocketHandler`, `serverMessages`): [`LiveSession`](#livesession)
-###### modelParams
+Defined in: [methods/live-session.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L63)
-[`ImagenModelParams`](#imagenmodelparams)
+**`Internal`**
-Parameters to use when making requests to Imagen.
+###### Parameters
-###### requestOptions?
+###### webSocketHandler
-[`RequestOptions`](#requestoptions-5)
+`WebSocketHandler`
-Additional options to use when making requests.
+###### serverMessages
+
+`AsyncGenerator`\<`unknown`\>
###### Returns
-[`ImagenModel`](#imagenmodel)
+[`LiveSession`](#livesession)
-###### Throws
+#### Methods
-If the `apiKey` or `projectId` fields are missing in your
-Firebase config.
+##### close()
-###### Overrides
+> **close**(): `Promise`\<`void`\>
-[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+Defined in: [methods/live-session.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L272)
-#### Properties
+**`Beta`**
-##### \_apiSettings
+Closes this session.
+All methods on this session will throw an error once this resolves.
-> `protected` **\_apiSettings**: `ApiSettings`
+###### Returns
-Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+`Promise`\<`void`\>
-**`Internal`**
+##### receive()
-###### Inherited from
+> **receive**(): `AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
-[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+Defined in: [methods/live-session.ts:225](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L225)
-##### generationConfig?
+**`Beta`**
-> `optional` **generationConfig**: [`ImagenGenerationConfig`](#imagengenerationconfig)
+Yields messages received from the server.
+This can only be used by one consumer at a time.
-Defined in: [ai/lib/models/imagen-model.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L59)
+###### Returns
-**`Beta`**
+`AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
-The Imagen generation configuration.
+An `AsyncGenerator` that yields server messages as they arrive.
-##### model
+###### Throws
-> `readonly` **model**: `string`
+If the session is already closed, or if we receive a response that we don't support.
-Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+##### send()
-**`Beta`**
+> **send**(`request`, `turnComplete?`): `Promise`\<`void`\>
-The fully qualified model resource name to use for generating images
-(for example, `publishers/google/models/imagen-3.0-generate-002`).
+Defined in: [methods/live-session.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L77)
-###### Inherited from
+**`Beta`**
-[`AIModel`](#abstract-aimodel).[`model`](#model)
+Sends content to the server.
-##### requestOptions?
+###### Parameters
-> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+###### request
-Defined in: [ai/lib/models/imagen-model.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L78)
+`string` \| (`string` \| [`Part`](#part))[]
-**`Beta`**
+The message to send to the model.
-Additional options to use when making requests.
+###### turnComplete?
-##### safetySettings?
+`boolean` = `true`
-> `optional` **safetySettings**: [`ImagenSafetySettings`](#imagensafetysettings)
+Indicates if the turn is complete. Defaults to false.
-Defined in: [ai/lib/models/imagen-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L63)
+###### Returns
-**`Beta`**
+`Promise`\<`void`\>
-Safety settings for filtering inappropriate content.
+###### Throws
-#### Methods
+If this session has been closed.
-##### generateImages()
+##### sendAudioRealtime()
-> **generateImages**(`prompt`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+> **sendAudioRealtime**(`blob`): `Promise`\<`void`\>
-Defined in: [ai/lib/models/imagen-model.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L104)
+Defined in: [methods/live-session.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L143)
**`Beta`**
-Generates images using the Imagen model and returns them as
-base64-encoded strings.
+Sends audio data to the server in realtime.
###### Parameters
-###### prompt
+###### blob
-`string`
+[`GenerativeContentBlob`](#generativecontentblob)
-A text prompt describing the image(s) to generate.
+The base64-encoded PCM data to send to the server in realtime.
###### Returns
-`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+`Promise`\<`void`\>
-A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
-object containing the generated images.
+###### Remarks
-###### Throws
+The server requires that the audio data is base64-encoded 16-bit PCM at 16kHz
+little-endian.
-If the request to generate images fails. This happens if the
-prompt is blocked.
+###### Example
-###### Remarks
+```javascript
+// const pcmData = ... base64-encoded 16-bit PCM at 16kHz little-endian.
+const blob = { mimeType: "audio/pcm", data: pcmData };
+liveSession.sendAudioRealtime(blob);
+```
-If the prompt was not blocked, but one or more of the generated images were filtered, the
-returned object will have a `filteredReason` property.
-If all images are filtered, the `images` array will be empty.
+###### Throws
-##### generateImagesGCS()
+If this session has been closed.
-> **generateImagesGCS**(`prompt`, `gcsURI`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+##### sendFunctionResponses()
-Defined in: [ai/lib/models/imagen-model.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/imagen-model.ts#L141)
+> **sendFunctionResponses**(`functionResponses`): `Promise`\<`void`\>
-**`Internal`**
+Defined in: [methods/live-session.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L200)
-Generates images to Cloud Storage for Firebase using the Imagen model.
+**`Beta`**
- This method is temporarily internal.
+Sends function responses to the server.
###### Parameters
-###### prompt
+###### functionResponses
-`string`
+[`FunctionResponse`](#functionresponse-4)[]
-A text prompt describing the image(s) to generate.
+The function responses to send.
-###### gcsURI
+###### Returns
-`string`
+`Promise`\<`void`\>
-The URI of file stored in a Cloud Storage for Firebase bucket.
-This should be a directory. For example, `gs://my-bucket/my-directory/`.
+###### Throws
-###### Returns
+If this session has been closed.
-`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenGCSImage`](#imagengcsimage)\>\>
+##### ~~sendMediaChunks()~~
-A promise that resolves to an [ImagenGenerationResponse](#imagengenerationresponse)
-object containing the URLs of the generated images.
+> **sendMediaChunks**(`mediaChunks`): `Promise`\<`void`\>
-###### Throws
+Defined in: [methods/live-session.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L289)
-If the request fails to generate images fails. This happens if
-the prompt is blocked.
+**`Beta`**
-###### Remarks
+Sends realtime input to the server.
-If the prompt was not blocked, but one or more of the generated images were filtered, the
-returned object will have a `filteredReason` property.
-If all images are filtered, the `images` array will be empty.
+###### Parameters
-##### normalizeModelName()
+###### mediaChunks
-> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+[`GenerativeContentBlob`](#generativecontentblob)[]
-Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+The media chunks to send.
-**`Internal`**
+###### Returns
-Normalizes the given model name to a fully qualified model resource name.
+`Promise`\<`void`\>
-###### Parameters
+###### Deprecated
-###### modelName
+Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
-`string`
+###### Throws
-The model name to normalize.
+If this session has been closed.
-###### backendType
+##### ~~sendMediaStream()~~
-[`BackendType`](#backendtype-3)
+> **sendMediaStream**(`mediaChunkStream`): `Promise`\<`void`\>
-###### Returns
+Defined in: [methods/live-session.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L317)
-`string`
+**`Beta`**
-The fully qualified model resource name.
+###### Parameters
-###### Inherited from
+###### mediaChunkStream
-[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+`ReadableStream`\<[`GenerativeContentBlob`](#generativecontentblob)\>
-***
+The stream of [GenerativeContentBlob](#generativecontentblob) to send.
-### IntegerSchema
+###### Returns
-Defined in: [ai/lib/requests/schema-builder.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L148)
+`Promise`\<`void`\>
-Schema class for "integer" types.
+###### Deprecated
-#### Extends
+Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
-- [`Schema`](#abstract-schema)
+Sends a stream of [GenerativeContentBlob](#generativecontentblob).
-#### Indexable
+###### Throws
-\[`key`: `string`\]: `unknown`
+If this session has been closed.
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
+##### sendTextRealtime()
-#### Constructors
+> **sendTextRealtime**(`text`): `Promise`\<`void`\>
-##### Constructor
+Defined in: [methods/live-session.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L109)
-> **new IntegerSchema**(`schemaParams?`): [`IntegerSchema`](#integerschema)
+**`Beta`**
-Defined in: [ai/lib/requests/schema-builder.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L149)
+Sends text to the server in realtime.
###### Parameters
-###### schemaParams?
+###### text
-[`SchemaParams`](#schemaparams)
+`string`
+
+The text data to send.
###### Returns
-[`IntegerSchema`](#integerschema)
+`Promise`\<`void`\>
-###### Overrides
+###### Example
-[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+```javascript
+liveSession.sendTextRealtime("Hello, how are you?");
+```
-#### Properties
+###### Throws
-##### description?
+If this session has been closed.
-> `optional` **description**: `string`
+##### sendVideoRealtime()
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+> **sendVideoRealtime**(`blob`): `Promise`\<`void`\>
-Optional. The description of the property.
+Defined in: [methods/live-session.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L176)
-###### Inherited from
+**`Beta`**
-[`Schema`](#abstract-schema).[`description`](#description-5)
+Sends video data to the server in realtime.
-##### example?
+###### Parameters
-> `optional` **example**: `unknown`
+###### blob
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+[`GenerativeContentBlob`](#generativecontentblob)
-Optional. The example of the property.
+The base64-encoded video data to send to the server in realtime.
-###### Inherited from
+###### Returns
-[`Schema`](#abstract-schema).[`example`](#example-5)
+`Promise`\<`void`\>
-##### format?
+###### Remarks
-> `optional` **format**: `string`
+The server requires that the video is sent as individual video frames at 1 FPS. It
+is recommended to set `mimeType` to `image/jpeg`.
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+###### Example
-Optional. The format of the property.
-Supported formats:
-
-
for NUMBER type: "float", "double"
-
for INTEGER type: "int32", "int64"
-
for STRING type: "email", "byte", etc
-
+```javascript
+// const videoFrame = ... base64-encoded JPEG data
+const blob = { mimeType: "image/jpeg", data: videoFrame };
+liveSession.sendVideoRealtime(blob);
+```
-###### Inherited from
+###### Throws
-[`Schema`](#abstract-schema).[`format`](#format-5)
+If this session has been closed.
-##### items?
+#### Properties
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+##### inConversation
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+> **inConversation**: `boolean` = `false`
-Optional. The items of the property.
+Defined in: [methods/live-session.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L58)
-###### Inherited from
+**`Beta`**
-[`Schema`](#abstract-schema).[`items`](#items-5)
+Indicates whether this Live session is being controlled by an `AudioConversationController`.
-##### maxItems?
+##### isClosed
-> `optional` **maxItems**: `number`
+> **isClosed**: `boolean` = `false`
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+Defined in: [methods/live-session.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L52)
-The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+**`Beta`**
-###### Inherited from
+Indicates whether this Live session is closed.
-[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+***
-##### minItems?
+### NumberSchema
-> `optional` **minItems**: `number`
+Defined in: [requests/schema-builder.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L161)
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+Schema class for "number" types.
-The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+#### Extends
-###### Inherited from
+- [`Schema`](#abstract-schema)
-[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+#### Indexable
-##### nullable
+> \[`key`: `string`\]: `unknown`
-> **nullable**: `boolean`
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+#### Constructors
-Optional. Whether the property is nullable. Defaults to false.
+##### Constructor
-###### Inherited from
+> **new NumberSchema**(`schemaParams?`): [`NumberSchema`](#numberschema)
-[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+Defined in: [requests/schema-builder.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L162)
-##### type
+###### Parameters
-> **type**: [`SchemaType`](#schematype)
+###### schemaParams?
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+[`SchemaParams`](#schemaparams)
-Optional. The type of the property. [SchemaType](#schematype).
+###### Returns
-###### Inherited from
+[`NumberSchema`](#numberschema)
-[`Schema`](#abstract-schema).[`type`](#type-5)
+###### Overrides
+
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
#### Methods
@@ -2425,7 +2720,7 @@ Optional. The type of the property. [SchemaType](#schematype).
> **toJSON**(): [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+Defined in: [requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
**`Internal`**
@@ -2444,7 +2739,7 @@ See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Obj
> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
###### Parameters
@@ -2464,7 +2759,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/
> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
###### Parameters
@@ -2484,7 +2779,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase
> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
###### Parameters
@@ -2504,7 +2799,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase
> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
###### Parameters
@@ -2524,7 +2819,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase
> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
###### Parameters
@@ -2544,7 +2839,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase
> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
###### Parameters
@@ -2564,584 +2859,661 @@ Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase
> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
###### Parameters
-###### stringParams?
+###### stringParams?
+
+[`SchemaParams`](#schemaparams)
+
+###### Returns
+
+[`StringSchema`](#stringschema)
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`string`](#string-6)
+
+#### Properties
+
+##### description?
+
+> `optional` **description?**: `string`
+
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+
+Optional. The description of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`description`](#description-5)
+
+##### example?
+
+> `optional` **example?**: `unknown`
+
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+
+Optional. The example of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`example`](#example-5)
+
+##### format?
+
+> `optional` **format?**: `string`
+
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`format`](#format-5)
+
+##### items?
+
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
+
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+
+Optional. The items of the property.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`items`](#items-5)
+
+##### maxItems?
+
+> `optional` **maxItems?**: `number`
+
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+
+##### minItems?
+
+> `optional` **minItems?**: `number`
+
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Inherited from
+
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+
+##### type
-[`SchemaParams`](#schemaparams)
+> **type**: [`SchemaType`](#schematype)
-###### Returns
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
-[`StringSchema`](#stringschema)
+Optional. The type of the property. [SchemaType](#schematype).
###### Inherited from
-[`Schema`](#abstract-schema).[`string`](#string-6)
+[`Schema`](#abstract-schema).[`type`](#type-5)
***
-### LiveGenerativeModel
+### ObjectSchema
-Defined in: [ai/lib/models/live-generative-model.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L44)
+Defined in: [requests/schema-builder.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L242)
-**`Beta`**
+Schema class for "object" types.
+The `properties` param must be a map of `Schema` objects.
-Class for Live generative model APIs. The Live API enables low-latency, two-way multimodal
-interactions with Gemini.
+#### Extends
-This class should only be instantiated with [getLiveGenerativeModel](#getlivegenerativemodel).
+- [`Schema`](#abstract-schema)
-#### Extends
+#### Indexable
-- [`AIModel`](#abstract-aimodel)
+> \[`key`: `string`\]: `unknown`
+
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
#### Constructors
##### Constructor
-> **new LiveGenerativeModel**(`ai`, `modelParams`, `_webSocketHandler`): [`LiveGenerativeModel`](#livegenerativemodel)
-
-Defined in: [ai/lib/models/live-generative-model.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L53)
+> **new ObjectSchema**(`schemaParams`, `properties`, `optionalProperties?`): [`ObjectSchema`](#objectschema)
-**`Internal`**
+Defined in: [requests/schema-builder.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L243)
###### Parameters
-###### ai
-
-[`AI`](#ai)
-
-###### modelParams
+###### schemaParams
-[`LiveModelParams`](#livemodelparams)
+[`SchemaParams`](#schemaparams)
-###### \_webSocketHandler
+###### properties
-`WebSocketHandler`
+###### optionalProperties?
-**`Internal`**
+`string`[] = `[]`
###### Returns
-[`LiveGenerativeModel`](#livegenerativemodel)
+[`ObjectSchema`](#objectschema)
###### Overrides
-[`AIModel`](#abstract-aimodel).[`constructor`](#constructor-1)
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-#### Properties
+#### Methods
-##### \_apiSettings
+##### toJSON()
-> `protected` **\_apiSettings**: `ApiSettings`
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/models/ai-model.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L40)
+Defined in: [requests/schema-builder.ts:259](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L259)
**`Internal`**
-###### Inherited from
-
-[`AIModel`](#abstract-aimodel).[`_apiSettings`](#_apisettings)
+###### Returns
-##### generationConfig
+[`SchemaRequest`](#schemarequest)
-> **generationConfig**: [`LiveGenerationConfig`](#livegenerationconfig)
+###### Overrides
-Defined in: [ai/lib/models/live-generative-model.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L45)
+[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
-**`Beta`**
+##### array()
-##### model
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-> `readonly` **model**: `string`
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-Defined in: [ai/lib/models/ai-model.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L35)
+###### Parameters
-**`Beta`**
+###### arrayParams
-The fully qualified model resource name to use for generating images
-(for example, `publishers/google/models/imagen-3.0-generate-002`).
+[`SchemaParams`](#schemaparams) & `object`
-###### Inherited from
+###### Returns
-[`AIModel`](#abstract-aimodel).[`model`](#model)
+[`ArraySchema`](#arrayschema)
-##### systemInstruction?
+###### Inherited from
-> `optional` **systemInstruction**: [`Content`](#content)
+[`Schema`](#abstract-schema).[`array`](#array-6)
-Defined in: [ai/lib/models/live-generative-model.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L48)
+##### boolean()
-**`Beta`**
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-##### toolConfig?
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+###### Parameters
-Defined in: [ai/lib/models/live-generative-model.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L47)
+###### booleanParams?
-**`Beta`**
+[`SchemaParams`](#schemaparams)
-##### tools?
+###### Returns
-> `optional` **tools**: [`Tool`](#tool)[]
+[`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/models/live-generative-model.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L46)
+###### Inherited from
-**`Beta`**
+[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
-#### Methods
+##### enumString()
-##### connect()
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-> **connect**(): `Promise`\<[`LiveSession`](#livesession)\>
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-Defined in: [ai/lib/models/live-generative-model.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/live-generative-model.ts#L76)
+###### Parameters
-**`Beta`**
+###### stringParams
-Starts a [LiveSession](#livesession).
+[`SchemaParams`](#schemaparams) & `object`
###### Returns
-`Promise`\<[`LiveSession`](#livesession)\>
-
-A [LiveSession](#livesession).
-
-###### Throws
-
-If the connection failed to be established with the server.
+[`StringSchema`](#stringschema)
-##### normalizeModelName()
+###### Inherited from
-> `static` **normalizeModelName**(`modelName`, `backendType`): `string`
+[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
-Defined in: [ai/lib/models/ai-model.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/ai-model.ts#L72)
+##### integer()
-**`Internal`**
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-Normalizes the given model name to a fully qualified model resource name.
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
###### Parameters
-###### modelName
-
-`string`
-
-The model name to normalize.
-
-###### backendType
+###### integerParams?
-[`BackendType`](#backendtype-3)
+[`SchemaParams`](#schemaparams)
###### Returns
-`string`
-
-The fully qualified model resource name.
+[`IntegerSchema`](#integerschema)
###### Inherited from
-[`AIModel`](#abstract-aimodel).[`normalizeModelName`](#normalizemodelname)
+[`Schema`](#abstract-schema).[`integer`](#integer-6)
-***
+##### number()
-### LiveSession
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Defined in: [ai/lib/methods/live-session.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L46)
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
-**`Beta`**
+###### Parameters
-Represents an active, real-time, bidirectional conversation with the model.
+###### numberParams?
-This class should only be instantiated by calling [LiveGenerativeModel.connect](#connect).
+[`SchemaParams`](#schemaparams)
-#### Constructors
+###### Returns
-##### Constructor
+[`NumberSchema`](#numberschema)
-> **new LiveSession**(`webSocketHandler`, `serverMessages`): [`LiveSession`](#livesession)
+###### Inherited from
-Defined in: [ai/lib/methods/live-session.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L63)
+[`Schema`](#abstract-schema).[`number`](#number-6)
-**`Internal`**
+##### object()
-###### Parameters
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-###### webSocketHandler
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
-`WebSocketHandler`
+###### Parameters
-###### serverMessages
+###### objectParams
-`AsyncGenerator`\<`unknown`\>
+[`SchemaParams`](#schemaparams) & `object`
###### Returns
-[`LiveSession`](#livesession)
-
-#### Properties
-
-##### inConversation
-
-> **inConversation**: `boolean` = `false`
+[`ObjectSchema`](#objectschema)
-Defined in: [ai/lib/methods/live-session.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L58)
+###### Inherited from
-**`Beta`**
+[`Schema`](#abstract-schema).[`object`](#object-6)
-Indicates whether this Live session is being controlled by an `AudioConversationController`.
+##### string()
-##### isClosed
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-> **isClosed**: `boolean` = `false`
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
-Defined in: [ai/lib/methods/live-session.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L52)
+###### Parameters
-**`Beta`**
+###### stringParams?
-Indicates whether this Live session is closed.
+[`SchemaParams`](#schemaparams)
-#### Methods
+###### Returns
-##### close()
+[`StringSchema`](#stringschema)
-> **close**(): `Promise`\<`void`\>
+###### Inherited from
-Defined in: [ai/lib/methods/live-session.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L272)
+[`Schema`](#abstract-schema).[`string`](#string-6)
-**`Beta`**
+#### Properties
-Closes this session.
-All methods on this session will throw an error once this resolves.
+##### description?
-###### Returns
+> `optional` **description?**: `string`
-`Promise`\<`void`\>
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
-##### receive()
+Optional. The description of the property.
-> **receive**(): `AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
+###### Inherited from
-Defined in: [ai/lib/methods/live-session.ts:225](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L225)
+[`Schema`](#abstract-schema).[`description`](#description-5)
-**`Beta`**
+##### example?
-Yields messages received from the server.
-This can only be used by one consumer at a time.
+> `optional` **example?**: `unknown`
-###### Returns
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
-`AsyncGenerator`\<[`LiveServerContent`](#liveservercontent) \| [`LiveServerToolCall`](#liveservertoolcall) \| [`LiveServerToolCallCancellation`](#liveservertoolcallcancellation)\>
+Optional. The example of the property.
-An `AsyncGenerator` that yields server messages as they arrive.
+###### Inherited from
-###### Throws
+[`Schema`](#abstract-schema).[`example`](#example-5)
-If the session is already closed, or if we receive a response that we don't support.
+##### format?
-##### send()
+> `optional` **format?**: `string`
-> **send**(`request`, `turnComplete?`): `Promise`\<`void`\>
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
-Defined in: [ai/lib/methods/live-session.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L77)
+Optional. The format of the property.
+Supported formats:
+
+
for NUMBER type: "float", "double"
+
for INTEGER type: "int32", "int64"
+
for STRING type: "email", "byte", etc
+
-**`Beta`**
+###### Inherited from
-Sends content to the server.
+[`Schema`](#abstract-schema).[`format`](#format-5)
-###### Parameters
+##### items?
-###### request
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-The message to send to the model.
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
-`string` | (`string` \| [`Part`](#part))[]
+Optional. The items of the property.
-###### turnComplete?
+###### Inherited from
-`boolean` = `true`
+[`Schema`](#abstract-schema).[`items`](#items-5)
-Indicates if the turn is complete. Defaults to false.
+##### maxItems?
-###### Returns
+> `optional` **maxItems?**: `number`
-`Promise`\<`void`\>
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
-###### Throws
+The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-If this session has been closed.
+###### Inherited from
-##### sendAudioRealtime()
+[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
-> **sendAudioRealtime**(`blob`): `Promise`\<`void`\>
+##### minItems?
-Defined in: [ai/lib/methods/live-session.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L143)
+> `optional` **minItems?**: `number`
-**`Beta`**
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
-Sends audio data to the server in realtime.
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-###### Parameters
+###### Inherited from
-###### blob
+[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
-[`GenerativeContentBlob`](#generativecontentblob)
+##### nullable
-The base64-encoded PCM data to send to the server in realtime.
+> **nullable**: `boolean`
-###### Returns
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
-`Promise`\<`void`\>
+Optional. Whether the property is nullable. Defaults to false.
-###### Remarks
+###### Inherited from
-The server requires that the audio data is base64-encoded 16-bit PCM at 16kHz
-little-endian.
+[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
-###### Example
+##### optionalProperties
-```javascript
-// const pcmData = ... base64-encoded 16-bit PCM at 16kHz little-endian.
-const blob = { mimeType: "audio/pcm", data: pcmData };
-liveSession.sendAudioRealtime(blob);
-```
+> **optionalProperties**: `string`[] = `[]`
-###### Throws
+Defined in: [requests/schema-builder.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L248)
-If this session has been closed.
+##### properties
-##### sendFunctionResponses()
+> **properties**: `object`
-> **sendFunctionResponses**(`functionResponses`): `Promise`\<`void`\>
+Defined in: [requests/schema-builder.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L245)
-Defined in: [ai/lib/methods/live-session.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L200)
+###### Index Signature
-**`Beta`**
+\[`k`: `string`\]: [`TypedSchema`](#typedschema)
-Sends function responses to the server.
+##### type
-###### Parameters
+> **type**: [`SchemaType`](#schematype)
-###### functionResponses
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
-[`FunctionResponse`](#functionresponse-2)[]
+Optional. The type of the property. [SchemaType](#schematype).
-The function responses to send.
+###### Inherited from
-###### Returns
+[`Schema`](#abstract-schema).[`type`](#type-5)
-`Promise`\<`void`\>
+***
-###### Throws
+### `abstract` Schema
-If this session has been closed.
+Defined in: [requests/schema-builder.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L35)
-##### ~~sendMediaChunks()~~
+Parent class encompassing all Schema types, with static methods that
+allow building specific Schema types. This class can be converted with
+`JSON.stringify()` into a JSON string accepted by Vertex AI REST endpoints.
+(This string conversion is automatically done when calling SDK methods.)
-> **sendMediaChunks**(`mediaChunks`): `Promise`\<`void`\>
+#### Extended by
-Defined in: [ai/lib/methods/live-session.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L289)
+- [`IntegerSchema`](#integerschema)
+- [`NumberSchema`](#numberschema)
+- [`BooleanSchema`](#booleanschema)
+- [`StringSchema`](#stringschema)
+- [`ArraySchema`](#arrayschema)
+- [`ObjectSchema`](#objectschema)
-**`Beta`**
+#### Implements
-Sends realtime input to the server.
+- [`SchemaInterface`](#schemainterface)
-###### Parameters
+#### Indexable
-###### mediaChunks
+> \[`key`: `string`\]: `unknown`
-[`GenerativeContentBlob`](#generativecontentblob)[]
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
-The media chunks to send.
+#### Constructors
-###### Returns
+##### Constructor
-`Promise`\<`void`\>
+> **new Schema**(`schemaParams`): [`Schema`](#abstract-schema)
-###### Deprecated
+Defined in: [requests/schema-builder.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L68)
-Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
+###### Parameters
-###### Throws
+###### schemaParams
-If this session has been closed.
+[`SchemaInterface`](#schemainterface)
-##### ~~sendMediaStream()~~
+###### Returns
-> **sendMediaStream**(`mediaChunkStream`): `Promise`\<`void`\>
+[`Schema`](#abstract-schema)
-Defined in: [ai/lib/methods/live-session.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L317)
+#### Methods
-**`Beta`**
+##### toJSON()
-###### Parameters
+> **toJSON**(): [`SchemaRequest`](#schemarequest)
-###### mediaChunkStream
+Defined in: [requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
-`ReadableStream`\<[`GenerativeContentBlob`](#generativecontentblob)\>
+**`Internal`**
-The stream of [GenerativeContentBlob](#generativecontentblob) to send.
+Defines how this Schema should be serialized as JSON.
+See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
###### Returns
-`Promise`\<`void`\>
+[`SchemaRequest`](#schemarequest)
-###### Deprecated
+##### array()
-Use `sendTextRealtime()`, `sendAudioRealtime()`, and `sendVideoRealtime()` instead.
+> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-Sends a stream of [GenerativeContentBlob](#generativecontentblob).
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
-###### Throws
+###### Parameters
-If this session has been closed.
+###### arrayParams
-##### sendTextRealtime()
+[`SchemaParams`](#schemaparams) & `object`
-> **sendTextRealtime**(`text`): `Promise`\<`void`\>
+###### Returns
-Defined in: [ai/lib/methods/live-session.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L109)
+[`ArraySchema`](#arrayschema)
-**`Beta`**
+##### boolean()
-Sends text to the server in realtime.
+> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-###### Parameters
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
-###### text
+###### Parameters
-`string`
+###### booleanParams?
-The text data to send.
+[`SchemaParams`](#schemaparams)
###### Returns
-`Promise`\<`void`\>
+[`BooleanSchema`](#booleanschema)
-###### Example
+##### enumString()
-```javascript
-liveSession.sendTextRealtime("Hello, how are you?");
-```
+> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-###### Throws
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
-If this session has been closed.
+###### Parameters
-##### sendVideoRealtime()
+###### stringParams
-> **sendVideoRealtime**(`blob`): `Promise`\<`void`\>
+[`SchemaParams`](#schemaparams) & `object`
-Defined in: [ai/lib/methods/live-session.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/methods/live-session.ts#L176)
+###### Returns
-**`Beta`**
+[`StringSchema`](#stringschema)
-Sends video data to the server in realtime.
+##### integer()
-###### Parameters
+> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-###### blob
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
-[`GenerativeContentBlob`](#generativecontentblob)
+###### Parameters
-The base64-encoded video data to send to the server in realtime.
+###### integerParams?
+
+[`SchemaParams`](#schemaparams)
###### Returns
-`Promise`\<`void`\>
+[`IntegerSchema`](#integerschema)
-###### Remarks
+##### number()
-The server requires that the video is sent as individual video frames at 1 FPS. It
-is recommended to set `mimeType` to `image/jpeg`.
+> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-###### Example
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
-```javascript
-// const videoFrame = ... base64-encoded JPEG data
-const blob = { mimeType: "image/jpeg", data: videoFrame };
-liveSession.sendVideoRealtime(blob);
-```
+###### Parameters
-###### Throws
+###### numberParams?
-If this session has been closed.
+[`SchemaParams`](#schemaparams)
-***
+###### Returns
-### NumberSchema
+[`NumberSchema`](#numberschema)
-Defined in: [ai/lib/requests/schema-builder.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L161)
+##### object()
-Schema class for "number" types.
+> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-#### Extends
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
-- [`Schema`](#abstract-schema)
+###### Parameters
-#### Indexable
+###### objectParams
-\[`key`: `string`\]: `unknown`
+[`SchemaParams`](#schemaparams) & `object`
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
+###### Returns
-#### Constructors
+[`ObjectSchema`](#objectschema)
-##### Constructor
+##### string()
-> **new NumberSchema**(`schemaParams?`): [`NumberSchema`](#numberschema)
+> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L162)
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
###### Parameters
-###### schemaParams?
+###### stringParams?
[`SchemaParams`](#schemaparams)
###### Returns
-[`NumberSchema`](#numberschema)
-
-###### Overrides
-
-[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+[`StringSchema`](#stringschema)
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
Optional. The description of the property.
-###### Inherited from
+###### Implementation of
-[`Schema`](#abstract-schema).[`description`](#description-5)
+[`SchemaInterface`](#schemainterface).[`description`](#description-9)
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
Optional. The example of the property.
-###### Inherited from
+###### Implementation of
-[`Schema`](#abstract-schema).[`example`](#example-5)
+[`SchemaInterface`](#schemainterface).[`example`](#example-8)
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
Optional. The format of the property.
Supported formats:
@@ -3151,69 +3523,115 @@ Supported formats:
for STRING type: "email", "byte", etc
-###### Inherited from
+###### Implementation of
-[`Schema`](#abstract-schema).[`format`](#format-5)
+[`SchemaInterface`](#schemainterface).[`format`](#format-8)
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
Optional. The items of the property.
-###### Inherited from
+###### Implementation of
-[`Schema`](#abstract-schema).[`items`](#items-5)
+[`SchemaInterface`](#schemainterface).[`items`](#items-8)
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
-###### Inherited from
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`maxItems`](#maxitems-8)
+
+##### minItems?
+
+> `optional` **minItems?**: `number`
+
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+
+The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`minItems`](#minitems-8)
+
+##### nullable
+
+> **nullable**: `boolean`
+
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+
+Optional. Whether the property is nullable. Defaults to false.
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`nullable`](#nullable-8)
+
+##### type
+
+> **type**: [`SchemaType`](#schematype)
+
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+
+Optional. The type of the property. [SchemaType](#schematype).
+
+###### Implementation of
+
+[`SchemaInterface`](#schemainterface).[`type`](#type-12)
+
+***
+
+### StringSchema
+
+Defined in: [requests/schema-builder.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L188)
-[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+Schema class for "string" types. Can be used with or without
+enum values.
-##### minItems?
+#### Extends
-> `optional` **minItems**: `number`
+- [`Schema`](#abstract-schema)
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+#### Indexable
-The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+> \[`key`: `string`\]: `unknown`
-###### Inherited from
+Allows user to add other schema properties that have not yet
+been officially added to the SDK.
-[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+#### Constructors
-##### nullable
+##### Constructor
-> **nullable**: `boolean`
+> **new StringSchema**(`schemaParams?`, `enumValues?`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+Defined in: [requests/schema-builder.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L190)
-Optional. Whether the property is nullable. Defaults to false.
+###### Parameters
-###### Inherited from
+###### schemaParams?
-[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+[`SchemaParams`](#schemaparams)
-##### type
+###### enumValues?
-> **type**: [`SchemaType`](#schematype)
+`string`[]
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+###### Returns
-Optional. The type of the property. [SchemaType](#schematype).
+[`StringSchema`](#stringschema)
-###### Inherited from
+###### Overrides
-[`Schema`](#abstract-schema).[`type`](#type-5)
+[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
#### Methods
@@ -3221,18 +3639,15 @@ Optional. The type of the property. [SchemaType](#schematype).
> **toJSON**(): [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+Defined in: [requests/schema-builder.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L201)
**`Internal`**
-Defines how this Schema should be serialized as JSON.
-See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
-
###### Returns
[`SchemaRequest`](#schemarequest)
-###### Inherited from
+###### Overrides
[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
@@ -3240,7 +3655,7 @@ See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Obj
> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+Defined in: [requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
###### Parameters
@@ -3260,7 +3675,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/
> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Defined in: [requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
###### Parameters
@@ -3280,7 +3695,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase
> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+Defined in: [requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
###### Parameters
@@ -3300,7 +3715,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase
> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+Defined in: [requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
###### Parameters
@@ -3320,7 +3735,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase
> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Defined in: [requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
###### Parameters
@@ -3340,7 +3755,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase
> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+Defined in: [requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
###### Parameters
@@ -3360,7 +3775,7 @@ Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase
> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+Defined in: [requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
###### Parameters
@@ -3376,61 +3791,13 @@ Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase
[`Schema`](#abstract-schema).[`string`](#string-6)
-***
-
-### ObjectSchema
-
-Defined in: [ai/lib/requests/schema-builder.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L242)
-
-Schema class for "object" types.
-The `properties` param must be a map of `Schema` objects.
-
-#### Extends
-
-- [`Schema`](#abstract-schema)
-
-#### Indexable
-
-\[`key`: `string`\]: `unknown`
-
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
-
-#### Constructors
-
-##### Constructor
-
-> **new ObjectSchema**(`schemaParams`, `properties`, `optionalProperties?`): [`ObjectSchema`](#objectschema)
-
-Defined in: [ai/lib/requests/schema-builder.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L243)
-
-###### Parameters
-
-###### schemaParams
-
-[`SchemaParams`](#schemaparams)
-
-###### properties
-
-###### optionalProperties?
-
-`string`[] = `[]`
-
-###### Returns
-
-[`ObjectSchema`](#objectschema)
-
-###### Overrides
-
-[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
-
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+Defined in: [requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
Optional. The description of the property.
@@ -3438,11 +3805,17 @@ Optional. The description of the property.
[`Schema`](#abstract-schema).[`description`](#description-5)
+##### enum?
+
+> `optional` **enum?**: `string`[]
+
+Defined in: [requests/schema-builder.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L189)
+
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+Defined in: [requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
Optional. The example of the property.
@@ -3452,9 +3825,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+Defined in: [requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
Optional. The format of the property.
Supported formats:
@@ -3470,9 +3843,9 @@ Supported formats:
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+Defined in: [requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
Optional. The items of the property.
@@ -3482,9 +3855,9 @@ Optional. The items of the property.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+Defined in: [requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -3494,9 +3867,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+Defined in: [requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -3508,7 +3881,7 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
> **nullable**: `boolean`
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+Defined in: [requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
Optional. Whether the property is nullable. Defaults to false.
@@ -3516,27 +3889,11 @@ Optional. Whether the property is nullable. Defaults to false.
[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
-##### optionalProperties
-
-> **optionalProperties**: `string`[] = `[]`
-
-Defined in: [ai/lib/requests/schema-builder.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L248)
-
-##### properties
-
-> **properties**: `object`
-
-Defined in: [ai/lib/requests/schema-builder.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L245)
-
-###### Index Signature
-
-\[`k`: `string`\]: [`TypedSchema`](#typedschema)
-
##### type
> **type**: [`SchemaType`](#schematype)
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+Defined in: [requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
Optional. The type of the property. [SchemaType](#schematype).
@@ -3544,1257 +3901,1253 @@ Optional. The type of the property. [SchemaType](#schematype).
[`Schema`](#abstract-schema).[`type`](#type-5)
-#### Methods
+***
-##### toJSON()
+### TemplateGenerativeModel
-> **toJSON**(): [`SchemaRequest`](#schemarequest)
+Defined in: [models/template-generative-model.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L34)
-Defined in: [ai/lib/requests/schema-builder.ts:259](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L259)
+**`Beta`**
-**`Internal`**
+[GenerativeModel](#generativemodel) APIs that execute on a server-side template.
-###### Returns
+This class should only be instantiated with [getTemplateGenerativeModel](#gettemplategenerativemodel).
-[`SchemaRequest`](#schemarequest)
+#### Methods
-###### Overrides
+##### generateContent()
-[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+> **generateContent**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
-##### array()
+Defined in: [models/template-generative-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L63)
-> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+**`Beta`**
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+Makes a single non-streaming call to the model and returns an object
+containing a single [GenerateContentResponse](#generatecontentresponse).
###### Parameters
-###### arrayParams
+###### templateId
-[`SchemaParams`](#schemaparams) & `object`
+`string`
+
+The ID of the server-side template to execute.
+
+###### templateVariables
+
+`object`
+
+A key-value map of variables to populate the
+template with.
###### Returns
-[`ArraySchema`](#arrayschema)
+`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
-###### Inherited from
+##### generateContentStream()
-[`Schema`](#abstract-schema).[`array`](#array-6)
+> **generateContentStream**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
-##### boolean()
+Defined in: [models/template-generative-model.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L87)
-> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+**`Beta`**
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Makes a single streaming call to the model and returns an object
+containing an iterable stream that iterates over all chunks in the
+streaming response as well as a promise that returns the final aggregated
+response.
###### Parameters
-###### booleanParams?
+###### templateId
-[`SchemaParams`](#schemaparams)
+`string`
-###### Returns
+The ID of the server-side template to execute.
-[`BooleanSchema`](#booleanschema)
+###### templateVariables
-###### Inherited from
+`object`
-[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+A key-value map of variables to populate the
+template with.
-##### enumString()
+###### Returns
-> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+#### Properties
-###### Parameters
+##### \_apiSettings
-###### stringParams
+> **\_apiSettings**: `ApiSettings`
-[`SchemaParams`](#schemaparams) & `object`
+Defined in: [models/template-generative-model.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L38)
-###### Returns
+**`Internal`**
-[`StringSchema`](#stringschema)
+##### requestOptions?
-###### Inherited from
+> `optional` **requestOptions?**: [`RequestOptions`](#requestoptions-5)
-[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+Defined in: [models/template-generative-model.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L43)
-##### integer()
+**`Beta`**
-> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+Additional options to use when making requests.
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+***
-###### Parameters
+### TemplateImagenModel
-###### integerParams?
+Defined in: [models/template-imagen-model.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L32)
-[`SchemaParams`](#schemaparams)
+**`Beta`**
-###### Returns
+Class for Imagen model APIs that execute on a server-side template.
-[`IntegerSchema`](#integerschema)
+This class should only be instantiated with [getTemplateImagenModel](#gettemplateimagenmodel).
-###### Inherited from
+#### Methods
-[`Schema`](#abstract-schema).[`integer`](#integer-6)
+##### generateImages()
-##### number()
+> **generateImages**(`templateId`, `templateVariables`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
-> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+Defined in: [models/template-imagen-model.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L61)
+
+**`Beta`**
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Makes a single call to the model and returns an object containing a single
+[ImagenGenerationResponse](#imagengenerationresponse).
###### Parameters
-###### numberParams?
+###### templateId
-[`SchemaParams`](#schemaparams)
+`string`
-###### Returns
+The ID of the server-side template to execute.
-[`NumberSchema`](#numberschema)
+###### templateVariables
-###### Inherited from
+`object`
-[`Schema`](#abstract-schema).[`number`](#number-6)
+A key-value map of variables to populate the
+template with.
-##### object()
+###### Returns
-> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+#### Properties
-###### Parameters
+##### \_apiSettings
-###### objectParams
+> **\_apiSettings**: `ApiSettings`
-[`SchemaParams`](#schemaparams) & `object`
+Defined in: [models/template-imagen-model.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L36)
-###### Returns
+**`Internal`**
-[`ObjectSchema`](#objectschema)
+##### requestOptions?
-###### Inherited from
+> `optional` **requestOptions?**: [`RequestOptions`](#requestoptions-5)
-[`Schema`](#abstract-schema).[`object`](#object-6)
+Defined in: [models/template-imagen-model.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L41)
-##### string()
+**`Beta`**
-> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+Additional options to use when making requests.
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+***
-###### Parameters
+### VertexAIBackend
-###### stringParams?
+Defined in: [backend.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L93)
-[`SchemaParams`](#schemaparams)
+Configuration class for the Vertex AI Gemini API.
-###### Returns
+Use this with [AIOptions](#aioptions-1) when initializing the AI service via
+[getAI()](#getai) to specify the Vertex AI Gemini API as the backend.
-[`StringSchema`](#stringschema)
+#### Extends
-###### Inherited from
+- [`Backend`](#abstract-backend)
-[`Schema`](#abstract-schema).[`string`](#string-6)
+#### Constructors
+
+##### Constructor
+
+> **new VertexAIBackend**(`location?`): [`VertexAIBackend`](#vertexaibackend)
-***
+Defined in: [backend.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L108)
-### `abstract` Schema
+Creates a configuration object for the Vertex AI backend.
-Defined in: [ai/lib/requests/schema-builder.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L35)
+###### Parameters
-Parent class encompassing all Schema types, with static methods that
-allow building specific Schema types. This class can be converted with
-`JSON.stringify()` into a JSON string accepted by Vertex AI REST endpoints.
-(This string conversion is automatically done when calling SDK methods.)
+###### location?
-#### Extended by
+`string` = `DEFAULT_LOCATION`
-- [`IntegerSchema`](#integerschema)
-- [`NumberSchema`](#numberschema)
-- [`BooleanSchema`](#booleanschema)
-- [`StringSchema`](#stringschema)
-- [`ArraySchema`](#arrayschema)
-- [`ObjectSchema`](#objectschema)
+The region identifier, defaulting to `us-central1`;
+see [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
+for a list of supported locations.
-#### Implements
+###### Returns
-- [`SchemaInterface`](#schemainterface)
+[`VertexAIBackend`](#vertexaibackend)
-#### Indexable
+###### Overrides
-\[`key`: `string`\]: `unknown`
+[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
+#### Methods
-#### Constructors
+##### \_getModelPath()
-##### Constructor
+> **\_getModelPath**(`project`, `model`): `string`
-> **new Schema**(`schemaParams`): [`Schema`](#abstract-schema)
+Defined in: [backend.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L120)
-Defined in: [ai/lib/requests/schema-builder.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L68)
+**`Internal`**
###### Parameters
-###### schemaParams
+###### project
-[`SchemaInterface`](#schemainterface)
+`string`
-###### Returns
+###### model
-[`Schema`](#abstract-schema)
+`string`
-#### Properties
+###### Returns
-##### description?
+`string`
-> `optional` **description**: `string`
+###### Overrides
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
-Optional. The description of the property.
+##### \_getTemplatePath()
-###### Implementation of
+> **\_getTemplatePath**(`project`, `templateId`): `string`
-[`SchemaInterface`](#schemainterface).[`description`](#description-9)
+Defined in: [backend.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L127)
-##### example?
+**`Internal`**
-> `optional` **example**: `unknown`
+###### Parameters
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+###### project
-Optional. The example of the property.
+`string`
-###### Implementation of
+###### templateId
-[`SchemaInterface`](#schemainterface).[`example`](#example-8)
+`string`
-##### format?
+###### Returns
-> `optional` **format**: `string`
+`string`
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+###### Overrides
-Optional. The format of the property.
-Supported formats:
-
-
for NUMBER type: "float", "double"
-
for INTEGER type: "int32", "int64"
-
for STRING type: "email", "byte", etc
-
+[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
-###### Implementation of
+#### Properties
-[`SchemaInterface`](#schemainterface).[`format`](#format-8)
+##### backendType
-##### items?
+> `readonly` **backendType**: [`BackendType`](#backendtype-3)
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+Defined in: [backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+Specifies the backend type.
-Optional. The items of the property.
+###### Inherited from
-###### Implementation of
+[`Backend`](#abstract-backend).[`backendType`](#backendtype)
-[`SchemaInterface`](#schemainterface).[`items`](#items-8)
+##### location
-##### maxItems?
+> `readonly` **location**: `string`
-> `optional` **maxItems**: `number`
+Defined in: [backend.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L99)
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+The region identifier.
+See [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
+for a list of supported locations.
-The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+## Enumerations
-###### Implementation of
+### AIErrorCode
-[`SchemaInterface`](#schemainterface).[`maxItems`](#maxitems-8)
+Defined in: [types/error.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L65)
-##### minItems?
+Standardized error codes that [AIError](#aierror) can have.
-> `optional` **minItems**: `number`
+#### Enumeration Members
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+##### API\_NOT\_ENABLED
-The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+> **API\_NOT\_ENABLED**: `"api-not-enabled"`
-###### Implementation of
+Defined in: [types/error.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L82)
-[`SchemaInterface`](#schemainterface).[`minItems`](#minitems-8)
+An error due to the Firebase API not being enabled in the Console.
-##### nullable
+##### ERROR
-> **nullable**: `boolean`
+> **ERROR**: `"error"`
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+Defined in: [types/error.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L67)
-Optional. Whether the property is nullable. Defaults to false.
+A generic error occurred.
-###### Implementation of
+##### FETCH\_ERROR
-[`SchemaInterface`](#schemainterface).[`nullable`](#nullable-8)
+> **FETCH\_ERROR**: `"fetch-error"`
-##### type
+Defined in: [types/error.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L76)
-> **type**: [`SchemaType`](#schematype)
+An error occurred while performing a fetch.
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+##### INVALID\_CONTENT
-Optional. The type of the property. [SchemaType](#schematype).
+> **INVALID\_CONTENT**: `"invalid-content"`
-###### Implementation of
+Defined in: [types/error.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L79)
-[`SchemaInterface`](#schemainterface).[`type`](#type-12)
+An error associated with a Content object.
-#### Methods
+##### INVALID\_SCHEMA
-##### toJSON()
+> **INVALID\_SCHEMA**: `"invalid-schema"`
-> **toJSON**(): [`SchemaRequest`](#schemarequest)
+Defined in: [types/error.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L85)
-Defined in: [ai/lib/requests/schema-builder.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L82)
+An error due to invalid Schema input.
-**`Internal`**
+##### NO\_API\_KEY
-Defines how this Schema should be serialized as JSON.
-See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#tojson_behavior
+> **NO\_API\_KEY**: `"no-api-key"`
-###### Returns
+Defined in: [types/error.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L88)
-[`SchemaRequest`](#schemarequest)
+An error occurred due to a missing Firebase API key.
-##### array()
+##### NO\_APP\_ID
-> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+> **NO\_APP\_ID**: `"no-app-id"`
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+Defined in: [types/error.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L91)
-###### Parameters
+An error occurred due to a missing Firebase app ID.
-###### arrayParams
+##### NO\_MODEL
-[`SchemaParams`](#schemaparams) & `object`
+> **NO\_MODEL**: `"no-model"`
-###### Returns
+Defined in: [types/error.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L94)
-[`ArraySchema`](#arrayschema)
+An error occurred due to a model name not being specified during initialization.
-##### boolean()
+##### NO\_PROJECT\_ID
-> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+> **NO\_PROJECT\_ID**: `"no-project-id"`
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Defined in: [types/error.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L97)
-###### Parameters
+An error occurred due to a missing project ID.
-###### booleanParams?
+##### PARSE\_FAILED
-[`SchemaParams`](#schemaparams)
+> **PARSE\_FAILED**: `"parse-failed"`
-###### Returns
+Defined in: [types/error.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L100)
-[`BooleanSchema`](#booleanschema)
+An error occurred while parsing.
-##### enumString()
+##### REQUEST\_ERROR
-> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+> **REQUEST\_ERROR**: `"request-error"`
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+Defined in: [types/error.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L70)
-###### Parameters
+An error occurred in a request.
-###### stringParams
+##### RESPONSE\_ERROR
-[`SchemaParams`](#schemaparams) & `object`
+> **RESPONSE\_ERROR**: `"response-error"`
-###### Returns
+Defined in: [types/error.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L73)
-[`StringSchema`](#stringschema)
+An error occurred in a response.
-##### integer()
+##### SESSION\_CLOSED
-> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+> **SESSION\_CLOSED**: `"session-closed"`
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+Defined in: [types/error.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L106)
-###### Parameters
+An error occurred due to a session being closed.
-###### integerParams?
+##### UNSUPPORTED
-[`SchemaParams`](#schemaparams)
+> **UNSUPPORTED**: `"unsupported"`
-###### Returns
+Defined in: [types/error.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L103)
-[`IntegerSchema`](#integerschema)
+An error occurred due an attempt to use an unsupported feature.
-##### number()
+***
-> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+### BlockReason
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Defined in: [types/enums.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L142)
-###### Parameters
+Reason that a prompt was blocked.
-###### numberParams?
+#### Enumeration Members
-[`SchemaParams`](#schemaparams)
+##### BLOCKLIST
-###### Returns
+> **BLOCKLIST**: `"BLOCKLIST"`
-[`NumberSchema`](#numberschema)
+Defined in: [types/enums.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L154)
-##### object()
+Content was blocked because it contained terms from the terminology blocklist.
-> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+##### OTHER
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+> **OTHER**: `"OTHER"`
-###### Parameters
+Defined in: [types/enums.ts:150](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L150)
-###### objectParams
+Content was blocked, but the reason is uncategorized.
-[`SchemaParams`](#schemaparams) & `object`
+##### PROHIBITED\_CONTENT
-###### Returns
+> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
-[`ObjectSchema`](#objectschema)
+Defined in: [types/enums.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L158)
-##### string()
+Content was blocked due to prohibited content.
-> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+##### SAFETY
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+> **SAFETY**: `"SAFETY"`
-###### Parameters
+Defined in: [types/enums.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L146)
-###### stringParams?
+Content was blocked by safety settings.
-[`SchemaParams`](#schemaparams)
+***
-###### Returns
+### FinishReason
-[`StringSchema`](#stringschema)
+Defined in: [types/enums.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L165)
-***
+Reason that a candidate finished.
-### StringSchema
+#### Enumeration Members
-Defined in: [ai/lib/requests/schema-builder.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L188)
+##### BLOCKLIST
-Schema class for "string" types. Can be used with or without
-enum values.
+> **BLOCKLIST**: `"BLOCKLIST"`
-#### Extends
+Defined in: [types/enums.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L189)
-- [`Schema`](#abstract-schema)
+The candidate content contained forbidden terms.
-#### Indexable
+##### MALFORMED\_FUNCTION\_CALL
+
+> **MALFORMED\_FUNCTION\_CALL**: `"MALFORMED_FUNCTION_CALL"`
-\[`key`: `string`\]: `unknown`
+Defined in: [types/enums.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L201)
-Allows user to add other schema properties that have not yet
-been officially added to the SDK.
+The function call generated by the model was invalid.
-#### Constructors
+##### MAX\_TOKENS
-##### Constructor
+> **MAX\_TOKENS**: `"MAX_TOKENS"`
-> **new StringSchema**(`schemaParams?`, `enumValues?`): [`StringSchema`](#stringschema)
+Defined in: [types/enums.ts:173](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L173)
-Defined in: [ai/lib/requests/schema-builder.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L190)
+The maximum number of tokens as specified in the request was reached.
-###### Parameters
+##### OTHER
-###### schemaParams?
+> **OTHER**: `"OTHER"`
-[`SchemaParams`](#schemaparams)
+Defined in: [types/enums.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L185)
-###### enumValues?
+Unknown reason.
-`string`[]
+##### PROHIBITED\_CONTENT
-###### Returns
+> **PROHIBITED\_CONTENT**: `"PROHIBITED_CONTENT"`
-[`StringSchema`](#stringschema)
+Defined in: [types/enums.ts:193](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L193)
-###### Overrides
+The candidate content potentially contained prohibited content.
-[`Schema`](#abstract-schema).[`constructor`](#constructor-14)
+##### RECITATION
-#### Properties
+> **RECITATION**: `"RECITATION"`
-##### description?
+Defined in: [types/enums.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L181)
-> `optional` **description**: `string`
+The candidate content was flagged for recitation reasons.
-Defined in: [ai/lib/requests/schema-builder.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L51)
+##### SAFETY
-Optional. The description of the property.
+> **SAFETY**: `"SAFETY"`
-###### Inherited from
+Defined in: [types/enums.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L177)
-[`Schema`](#abstract-schema).[`description`](#description-5)
+The candidate content was flagged for safety reasons.
-##### enum?
+##### SPII
-> `optional` **enum**: `string`[]
+> **SPII**: `"SPII"`
-Defined in: [ai/lib/requests/schema-builder.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L189)
+Defined in: [types/enums.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L197)
-##### example?
+The candidate content potentially contained Sensitive Personally Identifiable Information (SPII).
-> `optional` **example**: `unknown`
+##### STOP
-Defined in: [ai/lib/requests/schema-builder.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L61)
+> **STOP**: `"STOP"`
-Optional. The example of the property.
+Defined in: [types/enums.ts:169](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L169)
-###### Inherited from
+Natural stop point of the model or provided stop sequence.
-[`Schema`](#abstract-schema).[`example`](#example-5)
+***
-##### format?
+### FunctionCallingMode
-> `optional` **format**: `string`
+Defined in: [types/enums.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L209)
-Defined in: [ai/lib/requests/schema-builder.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L49)
+Function calling mode for the model.
-Optional. The format of the property.
-Supported formats:
-
-
for NUMBER type: "float", "double"
-
for INTEGER type: "int32", "int64"
-
for STRING type: "email", "byte", etc
-
+#### Enumeration Members
-###### Inherited from
+##### ANY
-[`Schema`](#abstract-schema).[`format`](#format-5)
+> **ANY**: `"ANY"`
-##### items?
+Defined in: [types/enums.ts:221](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L221)
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+Model is constrained to always predicting a function call only.
+If `allowed_function_names` is set, the predicted function call will be
+limited to any one of `allowed_function_names`, else the predicted
+function call will be any one of the provided `function_declarations`.
-Defined in: [ai/lib/requests/schema-builder.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L53)
+##### AUTO
-Optional. The items of the property.
+> **AUTO**: `"AUTO"`
-###### Inherited from
+Defined in: [types/enums.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L214)
-[`Schema`](#abstract-schema).[`items`](#items-5)
+Default model behavior; model decides to predict either a function call
+or a natural language response.
-##### maxItems?
+##### NONE
-> `optional` **maxItems**: `number`
+> **NONE**: `"NONE"`
-Defined in: [ai/lib/requests/schema-builder.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L57)
+Defined in: [types/enums.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L226)
-The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+Model will not predict any function call. Model behavior is same as when
+not passing any function declarations.
-###### Inherited from
+***
-[`Schema`](#abstract-schema).[`maxItems`](#maxitems-5)
+### HarmBlockMethod
-##### minItems?
+Defined in: [types/enums.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L74)
-> `optional` **minItems**: `number`
+This property is not supported in the Gemini Developer API ([GoogleAIBackend](#googleaibackend)).
-Defined in: [ai/lib/requests/schema-builder.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L55)
+#### Enumeration Members
-The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
+##### PROBABILITY
-###### Inherited from
+> **PROBABILITY**: `"PROBABILITY"`
-[`Schema`](#abstract-schema).[`minItems`](#minitems-5)
+Defined in: [types/enums.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L82)
-##### nullable
+The harm block method uses the probability score.
-> **nullable**: `boolean`
+##### SEVERITY
-Defined in: [ai/lib/requests/schema-builder.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L59)
+> **SEVERITY**: `"SEVERITY"`
-Optional. Whether the property is nullable. Defaults to false.
+Defined in: [types/enums.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L78)
-###### Inherited from
+The harm block method uses both probability and severity scores.
-[`Schema`](#abstract-schema).[`nullable`](#nullable-5)
+***
-##### type
+### HarmBlockThreshold
-> **type**: [`SchemaType`](#schematype)
+Defined in: [types/enums.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L45)
-Defined in: [ai/lib/requests/schema-builder.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L40)
+Threshold above which a prompt or candidate will be blocked.
-Optional. The type of the property. [SchemaType](#schematype).
+#### Enumeration Members
-###### Inherited from
+##### BLOCK\_LOW\_AND\_ABOVE
-[`Schema`](#abstract-schema).[`type`](#type-5)
+> **BLOCK\_LOW\_AND\_ABOVE**: `"BLOCK_LOW_AND_ABOVE"`
-#### Methods
+Defined in: [types/enums.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L49)
-##### toJSON()
+Content with `NEGLIGIBLE` will be allowed.
-> **toJSON**(): [`SchemaRequest`](#schemarequest)
+##### BLOCK\_MEDIUM\_AND\_ABOVE
-Defined in: [ai/lib/requests/schema-builder.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L201)
+> **BLOCK\_MEDIUM\_AND\_ABOVE**: `"BLOCK_MEDIUM_AND_ABOVE"`
-**`Internal`**
+Defined in: [types/enums.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L53)
-###### Returns
+Content with `NEGLIGIBLE` and `LOW` will be allowed.
-[`SchemaRequest`](#schemarequest)
+##### BLOCK\_NONE
-###### Overrides
+> **BLOCK\_NONE**: `"BLOCK_NONE"`
-[`Schema`](#abstract-schema).[`toJSON`](#tojson-5)
+Defined in: [types/enums.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L61)
-##### array()
+All content will be allowed.
-> `static` **array**(`arrayParams`): [`ArraySchema`](#arrayschema)
+##### BLOCK\_ONLY\_HIGH
-Defined in: [ai/lib/requests/schema-builder.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L96)
+> **BLOCK\_ONLY\_HIGH**: `"BLOCK_ONLY_HIGH"`
-###### Parameters
+Defined in: [types/enums.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L57)
-###### arrayParams
+Content with `NEGLIGIBLE`, `LOW`, and `MEDIUM` will be allowed.
-[`SchemaParams`](#schemaparams) & `object`
+##### OFF
-###### Returns
+> **OFF**: `"OFF"`
-[`ArraySchema`](#arrayschema)
+Defined in: [types/enums.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L66)
-###### Inherited from
+All content will be allowed. This is the same as `BLOCK_NONE`, but the metadata corresponding
+to the [HarmCategory](#harmcategory) will not be present in the response.
-[`Schema`](#abstract-schema).[`array`](#array-6)
+***
-##### boolean()
+### HarmCategory
-> `static` **boolean**(`booleanParams?`): [`BooleanSchema`](#booleanschema)
+Defined in: [types/enums.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L34)
-Defined in: [ai/lib/requests/schema-builder.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L127)
+Harm categories that would cause prompts or candidates to be blocked.
-###### Parameters
+#### Enumeration Members
-###### booleanParams?
+##### HARM\_CATEGORY\_DANGEROUS\_CONTENT
-[`SchemaParams`](#schemaparams)
+> **HARM\_CATEGORY\_DANGEROUS\_CONTENT**: `"HARM_CATEGORY_DANGEROUS_CONTENT"`
-###### Returns
+Defined in: [types/enums.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L38)
-[`BooleanSchema`](#booleanschema)
+##### HARM\_CATEGORY\_HARASSMENT
-###### Inherited from
+> **HARM\_CATEGORY\_HARASSMENT**: `"HARM_CATEGORY_HARASSMENT"`
-[`Schema`](#abstract-schema).[`boolean`](#boolean-6)
+Defined in: [types/enums.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L37)
-##### enumString()
+##### HARM\_CATEGORY\_HATE\_SPEECH
-> `static` **enumString**(`stringParams`): [`StringSchema`](#stringschema)
+> **HARM\_CATEGORY\_HATE\_SPEECH**: `"HARM_CATEGORY_HATE_SPEECH"`
-Defined in: [ai/lib/requests/schema-builder.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L115)
+Defined in: [types/enums.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L35)
-###### Parameters
+##### HARM\_CATEGORY\_SEXUALLY\_EXPLICIT
-###### stringParams
+> **HARM\_CATEGORY\_SEXUALLY\_EXPLICIT**: `"HARM_CATEGORY_SEXUALLY_EXPLICIT"`
-[`SchemaParams`](#schemaparams) & `object`
+Defined in: [types/enums.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L36)
-###### Returns
+***
-[`StringSchema`](#stringschema)
+### HarmProbability
-###### Inherited from
+Defined in: [types/enums.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L89)
-[`Schema`](#abstract-schema).[`enumString`](#enumstring-5)
+Probability that a prompt or candidate matches a harm category.
-##### integer()
+#### Enumeration Members
-> `static` **integer**(`integerParams?`): [`IntegerSchema`](#integerschema)
+##### HIGH
-Defined in: [ai/lib/requests/schema-builder.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L119)
+> **HIGH**: `"HIGH"`
-###### Parameters
+Defined in: [types/enums.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L105)
-###### integerParams?
+Content has a high chance of being unsafe.
-[`SchemaParams`](#schemaparams)
+##### LOW
-###### Returns
+> **LOW**: `"LOW"`
-[`IntegerSchema`](#integerschema)
+Defined in: [types/enums.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L97)
-###### Inherited from
+Content has a low chance of being unsafe.
-[`Schema`](#abstract-schema).[`integer`](#integer-6)
+##### MEDIUM
-##### number()
+> **MEDIUM**: `"MEDIUM"`
-> `static` **number**(`numberParams?`): [`NumberSchema`](#numberschema)
+Defined in: [types/enums.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L101)
-Defined in: [ai/lib/requests/schema-builder.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L123)
+Content has a medium chance of being unsafe.
-###### Parameters
+##### NEGLIGIBLE
-###### numberParams?
+> **NEGLIGIBLE**: `"NEGLIGIBLE"`
-[`SchemaParams`](#schemaparams)
+Defined in: [types/enums.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L93)
-###### Returns
+Content has a negligible chance of being unsafe.
-[`NumberSchema`](#numberschema)
+***
-###### Inherited from
+### HarmSeverity
-[`Schema`](#abstract-schema).[`number`](#number-6)
+Defined in: [types/enums.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L112)
-##### object()
+Harm severity levels.
-> `static` **object**(`objectParams`): [`ObjectSchema`](#objectschema)
+#### Enumeration Members
-Defined in: [ai/lib/requests/schema-builder.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L100)
+##### HARM\_SEVERITY\_HIGH
-###### Parameters
+> **HARM\_SEVERITY\_HIGH**: `"HARM_SEVERITY_HIGH"`
-###### objectParams
+Defined in: [types/enums.ts:128](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L128)
-[`SchemaParams`](#schemaparams) & `object`
+High level of harm severity.
-###### Returns
+##### HARM\_SEVERITY\_LOW
-[`ObjectSchema`](#objectschema)
+> **HARM\_SEVERITY\_LOW**: `"HARM_SEVERITY_LOW"`
-###### Inherited from
+Defined in: [types/enums.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L120)
-[`Schema`](#abstract-schema).[`object`](#object-6)
+Low level of harm severity.
-##### string()
+##### HARM\_SEVERITY\_MEDIUM
-> `static` **string**(`stringParams?`): [`StringSchema`](#stringschema)
+> **HARM\_SEVERITY\_MEDIUM**: `"HARM_SEVERITY_MEDIUM"`
-Defined in: [ai/lib/requests/schema-builder.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L111)
+Defined in: [types/enums.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L124)
-###### Parameters
+Medium level of harm severity.
-###### stringParams?
+##### HARM\_SEVERITY\_NEGLIGIBLE
-[`SchemaParams`](#schemaparams)
+> **HARM\_SEVERITY\_NEGLIGIBLE**: `"HARM_SEVERITY_NEGLIGIBLE"`
-###### Returns
+Defined in: [types/enums.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L116)
-[`StringSchema`](#stringschema)
+Negligible level of harm severity.
-###### Inherited from
+##### HARM\_SEVERITY\_UNSUPPORTED
-[`Schema`](#abstract-schema).[`string`](#string-6)
+> **HARM\_SEVERITY\_UNSUPPORTED**: `"HARM_SEVERITY_UNSUPPORTED"`
-***
+Defined in: [types/enums.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L135)
-### TemplateGenerativeModel
+Harm severity is not supported.
-Defined in: [ai/lib/models/template-generative-model.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L34)
+###### Remarks
-**`Beta`**
+The GoogleAI backend does not support `HarmSeverity`, so this value is used as a fallback.
-[GenerativeModel](#generativemodel) APIs that execute on a server-side template.
+***
-This class should only be instantiated with [getTemplateGenerativeModel](#gettemplategenerativemodel).
+### Modality
-#### Properties
+Defined in: [types/enums.ts:233](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L233)
-##### \_apiSettings
+Content part modality.
-> **\_apiSettings**: `ApiSettings`
+#### Enumeration Members
-Defined in: [ai/lib/models/template-generative-model.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L38)
+##### AUDIO
-**`Internal`**
+> **AUDIO**: `"AUDIO"`
-##### requestOptions?
+Defined in: [types/enums.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L253)
-> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+Audio.
-Defined in: [ai/lib/models/template-generative-model.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L43)
+##### DOCUMENT
-**`Beta`**
+> **DOCUMENT**: `"DOCUMENT"`
-Additional options to use when making requests.
+Defined in: [types/enums.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L257)
-#### Methods
+Document (for example, PDF).
-##### generateContent()
+##### IMAGE
-> **generateContent**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+> **IMAGE**: `"IMAGE"`
-Defined in: [ai/lib/models/template-generative-model.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L63)
+Defined in: [types/enums.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L245)
-**`Beta`**
+Image.
-Makes a single non-streaming call to the model and returns an object
-containing a single [GenerateContentResponse](#generatecontentresponse).
+##### MODALITY\_UNSPECIFIED
-###### Parameters
+> **MODALITY\_UNSPECIFIED**: `"MODALITY_UNSPECIFIED"`
-###### templateId
+Defined in: [types/enums.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L237)
-`string`
+Unspecified modality.
-The ID of the server-side template to execute.
+##### TEXT
-###### templateVariables
+> **TEXT**: `"TEXT"`
-`object`
+Defined in: [types/enums.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L241)
-A key-value map of variables to populate the
-template with.
+Plain text.
-###### Returns
+##### VIDEO
-`Promise`\<[`GenerateContentResult`](#generatecontentresult)\>
+> **VIDEO**: `"VIDEO"`
-##### generateContentStream()
+Defined in: [types/enums.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L249)
-> **generateContentStream**(`templateId`, `templateVariables`): `Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+Video.
-Defined in: [ai/lib/models/template-generative-model.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-generative-model.ts#L87)
+***
-**`Beta`**
+### SchemaType
-Makes a single streaming call to the model and returns an object
-containing an iterable stream that iterates over all chunks in the
-streaming response as well as a promise that returns the final aggregated
-response.
+Defined in: [types/schema.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L24)
-###### Parameters
+Contains the list of OpenAPI data types
+as defined by the
+[OpenAPI specification](https://swagger.io/docs/specification/data-models/data-types/)
-###### templateId
+#### Enumeration Members
-`string`
+##### ARRAY
-The ID of the server-side template to execute.
+> **ARRAY**: `"array"`
-###### templateVariables
+Defined in: [types/schema.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L34)
-`object`
+Array type.
-A key-value map of variables to populate the
-template with.
+##### BOOLEAN
-###### Returns
+> **BOOLEAN**: `"boolean"`
-`Promise`\<[`GenerateContentStreamResult`](#generatecontentstreamresult)\>
+Defined in: [types/schema.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L32)
-***
+Boolean type.
-### TemplateImagenModel
+##### INTEGER
-Defined in: [ai/lib/models/template-imagen-model.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L32)
+> **INTEGER**: `"integer"`
-**`Beta`**
+Defined in: [types/schema.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L30)
-Class for Imagen model APIs that execute on a server-side template.
+Integer type.
-This class should only be instantiated with [getTemplateImagenModel](#gettemplateimagenmodel).
+##### NUMBER
-#### Properties
+> **NUMBER**: `"number"`
-##### \_apiSettings
+Defined in: [types/schema.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L28)
-> **\_apiSettings**: `ApiSettings`
+Number type.
-Defined in: [ai/lib/models/template-imagen-model.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L36)
+##### OBJECT
-**`Internal`**
+> **OBJECT**: `"object"`
-##### requestOptions?
+Defined in: [types/schema.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L36)
-> `optional` **requestOptions**: [`RequestOptions`](#requestoptions-5)
+Object type.
-Defined in: [ai/lib/models/template-imagen-model.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L41)
+##### STRING
-**`Beta`**
+> **STRING**: `"string"`
-Additional options to use when making requests.
+Defined in: [types/schema.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L26)
-#### Methods
+String type.
-##### generateImages()
+## Interfaces
-> **generateImages**(`templateId`, `templateVariables`): `Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+### AI
-Defined in: [ai/lib/models/template-imagen-model.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/models/template-imagen-model.ts#L61)
+Defined in: [public-types.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L88)
-**`Beta`**
+An instance of the Firebase AI SDK.
-Makes a single call to the model and returns an object containing a single
-[ImagenGenerationResponse](#imagengenerationresponse).
+Do not create this instance directly. Instead, use [getAI()](#getai).
-###### Parameters
+#### Properties
-###### templateId
+##### app
-`string`
+> **app**: [`FirebaseApp`](app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
-The ID of the server-side template to execute.
+Defined in: [public-types.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L92)
-###### templateVariables
+The @firebase/app#FirebaseApp this [AI](#ai) instance is associated with.
-`object`
+##### appCheck?
-A key-value map of variables to populate the
-template with.
+> `optional` **appCheck?**: [`AppCheck`](app-check/README.mdx#appcheck) \| `null`
-###### Returns
+Defined in: [public-types.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L93)
-`Promise`\<[`ImagenGenerationResponse`](#imagengenerationresponse)\<[`ImagenInlineImage`](#imageninlineimage)\>\>
+##### auth?
-***
+> `optional` **auth?**: `Module` \| `null`
-### VertexAIBackend
+Defined in: [public-types.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L94)
-Defined in: [ai/lib/backend.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L93)
+##### backend
-Configuration class for the Vertex AI Gemini API.
+> **backend**: [`Backend`](#abstract-backend)
-Use this with [AIOptions](#aioptions-1) when initializing the AI service via
-[getAI()](#getai) to specify the Vertex AI Gemini API as the backend.
+Defined in: [public-types.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L100)
-#### Extends
+A [Backend](#abstract-backend) instance that specifies the configuration for the target backend,
+either the Gemini Developer API (using [GoogleAIBackend](#googleaibackend)) or the
+Vertex AI Gemini API (using [VertexAIBackend](#vertexaibackend)).
-- [`Backend`](#abstract-backend)
+##### ~~location~~
-#### Constructors
+> **location**: `string`
-##### Constructor
+Defined in: [public-types.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L110)
-> **new VertexAIBackend**(`location?`): [`VertexAIBackend`](#vertexaibackend)
+###### Deprecated
-Defined in: [ai/lib/backend.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L108)
+use `AI.backend.location` instead.
-Creates a configuration object for the Vertex AI backend.
+The location configured for this AI service instance, relevant for Vertex AI backends.
-###### Parameters
+##### options?
-###### location?
+> `optional` **options?**: [`AIOptions`](#aioptions-1)
-`string` = `DEFAULT_LOCATION`
+Defined in: [public-types.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L104)
-The region identifier, defaulting to `us-central1`;
-see [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
-for a list of supported locations.
+Options applied to this [AI](#ai) instance.
-###### Returns
+***
-[`VertexAIBackend`](#vertexaibackend)
+### AIOptions
-###### Overrides
+Defined in: [public-types.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L33)
-[`Backend`](#abstract-backend).[`constructor`](#constructor-3)
+Options for initializing the AI service using [getAI()](#getai).
+This allows specifying which backend to use (Vertex AI Gemini API or Gemini Developer API)
+and configuring its specific options (like location for Vertex AI).
#### Properties
-##### backendType
+##### appCheck?
-> `readonly` **backendType**: [`BackendType`](#backendtype-3)
+> `optional` **appCheck?**: [`AppCheck`](app-check/README.mdx#appcheck) \| `null`
-Defined in: [ai/lib/backend.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L33)
+Defined in: [public-types.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L43)
-Specifies the backend type.
+##### auth?
-###### Inherited from
+> `optional` **auth?**: `Module` \| `null`
-[`Backend`](#abstract-backend).[`backendType`](#backendtype)
+Defined in: [public-types.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L44)
-##### location
+##### backend?
-> `readonly` **location**: `string`
+> `optional` **backend?**: [`Backend`](#abstract-backend)
-Defined in: [ai/lib/backend.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L99)
+Defined in: [public-types.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L38)
-The region identifier.
-See [Vertex AI locations](https://firebase.google.com/docs/vertex-ai/locations#available-locations)
-for a list of supported locations.
+The backend configuration to use for the AI service instance.
+Defaults to the Gemini Developer API backend ([GoogleAIBackend](#googleaibackend)).
-#### Methods
+##### useLimitedUseAppCheckTokens?
-##### \_getModelPath()
+> `optional` **useLimitedUseAppCheckTokens?**: `boolean`
-> **\_getModelPath**(`project`, `model`): `string`
+Defined in: [public-types.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L42)
-Defined in: [ai/lib/backend.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L120)
+Whether to use App Check limited use tokens. Defaults to false.
-**`Internal`**
+***
-###### Parameters
+### AudioTranscriptionConfig
-###### project
+Defined in: [types/requests.ts:466](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L466)
-`string`
+**`Beta`**
-###### model
+Configuration for audio transcription in Live sessions.
-`string`
+***
-###### Returns
+### BaseParams
-`string`
+Defined in: [types/requests.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L33)
-###### Overrides
+Base parameters for a number of methods.
-[`Backend`](#abstract-backend).[`_getModelPath`](#_getmodelpath)
+#### Extended by
-##### \_getTemplatePath()
+- [`ModelParams`](#modelparams)
+- [`GenerateContentRequest`](#generatecontentrequest)
+- [`StartChatParams`](#startchatparams)
-> **\_getTemplatePath**(`project`, `templateId`): `string`
+#### Properties
-Defined in: [ai/lib/backend.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/backend.ts#L127)
+##### generationConfig?
-**`Internal`**
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
-###### Parameters
+Defined in: [types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
-###### project
+##### safetySettings?
-`string`
+> `optional` **safetySettings?**: [`SafetySetting`](#safetysetting)[]
-###### templateId
+Defined in: [types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
-`string`
+***
-###### Returns
+### Citation
-`string`
+Defined in: [types/responses.ts:254](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L254)
-###### Overrides
+A single citation.
-[`Backend`](#abstract-backend).[`_getTemplatePath`](#_gettemplatepath)
+#### Properties
-## Interfaces
+##### endIndex?
-### AI
+> `optional` **endIndex?**: `number`
-Defined in: [ai/lib/public-types.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L88)
+Defined in: [types/responses.ts:256](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L256)
-An instance of the Firebase AI SDK.
+##### license?
-Do not create this instance directly. Instead, use [getAI()](#getai).
+> `optional` **license?**: `string`
-#### Properties
+Defined in: [types/responses.ts:258](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L258)
-##### app
+##### publicationDate?
-> **app**: `FirebaseApp`
+> `optional` **publicationDate?**: [`Date`](#date)
-Defined in: [ai/lib/public-types.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L92)
+Defined in: [types/responses.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L270)
-The @firebase/app#FirebaseApp this [AI](#ai) instance is associated with.
+The publication date of the cited source, if available.
-##### appCheck?
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
-> `optional` **appCheck**: `AppCheck` \| `null`
+##### startIndex?
-Defined in: [ai/lib/public-types.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L93)
+> `optional` **startIndex?**: `number`
-##### auth?
+Defined in: [types/responses.ts:255](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L255)
-> `optional` **auth**: `Module` \| `null`
+##### title?
-Defined in: [ai/lib/public-types.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L94)
+> `optional` **title?**: `string`
-##### backend
+Defined in: [types/responses.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L264)
-> **backend**: [`Backend`](#abstract-backend)
+The title of the cited source, if available.
-Defined in: [ai/lib/public-types.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L100)
+This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
-A [Backend](#abstract-backend) instance that specifies the configuration for the target backend,
-either the Gemini Developer API (using [GoogleAIBackend](#googleaibackend)) or the
-Vertex AI Gemini API (using [VertexAIBackend](#vertexaibackend)).
+##### uri?
-##### ~~location~~
+> `optional` **uri?**: `string`
-> **location**: `string`
+Defined in: [types/responses.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L257)
-Defined in: [ai/lib/public-types.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L110)
+***
-###### Deprecated
+### CitationMetadata
-use `AI.backend.location` instead.
+Defined in: [types/responses.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L246)
-The location configured for this AI service instance, relevant for Vertex AI backends.
+Citation metadata that may be found on a [GenerateContentCandidate](#generatecontentcandidate).
-##### options?
+#### Properties
-> `optional` **options**: [`AIOptions`](#aioptions-1)
+##### citations
-Defined in: [ai/lib/public-types.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L104)
+> **citations**: [`Citation`](#citation)[]
-Options applied to this [AI](#ai) instance.
+Defined in: [types/responses.ts:247](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L247)
***
-### AIOptions
-
-Defined in: [ai/lib/public-types.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L33)
+### CodeExecutionResult
-Options for initializing the AI service using [getAI()](#getai).
-This allows specifying which backend to use (Vertex AI Gemini API or Gemini Developer API)
-and configuring its specific options (like location for Vertex AI).
-
-#### Properties
-
-##### appCheck?
+Defined in: [types/content.ts:279](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L279)
-> `optional` **appCheck**: `AppCheck` \| `null`
+**`Beta`**
-Defined in: [ai/lib/public-types.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L43)
+The results of code execution run by the model.
-##### auth?
+#### Properties
-> `optional` **auth**: `Module` \| `null`
+##### outcome?
-Defined in: [ai/lib/public-types.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L44)
+> `optional` **outcome?**: `string`
-##### backend?
+Defined in: [types/content.ts:283](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L283)
-> `optional` **backend**: [`Backend`](#abstract-backend)
+**`Beta`**
-Defined in: [ai/lib/public-types.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L38)
+The result of the code execution.
-The backend configuration to use for the AI service instance.
-Defaults to the Gemini Developer API backend ([GoogleAIBackend](#googleaibackend)).
+##### output?
-##### useLimitedUseAppCheckTokens?
+> `optional` **output?**: `string`
-> `optional` **useLimitedUseAppCheckTokens**: `boolean`
+Defined in: [types/content.ts:288](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L288)
-Defined in: [ai/lib/public-types.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L42)
+**`Beta`**
-Whether to use App Check limited use tokens. Defaults to false.
+The output from the code execution, or an error message
+if it failed.
***
-### AudioTranscriptionConfig
+### CodeExecutionResultPart
-Defined in: [ai/lib/types/requests.ts:434](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L434)
+Defined in: [types/content.ts:243](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L243)
**`Beta`**
-Configuration for audio transcription in Live sessions.
+Represents the code execution result from the model.
-***
+#### Properties
-### BaseParams
+##### codeExecutionResult?
-Defined in: [ai/lib/types/requests.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L33)
+> `optional` **codeExecutionResult?**: [`CodeExecutionResult`](#codeexecutionresult)
-Base parameters for a number of methods.
+Defined in: [types/content.ts:255](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L255)
-#### Extended by
+**`Beta`**
-- [`ModelParams`](#modelparams)
-- [`GenerateContentRequest`](#generatecontentrequest)
-- [`StartChatParams`](#startchatparams)
+##### executableCode?
-#### Properties
+> `optional` **executableCode?**: `undefined`
-##### generationConfig?
+Defined in: [types/content.ts:254](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L254)
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+**`Beta`**
-Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+##### fileData
-##### safetySettings?
+> **fileData**: `never`
-> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+Defined in: [types/content.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L248)
-Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+**`Beta`**
-***
+##### functionCall?
-### Citation
+> `optional` **functionCall?**: `undefined`
-Defined in: [ai/lib/types/responses.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L178)
+Defined in: [types/content.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L246)
-A single citation.
+**`Beta`**
-#### Properties
+##### functionResponse?
-##### endIndex?
+> `optional` **functionResponse?**: `undefined`
-> `optional` **endIndex**: `number`
+Defined in: [types/content.ts:247](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L247)
-Defined in: [ai/lib/types/responses.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L180)
+**`Beta`**
-##### license?
+##### inlineData?
-> `optional` **license**: `string`
+> `optional` **inlineData?**: `undefined`
-Defined in: [ai/lib/types/responses.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L182)
+Defined in: [types/content.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L245)
-##### publicationDate?
+**`Beta`**
-> `optional` **publicationDate**: [`Date`](#date)
+##### text?
-Defined in: [ai/lib/types/responses.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L194)
+> `optional` **text?**: `undefined`
-The publication date of the cited source, if available.
+Defined in: [types/content.ts:244](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L244)
-This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+**`Beta`**
-##### startIndex?
+##### thought?
-> `optional` **startIndex**: `number`
+> `optional` **thought?**: `undefined`
-Defined in: [ai/lib/types/responses.ts:179](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L179)
+Defined in: [types/content.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L249)
-##### title?
+**`Beta`**
-> `optional` **title**: `string`
+##### thoughtSignature?
-Defined in: [ai/lib/types/responses.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L188)
+> `optional` **thoughtSignature?**: `undefined`
-The title of the cited source, if available.
+Defined in: [types/content.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L253)
-This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#vertexaibackend)).
+**`Internal`**
-##### uri?
+***
-> `optional` **uri**: `string`
+### CodeExecutionTool
-Defined in: [ai/lib/types/responses.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L181)
+Defined in: [types/requests.ts:323](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L323)
-***
+**`Beta`**
-### CitationMetadata
+A tool that enables the model to use code execution.
-Defined in: [ai/lib/types/responses.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L170)
+#### Properties
-Citation metadata that may be found on a [GenerateContentCandidate](#generatecontentcandidate).
+##### codeExecution
-#### Properties
+> **codeExecution**: `object`
-##### citations
+Defined in: [types/requests.ts:328](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L328)
-> **citations**: [`Citation`](#citation)[]
+**`Beta`**
-Defined in: [ai/lib/types/responses.ts:171](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L171)
+Specifies the code execution configuration.
+Currently, this is an empty object, but it's reserved for future configuration options.
***
### Content
-Defined in: [ai/lib/types/content.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L24)
+Defined in: [types/content.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L24)
Content type for both prompts and response candidates.
@@ -4804,19 +5157,19 @@ Content type for both prompts and response candidates.
> **parts**: [`Part`](#part)[]
-Defined in: [ai/lib/types/content.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L26)
+Defined in: [types/content.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L26)
##### role
> **role**: `"function"` \| `"user"` \| `"model"` \| `"system"`
-Defined in: [ai/lib/types/content.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L25)
+Defined in: [types/content.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L25)
***
### CountTokensRequest
-Defined in: [ai/lib/types/requests.ts:218](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L218)
+Defined in: [types/requests.ts:218](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L218)
Params for calling [GenerativeModel.countTokens](#counttokens)
@@ -4826,29 +5179,29 @@ Params for calling [GenerativeModel.countTokens](#counttokens)
> **contents**: [`Content`](#content)[]
-Defined in: [ai/lib/types/requests.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L219)
+Defined in: [types/requests.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L219)
##### generationConfig?
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
-Defined in: [ai/lib/types/requests.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L231)
+Defined in: [types/requests.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L231)
Configuration options that control how the model generates a response.
##### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
-Defined in: [ai/lib/types/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L223)
+Defined in: [types/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L223)
Instructions that direct the model to behave a certain way.
##### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
-Defined in: [ai/lib/types/requests.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L227)
+Defined in: [types/requests.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L227)
[Tool](#tool) configuration.
@@ -4856,7 +5209,7 @@ Defined in: [ai/lib/types/requests.ts:227](https://github.com/invertase/react-na
### CountTokensResponse
-Defined in: [ai/lib/types/responses.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L395)
+Defined in: [types/responses.ts:501](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L501)
Response from calling [GenerativeModel.countTokens](#counttokens).
@@ -4864,17 +5217,17 @@ Response from calling [GenerativeModel.countTokens](#counttokens).
##### promptTokensDetails?
-> `optional` **promptTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+> `optional` **promptTokensDetails?**: [`ModalityTokenCount`](#modalitytokencount)[]
-Defined in: [ai/lib/types/responses.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L413)
+Defined in: [types/responses.ts:519](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L519)
The breakdown, by modality, of how many tokens are consumed by the prompt.
##### ~~totalBillableCharacters?~~
-> `optional` **totalBillableCharacters**: `number`
+> `optional` **totalBillableCharacters?**: `number`
-Defined in: [ai/lib/types/responses.ts:409](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L409)
+Defined in: [types/responses.ts:515](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L515)
###### Deprecated
@@ -4890,7 +5243,7 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
> **totalTokens**: `number`
-Defined in: [ai/lib/types/responses.ts:399](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L399)
+Defined in: [types/responses.ts:505](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L505)
The total number of tokens counted across all instances from the request.
@@ -4898,7 +5251,7 @@ The total number of tokens counted across all instances from the request.
### CustomErrorData
-Defined in: [ai/lib/types/error.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L46)
+Defined in: [types/error.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L46)
Details object that contains data originating from a bad HTTP response.
@@ -4906,33 +5259,33 @@ Details object that contains data originating from a bad HTTP response.
##### errorDetails?
-> `optional` **errorDetails**: [`ErrorDetails`](#errordetails-1)[]
+> `optional` **errorDetails?**: [`ErrorDetails`](#errordetails-1)[]
-Defined in: [ai/lib/types/error.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L57)
+Defined in: [types/error.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L57)
Optional additional details about the error.
##### response?
-> `optional` **response**: [`GenerateContentResponse`](#generatecontentresponse)
+> `optional` **response?**: [`GenerateContentResponse`](#generatecontentresponse)
-Defined in: [ai/lib/types/error.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L54)
+Defined in: [types/error.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L54)
Response from a [GenerateContentRequest](#generatecontentrequest)
##### status?
-> `optional` **status**: `number`
+> `optional` **status?**: `number`
-Defined in: [ai/lib/types/error.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L48)
+Defined in: [types/error.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L48)
HTTP status code of the error response.
##### statusText?
-> `optional` **statusText**: `string`
+> `optional` **statusText?**: `string`
-Defined in: [ai/lib/types/error.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L51)
+Defined in: [types/error.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L51)
HTTP status text of the error response.
@@ -4940,7 +5293,7 @@ HTTP status text of the error response.
### Date
-Defined in: [ai/lib/types/responses.ts:354](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L354)
+Defined in: [types/responses.ts:460](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L460)
Protobuf google.type.Date
@@ -4950,25 +5303,25 @@ Protobuf google.type.Date
> **day**: `number`
-Defined in: [ai/lib/types/responses.ts:357](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L357)
+Defined in: [types/responses.ts:463](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L463)
##### month
> **month**: `number`
-Defined in: [ai/lib/types/responses.ts:356](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L356)
+Defined in: [types/responses.ts:462](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L462)
##### year
> **year**: `number`
-Defined in: [ai/lib/types/responses.ts:355](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L355)
+Defined in: [types/responses.ts:461](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L461)
***
### EnhancedGenerateContentResponse
-Defined in: [ai/lib/types/responses.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L55)
+Defined in: [types/responses.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L55)
Response object wrapped with helper methods.
@@ -4980,36 +5333,36 @@ Response object wrapped with helper methods.
##### candidates?
-> `optional` **candidates**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
+> `optional` **candidates?**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
-Defined in: [ai/lib/types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
+Defined in: [types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
###### Inherited from
[`GenerateContentResponse`](#generatecontentresponse).[`candidates`](#candidates-1)
-##### functionCalls()
+##### functionCalls
-> **functionCalls**: () => [`FunctionCall`](#functioncall-1)[] \| `undefined`
+> **functionCalls**: () => [`FunctionCall`](#functioncall-3)[] \| `undefined`
-Defined in: [ai/lib/types/responses.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L76)
+Defined in: [types/responses.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L76)
-Aggregates and returns every [FunctionCall](#functioncall-1) from the first candidate of
+Aggregates and returns every [FunctionCall](#functioncall-3) from the first candidate of
[GenerateContentResponse](#generatecontentresponse).
###### Returns
-[`FunctionCall`](#functioncall-1)[] \| `undefined`
+[`FunctionCall`](#functioncall-3)[] \| `undefined`
###### Throws
If the prompt or candidate was blocked.
-##### inlineDataParts()
+##### inlineDataParts
> **inlineDataParts**: () => [`InlineDataPart`](#inlinedatapart)[] \| `undefined`
-Defined in: [ai/lib/types/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L69)
+Defined in: [types/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L69)
Aggregates and returns all [InlineDataPart](#inlinedatapart)s from the [GenerateContentResponse](#generatecontentresponse)'s
first candidate.
@@ -5026,19 +5379,19 @@ If the prompt or candidate was blocked.
##### promptFeedback?
-> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+> `optional` **promptFeedback?**: [`PromptFeedback`](#promptfeedback-3)
-Defined in: [ai/lib/types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
+Defined in: [types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
###### Inherited from
[`GenerateContentResponse`](#generatecontentresponse).[`promptFeedback`](#promptfeedback-1)
-##### text()
+##### text
> **text**: () => `string`
-Defined in: [ai/lib/types/responses.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L60)
+Defined in: [types/responses.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L60)
Returns the text string from the response, if available.
Throws if the prompt or candidate was blocked.
@@ -5047,11 +5400,11 @@ Throws if the prompt or candidate was blocked.
`string`
-##### thoughtSummary()
+##### thoughtSummary
> **thoughtSummary**: () => `string` \| `undefined`
-Defined in: [ai/lib/types/responses.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L91)
+Defined in: [types/responses.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L91)
Aggregates and returns every [TextPart](#textpart) with their `thought` property set
to `true` from the first candidate of [GenerateContentResponse](#generatecontentresponse).
@@ -5075,9 +5428,9 @@ set to `true`.
##### usageMetadata?
-> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+> `optional` **usageMetadata?**: [`UsageMetadata`](#usagemetadata-3)
-Defined in: [ai/lib/types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
+Defined in: [types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
###### Inherited from
@@ -5087,13 +5440,13 @@ Defined in: [ai/lib/types/responses.ts:104](https://github.com/invertase/react-n
### ErrorDetails
-Defined in: [ai/lib/types/error.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L25)
+Defined in: [types/error.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L25)
Details object that may be included in an error response.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
Any other relevant information about the error.
@@ -5101,39 +5454,155 @@ Any other relevant information about the error.
##### @type?
-> `optional` **@type**: `string`
+> `optional` **@type?**: `string`
-Defined in: [ai/lib/types/error.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L26)
+Defined in: [types/error.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L26)
##### domain?
-> `optional` **domain**: `string`
+> `optional` **domain?**: `string`
-Defined in: [ai/lib/types/error.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L32)
+Defined in: [types/error.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L32)
The domain where the error occurred.
##### metadata?
-> `optional` **metadata**: `Record`\<`string`, `unknown`\>
+> `optional` **metadata?**: `Record`\<`string`, `unknown`\>
-Defined in: [ai/lib/types/error.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L35)
+Defined in: [types/error.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L35)
Additional metadata about the error.
##### reason?
-> `optional` **reason**: `string`
+> `optional` **reason?**: `string`
-Defined in: [ai/lib/types/error.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L29)
+Defined in: [types/error.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/error.ts#L29)
The reason for the error.
***
+### ExecutableCode
+
+Defined in: [types/content.ts:263](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L263)
+
+**`Beta`**
+
+An interface for executable code returned by the model.
+
+#### Properties
+
+##### code?
+
+> `optional` **code?**: `string`
+
+Defined in: [types/content.ts:271](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L271)
+
+**`Beta`**
+
+The source code to be executed.
+
+##### language?
+
+> `optional` **language?**: `string`
+
+Defined in: [types/content.ts:267](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L267)
+
+**`Beta`**
+
+The programming language of the code.
+
+***
+
+### ExecutableCodePart
+
+Defined in: [types/content.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L223)
+
+**`Beta`**
+
+Represents the code that is executed by the model.
+
+#### Properties
+
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:235](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L235)
+
+**`Beta`**
+
+##### executableCode?
+
+> `optional` **executableCode?**: [`ExecutableCode`](#executablecode-1)
+
+Defined in: [types/content.ts:234](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L234)
+
+**`Beta`**
+
+##### fileData
+
+> **fileData**: `never`
+
+Defined in: [types/content.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L228)
+
+**`Beta`**
+
+##### functionCall?
+
+> `optional` **functionCall?**: `undefined`
+
+Defined in: [types/content.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L226)
+
+**`Beta`**
+
+##### functionResponse?
+
+> `optional` **functionResponse?**: `undefined`
+
+Defined in: [types/content.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L227)
+
+**`Beta`**
+
+##### inlineData?
+
+> `optional` **inlineData?**: `undefined`
+
+Defined in: [types/content.ts:225](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L225)
+
+**`Beta`**
+
+##### text?
+
+> `optional` **text?**: `undefined`
+
+Defined in: [types/content.ts:224](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L224)
+
+**`Beta`**
+
+##### thought?
+
+> `optional` **thought?**: `undefined`
+
+Defined in: [types/content.ts:229](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L229)
+
+**`Beta`**
+
+##### thoughtSignature?
+
+> `optional` **thoughtSignature?**: `undefined`
+
+Defined in: [types/content.ts:233](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L233)
+
+**`Internal`**
+
+***
+
### FileData
-Defined in: [ai/lib/types/content.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L201)
+Defined in: [types/content.ts:213](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L213)
Data pointing to a file uploaded on Google Cloud Storage.
@@ -5143,65 +5612,77 @@ Data pointing to a file uploaded on Google Cloud Storage.
> **fileUri**: `string`
-Defined in: [ai/lib/types/content.ts:203](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L203)
+Defined in: [types/content.ts:215](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L215)
##### mimeType
> **mimeType**: `string`
-Defined in: [ai/lib/types/content.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L202)
+Defined in: [types/content.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L214)
***
### FileDataPart
-Defined in: [ai/lib/types/content.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L130)
+Defined in: [types/content.ts:140](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L140)
-Content part interface if the part represents [FileData](#filedata)
+Content part interface if the part represents [FileData](#filedata-2)
#### Properties
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:152](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L152)
+
+##### executableCode?
+
+> `optional` **executableCode?**: `undefined`
+
+Defined in: [types/content.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L151)
+
##### fileData
-> **fileData**: [`FileData`](#filedata)
+> **fileData**: [`FileData`](#filedata-2)
-Defined in: [ai/lib/types/content.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L135)
+Defined in: [types/content.ts:145](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L145)
##### functionCall?
-> `optional` **functionCall**: `undefined`
+> `optional` **functionCall?**: `undefined`
-Defined in: [ai/lib/types/content.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L133)
+Defined in: [types/content.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L143)
##### functionResponse?
-> `optional` **functionResponse**: `undefined`
+> `optional` **functionResponse?**: `undefined`
-Defined in: [ai/lib/types/content.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L134)
+Defined in: [types/content.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L144)
##### inlineData?
-> `optional` **inlineData**: `undefined`
+> `optional` **inlineData?**: `undefined`
-Defined in: [ai/lib/types/content.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L132)
+Defined in: [types/content.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L142)
##### text?
-> `optional` **text**: `undefined`
+> `optional` **text?**: `undefined`
-Defined in: [ai/lib/types/content.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L131)
+Defined in: [types/content.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L141)
##### thought?
-> `optional` **thought**: `boolean`
+> `optional` **thought?**: `boolean`
-Defined in: [ai/lib/types/content.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L136)
+Defined in: [types/content.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L146)
##### thoughtSignature?
-> `optional` **thoughtSignature**: `undefined`
+> `optional` **thoughtSignature?**: `undefined`
-Defined in: [ai/lib/types/content.ts:140](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L140)
+Defined in: [types/content.ts:150](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L150)
**`Internal`**
@@ -5209,9 +5690,9 @@ Defined in: [ai/lib/types/content.ts:140](https://github.com/invertase/react-nat
### FunctionCall
-Defined in: [ai/lib/types/content.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L149)
+Defined in: [types/content.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L161)
-A predicted [FunctionCall](#functioncall-1) returned from the model
+A predicted [FunctionCall](#functioncall-3) returned from the model
that contains a string representing the [FunctionDeclaration.name](#name-1)
and a structured JSON object containing the parameters and their values.
@@ -5221,15 +5702,15 @@ and a structured JSON object containing the parameters and their values.
> **args**: `object`
-Defined in: [ai/lib/types/content.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L160)
+Defined in: [types/content.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L172)
##### id?
-> `optional` **id**: `string`
+> `optional` **id?**: `string`
-Defined in: [ai/lib/types/content.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L158)
+Defined in: [types/content.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L170)
-The id of the function call. This must be sent back in the associated [FunctionResponse](#functionresponse-2).
+The id of the function call. This must be sent back in the associated [FunctionResponse](#functionresponse-4).
###### Remarks
@@ -5241,73 +5722,85 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
> **name**: `string`
-Defined in: [ai/lib/types/content.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L159)
+Defined in: [types/content.ts:171](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L171)
***
### FunctionCallingConfig
-Defined in: [ai/lib/types/requests.ts:350](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L350)
+Defined in: [types/requests.ts:383](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L383)
#### Properties
##### allowedFunctionNames?
-> `optional` **allowedFunctionNames**: `string`[]
+> `optional` **allowedFunctionNames?**: `string`[]
-Defined in: [ai/lib/types/requests.ts:352](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L352)
+Defined in: [types/requests.ts:385](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L385)
##### mode?
-> `optional` **mode**: [`FunctionCallingMode`](#functioncallingmode)
+> `optional` **mode?**: [`FunctionCallingMode`](#functioncallingmode)
-Defined in: [ai/lib/types/requests.ts:351](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L351)
+Defined in: [types/requests.ts:384](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L384)
***
### FunctionCallPart
-Defined in: [ai/lib/types/content.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L98)
+Defined in: [types/content.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L104)
-Content part interface if the part represents a [FunctionCall](#functioncall-1).
+Content part interface if the part represents a [FunctionCall](#functioncall-3).
#### Properties
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L115)
+
+##### executableCode?
+
+> `optional` **executableCode?**: `undefined`
+
+Defined in: [types/content.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L114)
+
##### functionCall
-> **functionCall**: [`FunctionCall`](#functioncall-1)
+> **functionCall**: [`FunctionCall`](#functioncall-3)
-Defined in: [ai/lib/types/content.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L101)
+Defined in: [types/content.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L107)
##### functionResponse?
-> `optional` **functionResponse**: `undefined`
+> `optional` **functionResponse?**: `undefined`
-Defined in: [ai/lib/types/content.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L102)
+Defined in: [types/content.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L108)
##### inlineData?
-> `optional` **inlineData**: `undefined`
+> `optional` **inlineData?**: `undefined`
-Defined in: [ai/lib/types/content.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L100)
+Defined in: [types/content.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L106)
##### text?
-> `optional` **text**: `undefined`
+> `optional` **text?**: `undefined`
-Defined in: [ai/lib/types/content.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L99)
+Defined in: [types/content.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L105)
##### thought?
-> `optional` **thought**: `boolean`
+> `optional` **thought?**: `boolean`
-Defined in: [ai/lib/types/content.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L103)
+Defined in: [types/content.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L109)
##### thoughtSignature?
-> `optional` **thoughtSignature**: `undefined`
+> `optional` **thoughtSignature?**: `undefined`
-Defined in: [ai/lib/types/content.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L107)
+Defined in: [types/content.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L113)
**`Internal`**
@@ -5315,7 +5808,7 @@ Defined in: [ai/lib/types/content.ts:107](https://github.com/invertase/react-nat
### FunctionDeclaration
-Defined in: [ai/lib/types/requests.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L264)
+Defined in: [types/requests.ts:264](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L264)
Structured representation of a function declaration as defined by the
[OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3).
@@ -5330,7 +5823,7 @@ as a Tool by the model and executed by the client.
> **description**: `string`
-Defined in: [ai/lib/types/requests.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L275)
+Defined in: [types/requests.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L275)
Description and purpose of the function. Model uses it to decide
how and whether to call the function.
@@ -5339,7 +5832,7 @@ how and whether to call the function.
> **name**: `string`
-Defined in: [ai/lib/types/requests.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L270)
+Defined in: [types/requests.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L270)
The name of the function to call. Must start with a letter or an
underscore. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with
@@ -5347,9 +5840,9 @@ a max length of 64.
##### parameters?
-> `optional` **parameters**: [`ObjectSchemaInterface`](#objectschemainterface)
+> `optional` **parameters?**: [`ObjectSchemaInterface`](#objectschemainterface)
-Defined in: [ai/lib/types/requests.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L281)
+Defined in: [types/requests.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L281)
Optional. Describes the parameters to this function in JSON Schema Object
format. Reflects the Open API 3.03 Parameter Object. Parameter names are
@@ -5359,7 +5852,7 @@ case-sensitive. For a function with no parameters, this can be left unset.
### FunctionDeclarationsTool
-Defined in: [ai/lib/types/requests.ts:325](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L325)
+Defined in: [types/requests.ts:358](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L358)
A `FunctionDeclarationsTool` is a piece of code that enables the system to
interact with external systems to perform an action, or set of actions,
@@ -5369,15 +5862,15 @@ outside of knowledge and scope of the model.
##### functionDeclarations?
-> `optional` **functionDeclarations**: [`FunctionDeclaration`](#functiondeclaration)[]
+> `optional` **functionDeclarations?**: [`FunctionDeclaration`](#functiondeclaration)[]
-Defined in: [ai/lib/types/requests.ts:336](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L336)
+Defined in: [types/requests.ts:369](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L369)
Optional. One or more function declarations
to be passed to the model along with the current user query. Model may
decide to call a subset of these functions by populating
-[FunctionCall](#functioncall-1) in the response. User should
-provide a [FunctionResponse](#functionresponse-2) for each
+[FunctionCall](#functioncall-3) in the response. User should
+provide a [FunctionResponse](#functionresponse-4) for each
function call in the next turn. Based on the function responses, the model will
generate the final response back to the user. Maximum 64 function
declarations can be provided.
@@ -5386,24 +5879,24 @@ declarations can be provided.
### FunctionResponse
-Defined in: [ai/lib/types/content.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L172)
+Defined in: [types/content.ts:184](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L184)
-The result output from a [FunctionCall](#functioncall-1) that contains a string
+The result output from a [FunctionCall](#functioncall-3) that contains a string
representing the [FunctionDeclaration.name](#name-1)
and a structured JSON object containing any output
from the function is used as context to the model.
-This should contain the result of a [FunctionCall](#functioncall-1)
+This should contain the result of a [FunctionCall](#functioncall-3)
made based on model prediction.
#### Properties
##### id?
-> `optional` **id**: `string`
+> `optional` **id?**: `string`
-Defined in: [ai/lib/types/content.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L180)
+Defined in: [types/content.ts:192](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L192)
-The id of the [FunctionCall](#functioncall-1).
+The id of the [FunctionCall](#functioncall-3).
###### Remarks
@@ -5415,59 +5908,71 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
> **name**: `string`
-Defined in: [ai/lib/types/content.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L181)
+Defined in: [types/content.ts:193](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L193)
##### response
> **response**: `object`
-Defined in: [ai/lib/types/content.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L182)
+Defined in: [types/content.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L194)
***
### FunctionResponsePart
-Defined in: [ai/lib/types/content.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L114)
+Defined in: [types/content.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L122)
-Content part interface if the part represents [FunctionResponse](#functionresponse-2).
+Content part interface if the part represents [FunctionResponse](#functionresponse-4).
#### Properties
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L133)
+
+##### executableCode?
+
+> `optional` **executableCode?**: `undefined`
+
+Defined in: [types/content.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L132)
+
##### functionCall?
-> `optional` **functionCall**: `undefined`
+> `optional` **functionCall?**: `undefined`
-Defined in: [ai/lib/types/content.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L117)
+Defined in: [types/content.ts:125](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L125)
##### functionResponse
-> **functionResponse**: [`FunctionResponse`](#functionresponse-2)
+> **functionResponse**: [`FunctionResponse`](#functionresponse-4)
-Defined in: [ai/lib/types/content.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L118)
+Defined in: [types/content.ts:126](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L126)
##### inlineData?
-> `optional` **inlineData**: `undefined`
+> `optional` **inlineData?**: `undefined`
-Defined in: [ai/lib/types/content.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L116)
+Defined in: [types/content.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L124)
##### text?
-> `optional` **text**: `undefined`
+> `optional` **text?**: `undefined`
-Defined in: [ai/lib/types/content.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L115)
+Defined in: [types/content.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L123)
##### thought?
-> `optional` **thought**: `boolean`
+> `optional` **thought?**: `boolean`
-Defined in: [ai/lib/types/content.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L119)
+Defined in: [types/content.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L127)
##### thoughtSignature?
-> `optional` **thoughtSignature**: `undefined`
+> `optional` **thoughtSignature?**: `undefined`
-Defined in: [ai/lib/types/content.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L123)
+Defined in: [types/content.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L131)
**`Internal`**
@@ -5475,7 +5980,7 @@ Defined in: [ai/lib/types/content.ts:123](https://github.com/invertase/react-nat
### GenerateContentCandidate
-Defined in: [ai/lib/types/responses.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L156)
+Defined in: [types/responses.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L156)
A candidate returned as part of a [GenerateContentResponse](#generatecontentresponse).
@@ -5483,51 +5988,57 @@ A candidate returned as part of a [GenerateContentResponse](#generatecontentresp
##### citationMetadata?
-> `optional` **citationMetadata**: [`CitationMetadata`](#citationmetadata)
+> `optional` **citationMetadata?**: [`CitationMetadata`](#citationmetadata)
-Defined in: [ai/lib/types/responses.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L162)
+Defined in: [types/responses.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L162)
##### content
> **content**: [`Content`](#content)
-Defined in: [ai/lib/types/responses.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L158)
+Defined in: [types/responses.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L158)
##### finishMessage?
-> `optional` **finishMessage**: `string`
+> `optional` **finishMessage?**: `string`
-Defined in: [ai/lib/types/responses.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L160)
+Defined in: [types/responses.ts:160](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L160)
##### finishReason?
-> `optional` **finishReason**: [`FinishReason`](#finishreason)
+> `optional` **finishReason?**: [`FinishReason`](#finishreason)
-Defined in: [ai/lib/types/responses.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L159)
+Defined in: [types/responses.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L159)
##### groundingMetadata?
-> `optional` **groundingMetadata**: [`GroundingMetadata`](#groundingmetadata-2)
+> `optional` **groundingMetadata?**: [`GroundingMetadata`](#groundingmetadata-2)
-Defined in: [ai/lib/types/responses.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L163)
+Defined in: [types/responses.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L163)
##### index
> **index**: `number`
-Defined in: [ai/lib/types/responses.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L157)
+Defined in: [types/responses.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L157)
##### safetyRatings?
-> `optional` **safetyRatings**: [`SafetyRating`](#safetyrating)[]
+> `optional` **safetyRatings?**: [`SafetyRating`](#safetyrating)[]
+
+Defined in: [types/responses.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L161)
+
+##### urlContextMetadata?
+
+> `optional` **urlContextMetadata?**: [`URLContextMetadata`](#urlcontextmetadata-2)
-Defined in: [ai/lib/types/responses.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L161)
+Defined in: [types/responses.ts:164](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L164)
***
### GenerateContentRequest
-Defined in: [ai/lib/types/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L65)
+Defined in: [types/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L65)
Request sent through [GenerativeModel.generateContent](#generatecontent)
@@ -5541,13 +6052,13 @@ Request sent through [GenerativeModel.generateContent](#generatecontent)
> **contents**: [`Content`](#content)[]
-Defined in: [ai/lib/types/requests.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L66)
+Defined in: [types/requests.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L66)
##### generationConfig?
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
-Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+Defined in: [types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
###### Inherited from
@@ -5555,9 +6066,9 @@ Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-nat
##### safetySettings?
-> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+> `optional` **safetySettings?**: [`SafetySetting`](#safetysetting)[]
-Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+Defined in: [types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
###### Inherited from
@@ -5565,27 +6076,27 @@ Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-nat
##### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
-Defined in: [ai/lib/types/requests.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L69)
+Defined in: [types/requests.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L69)
##### toolConfig?
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
-Defined in: [ai/lib/types/requests.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L68)
+Defined in: [types/requests.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L68)
##### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
-Defined in: [ai/lib/types/requests.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L67)
+Defined in: [types/requests.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L67)
***
### GenerateContentResponse
-Defined in: [ai/lib/types/responses.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L101)
+Defined in: [types/responses.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L101)
Individual response from [GenerativeModel.generateContent](#generatecontent) and
[GenerativeModel.generateContentStream](#generatecontentstream).
@@ -5600,27 +6111,27 @@ the stream is done.
##### candidates?
-> `optional` **candidates**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
+> `optional` **candidates?**: [`GenerateContentCandidate`](#generatecontentcandidate)[]
-Defined in: [ai/lib/types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
+Defined in: [types/responses.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L102)
##### promptFeedback?
-> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+> `optional` **promptFeedback?**: [`PromptFeedback`](#promptfeedback-3)
-Defined in: [ai/lib/types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
+Defined in: [types/responses.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L103)
##### usageMetadata?
-> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+> `optional` **usageMetadata?**: [`UsageMetadata`](#usagemetadata-3)
-Defined in: [ai/lib/types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
+Defined in: [types/responses.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L104)
***
### GenerateContentResult
-Defined in: [ai/lib/types/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L33)
+Defined in: [types/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L33)
Result object returned from [GenerativeModel.generateContent](#generatecontent) call.
@@ -5630,13 +6141,13 @@ Result object returned from [GenerativeModel.generateContent](#generatecontent)
> **response**: [`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)
-Defined in: [ai/lib/types/responses.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L34)
+Defined in: [types/responses.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L34)
***
### GenerateContentStreamResult
-Defined in: [ai/lib/types/responses.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L45)
+Defined in: [types/responses.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L45)
Result object returned from [GenerativeModel.generateContentStream](#generatecontentstream) call.
Iterate over `stream` to get chunks as they come in and/or
@@ -5649,19 +6160,19 @@ the stream is done.
> **response**: `Promise`\<[`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)\>
-Defined in: [ai/lib/types/responses.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L47)
+Defined in: [types/responses.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L47)
##### stream
> **stream**: `AsyncGenerator`\<[`EnhancedGenerateContentResponse`](#enhancedgeneratecontentresponse)\>
-Defined in: [ai/lib/types/responses.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L46)
+Defined in: [types/responses.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L46)
***
### GenerationConfig
-Defined in: [ai/lib/types/requests.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L93)
+Defined in: [types/requests.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L93)
Config options for content-related requests
@@ -5669,33 +6180,33 @@ Config options for content-related requests
##### candidateCount?
-> `optional` **candidateCount**: `number`
+> `optional` **candidateCount?**: `number`
-Defined in: [ai/lib/types/requests.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L94)
+Defined in: [types/requests.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L94)
##### frequencyPenalty?
-> `optional` **frequencyPenalty**: `number`
+> `optional` **frequencyPenalty?**: `number`
-Defined in: [ai/lib/types/requests.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L101)
+Defined in: [types/requests.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L101)
##### maxOutputTokens?
-> `optional` **maxOutputTokens**: `number`
+> `optional` **maxOutputTokens?**: `number`
-Defined in: [ai/lib/types/requests.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L96)
+Defined in: [types/requests.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L96)
##### presencePenalty?
-> `optional` **presencePenalty**: `number`
+> `optional` **presencePenalty?**: `number`
-Defined in: [ai/lib/types/requests.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L100)
+Defined in: [types/requests.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L100)
##### responseMimeType?
-> `optional` **responseMimeType**: `string`
+> `optional` **responseMimeType?**: `string`
-Defined in: [ai/lib/types/requests.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L108)
+Defined in: [types/requests.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L108)
Output response MIME type of the generated candidate text.
Supported MIME types are `text/plain` (default, text output),
@@ -5704,9 +6215,9 @@ Supported MIME types are `text/plain` (default, text output),
##### responseModalities?
-> `optional` **responseModalities**: [`ResponseModality`](#responsemodality)[]
+> `optional` **responseModalities?**: [`ResponseModality`](#responsemodality)[]
-Defined in: [ai/lib/types/requests.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L127)
+Defined in: [types/requests.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L127)
**`Beta`**
@@ -5719,9 +6230,9 @@ Generation modalities to be returned in generation responses.
##### responseSchema?
-> `optional` **responseSchema**: [`SchemaRequest`](#schemarequest) \| [`TypedSchema`](#typedschema)
+> `optional` **responseSchema?**: [`TypedSchema`](#typedschema) \| [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/types/requests.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L117)
+Defined in: [types/requests.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L117)
Output response schema of the generated candidate text. This
value can be a class generated with a [Schema](#abstract-schema) static method
@@ -5732,41 +6243,41 @@ this is limited to `application/json` and `text/x.enum`.
##### stopSequences?
-> `optional` **stopSequences**: `string`[]
+> `optional` **stopSequences?**: `string`[]
-Defined in: [ai/lib/types/requests.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L95)
+Defined in: [types/requests.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L95)
##### temperature?
-> `optional` **temperature**: `number`
+> `optional` **temperature?**: `number`
-Defined in: [ai/lib/types/requests.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L97)
+Defined in: [types/requests.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L97)
##### thinkingConfig?
-> `optional` **thinkingConfig**: [`ThinkingConfig`](#thinkingconfig-1)
+> `optional` **thinkingConfig?**: [`ThinkingConfig`](#thinkingconfig-1)
-Defined in: [ai/lib/types/requests.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L131)
+Defined in: [types/requests.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L131)
Configuration for "thinking" behavior of compatible Gemini models.
##### topK?
-> `optional` **topK**: `number`
+> `optional` **topK?**: `number`
-Defined in: [ai/lib/types/requests.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L99)
+Defined in: [types/requests.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L99)
##### topP?
-> `optional` **topP**: `number`
+> `optional` **topP?**: `number`
-Defined in: [ai/lib/types/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L98)
+Defined in: [types/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L98)
***
### GenerativeContentBlob
-Defined in: [ai/lib/types/content.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L189)
+Defined in: [types/content.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L201)
Interface for sending an image.
@@ -5776,7 +6287,7 @@ Interface for sending an image.
> **data**: `string`
-Defined in: [ai/lib/types/content.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L194)
+Defined in: [types/content.ts:206](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L206)
Image as a base64 string.
@@ -5784,13 +6295,13 @@ Image as a base64 string.
> **mimeType**: `string`
-Defined in: [ai/lib/types/content.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L190)
+Defined in: [types/content.ts:202](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L202)
***
### GoogleAICitationMetadata
-Defined in: [ai/lib/types/googleai.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L68)
+Defined in: [types/googleai.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L70)
**`Internal`**
@@ -5800,13 +6311,13 @@ Defined in: [ai/lib/types/googleai.ts:68](https://github.com/invertase/react-nat
> **citationSources**: [`Citation`](#citation)[]
-Defined in: [ai/lib/types/googleai.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L69)
+Defined in: [types/googleai.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L71)
***
### GoogleAICountTokensRequest
-Defined in: [ai/lib/types/googleai.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L33)
+Defined in: [types/googleai.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L34)
**`Internal`**
@@ -5816,7 +6327,7 @@ Defined in: [ai/lib/types/googleai.ts:33](https://github.com/invertase/react-nat
> **generateContentRequest**: `object`
-Defined in: [ai/lib/types/googleai.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L34)
+Defined in: [types/googleai.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L35)
###### contents
@@ -5824,7 +6335,7 @@ Defined in: [ai/lib/types/googleai.ts:34](https://github.com/invertase/react-nat
###### generationConfig?
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
###### model
@@ -5832,17 +6343,17 @@ Defined in: [ai/lib/types/googleai.ts:34](https://github.com/invertase/react-nat
###### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
###### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
***
### GoogleAIGenerateContentCandidate
-Defined in: [ai/lib/types/googleai.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L55)
+Defined in: [types/googleai.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L56)
**`Internal`**
@@ -5850,51 +6361,57 @@ Defined in: [ai/lib/types/googleai.ts:55](https://github.com/invertase/react-nat
##### citationMetadata?
-> `optional` **citationMetadata**: [`GoogleAICitationMetadata`](#googleaicitationmetadata)
+> `optional` **citationMetadata?**: [`GoogleAICitationMetadata`](#googleaicitationmetadata)
-Defined in: [ai/lib/types/googleai.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L61)
+Defined in: [types/googleai.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L62)
##### content
> **content**: [`Content`](#content)
-Defined in: [ai/lib/types/googleai.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L57)
+Defined in: [types/googleai.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L58)
##### finishMessage?
-> `optional` **finishMessage**: `string`
+> `optional` **finishMessage?**: `string`
-Defined in: [ai/lib/types/googleai.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L59)
+Defined in: [types/googleai.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L60)
##### finishReason?
-> `optional` **finishReason**: [`FinishReason`](#finishreason)
+> `optional` **finishReason?**: [`FinishReason`](#finishreason)
-Defined in: [ai/lib/types/googleai.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L58)
+Defined in: [types/googleai.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L59)
##### groundingMetadata?
-> `optional` **groundingMetadata**: [`GroundingMetadata`](#groundingmetadata-2)
+> `optional` **groundingMetadata?**: [`GroundingMetadata`](#groundingmetadata-2)
-Defined in: [ai/lib/types/googleai.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L62)
+Defined in: [types/googleai.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L63)
##### index
> **index**: `number`
-Defined in: [ai/lib/types/googleai.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L56)
+Defined in: [types/googleai.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L57)
##### safetyRatings?
-> `optional` **safetyRatings**: [`SafetyRating`](#safetyrating)[]
+> `optional` **safetyRatings?**: [`SafetyRating`](#safetyrating)[]
-Defined in: [ai/lib/types/googleai.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L60)
+Defined in: [types/googleai.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L61)
+
+##### urlContextMetadata?
+
+> `optional` **urlContextMetadata?**: [`URLContextMetadata`](#urlcontextmetadata-2)
+
+Defined in: [types/googleai.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L64)
***
### GoogleAIGenerateContentResponse
-Defined in: [ai/lib/types/googleai.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L46)
+Defined in: [types/googleai.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L47)
**`Internal`**
@@ -5902,27 +6419,27 @@ Defined in: [ai/lib/types/googleai.ts:46](https://github.com/invertase/react-nat
##### candidates?
-> `optional` **candidates**: [`GoogleAIGenerateContentCandidate`](#googleaigeneratecontentcandidate)[]
+> `optional` **candidates?**: [`GoogleAIGenerateContentCandidate`](#googleaigeneratecontentcandidate)[]
-Defined in: [ai/lib/types/googleai.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L47)
+Defined in: [types/googleai.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L48)
##### promptFeedback?
-> `optional` **promptFeedback**: [`PromptFeedback`](#promptfeedback-3)
+> `optional` **promptFeedback?**: [`PromptFeedback`](#promptfeedback-3)
-Defined in: [ai/lib/types/googleai.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L48)
+Defined in: [types/googleai.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L49)
##### usageMetadata?
-> `optional` **usageMetadata**: [`UsageMetadata`](#usagemetadata-3)
+> `optional` **usageMetadata?**: [`UsageMetadata`](#usagemetadata-3)
-Defined in: [ai/lib/types/googleai.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L49)
+Defined in: [types/googleai.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/googleai.ts#L50)
***
### GoogleSearch
-Defined in: [ai/lib/types/requests.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L317)
+Defined in: [types/requests.ts:316](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L316)
Specifies the Google Search configuration.
@@ -5934,7 +6451,7 @@ Currently, this is an empty object, but it's reserved for future configuration o
### GoogleSearchTool
-Defined in: [ai/lib/types/requests.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L295)
+Defined in: [types/requests.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L295)
A tool that allows a Gemini model to connect to Google Search to access and incorporate
up-to-date information from the web into its responses.
@@ -5950,7 +6467,7 @@ section within the Service Specific Terms).
> **googleSearch**: [`GoogleSearch`](#googlesearch)
-Defined in: [ai/lib/types/requests.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L306)
+Defined in: [types/requests.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L306)
Specifies the Google Search configuration.
Currently, this is an empty object, but it's reserved for future configuration options.
@@ -5965,7 +6482,7 @@ section within the Service Specific Terms).
### ~~GroundingAttribution~~
-Defined in: [ai/lib/types/responses.ts:296](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L296)
+Defined in: [types/responses.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L402)
#### Deprecated
@@ -5973,33 +6490,33 @@ Defined in: [ai/lib/types/responses.ts:296](https://github.com/invertase/react-n
##### ~~confidenceScore?~~
-> `optional` **confidenceScore**: `number`
+> `optional` **confidenceScore?**: `number`
-Defined in: [ai/lib/types/responses.ts:298](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L298)
+Defined in: [types/responses.ts:404](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L404)
##### ~~retrievedContext?~~
-> `optional` **retrievedContext**: [`RetrievedContextAttribution`](#retrievedcontextattribution)
+> `optional` **retrievedContext?**: [`RetrievedContextAttribution`](#retrievedcontextattribution)
-Defined in: [ai/lib/types/responses.ts:300](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L300)
+Defined in: [types/responses.ts:406](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L406)
##### ~~segment~~
> **segment**: [`Segment`](#segment-2)
-Defined in: [ai/lib/types/responses.ts:297](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L297)
+Defined in: [types/responses.ts:403](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L403)
##### ~~web?~~
-> `optional` **web**: [`WebAttribution`](#webattribution)
+> `optional` **web?**: [`WebAttribution`](#webattribution)
-Defined in: [ai/lib/types/responses.ts:299](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L299)
+Defined in: [types/responses.ts:405](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L405)
***
### GroundingChunk
-Defined in: [ai/lib/types/responses.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L237)
+Defined in: [types/responses.ts:343](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L343)
Represents a chunk of retrieved data that supports a claim in the model's response. This is part
of the grounding information provided when grounding is enabled.
@@ -6008,9 +6525,9 @@ of the grounding information provided when grounding is enabled.
##### web?
-> `optional` **web**: [`WebGroundingChunk`](#webgroundingchunk)
+> `optional` **web?**: [`WebGroundingChunk`](#webgroundingchunk)
-Defined in: [ai/lib/types/responses.ts:241](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L241)
+Defined in: [types/responses.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L347)
Contains details if the grounding chunk is from a web source.
@@ -6018,7 +6535,7 @@ Contains details if the grounding chunk is from a web source.
### GroundingMetadata
-Defined in: [ai/lib/types/responses.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L209)
+Defined in: [types/responses.ts:285](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L285)
Metadata returned when grounding is enabled.
@@ -6033,37 +6550,47 @@ section within the Service Specific Terms).
##### groundingChunks?
-> `optional` **groundingChunks**: [`GroundingChunk`](#groundingchunk)[]
+> `optional` **groundingChunks?**: [`GroundingChunk`](#groundingchunk)[]
-Defined in: [ai/lib/types/responses.ts:214](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L214)
+Defined in: [types/responses.ts:296](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L296)
A list of [GroundingChunk](#groundingchunk) objects. Each chunk represents a piece of retrieved content
(for example, from a web page). that the model used to ground its response.
##### groundingSupports?
-> `optional` **groundingSupports**: [`GroundingSupport`](#groundingsupport)[]
+> `optional` **groundingSupports?**: [`GroundingSupport`](#groundingsupport)[]
-Defined in: [ai/lib/types/responses.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L219)
+Defined in: [types/responses.ts:301](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L301)
A list of [GroundingSupport](#groundingsupport) objects. Each object details how specific segments of the
model's response are supported by the `groundingChunks`.
##### ~~retrievalQueries?~~
-> `optional` **retrievalQueries**: `string`[]
+> `optional` **retrievalQueries?**: `string`[]
-Defined in: [ai/lib/types/responses.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L228)
+Defined in: [types/responses.ts:310](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L310)
###### Deprecated
Use [GroundingSupport](#groundingsupport) instead.
+##### searchEntryPoint?
+
+> `optional` **searchEntryPoint?**: [`SearchEntrypoint`](#searchentrypoint-1)
+
+Defined in: [types/responses.ts:291](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L291)
+
+Google Search entry point for web searches. This contains an HTML/CSS snippet that must be
+embedded in an app to display a Google Search entry point for follow-up web searches related to
+a model's "Grounded Response".
+
##### webSearchQueries?
-> `optional` **webSearchQueries**: `string`[]
+> `optional` **webSearchQueries?**: `string`[]
-Defined in: [ai/lib/types/responses.ts:224](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L224)
+Defined in: [types/responses.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L306)
A list of web search queries that the model performed to gather the grounding information.
These can be used to allow users to explore the search results themselves.
@@ -6072,7 +6599,7 @@ These can be used to allow users to explore the search results themselves.
### GroundingSupport
-Defined in: [ai/lib/types/responses.ts:277](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L277)
+Defined in: [types/responses.ts:383](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L383)
Provides information about how a specific segment of the model's response is supported by the
retrieved grounding chunks.
@@ -6081,9 +6608,9 @@ retrieved grounding chunks.
##### groundingChunkIndices?
-> `optional` **groundingChunkIndices**: `number`[]
+> `optional` **groundingChunkIndices?**: `number`[]
-Defined in: [ai/lib/types/responses.ts:289](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L289)
+Defined in: [types/responses.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L395)
A list of indices that refer to specific [GroundingChunk](#groundingchunk) objects within the
[GroundingMetadata.groundingChunks](#groundingchunks) array. These referenced chunks
@@ -6093,9 +6620,9 @@ and `groundingChunks[4]` are the retrieved content supporting this part of the r
##### segment?
-> `optional` **segment**: [`Segment`](#segment-2)
+> `optional` **segment?**: [`Segment`](#segment-2)
-Defined in: [ai/lib/types/responses.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L281)
+Defined in: [types/responses.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L387)
Specifies the segment of the model's response content that this grounding support pertains to.
@@ -6103,7 +6630,7 @@ Specifies the segment of the model's response content that this grounding suppor
### ImagenGCSImage
-Defined in: [ai/lib/types/imagen/responses.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L42)
+Defined in: [types/imagen/responses.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L42)
**`Beta`**
@@ -6117,7 +6644,7 @@ This feature is not available yet.
> **gcsURI**: `string`
-Defined in: [ai/lib/types/imagen/responses.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L54)
+Defined in: [types/imagen/responses.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L54)
**`Beta`**
@@ -6133,7 +6660,7 @@ The URI of the file stored in a Cloud Storage for Firebase bucket.
> **mimeType**: `string`
-Defined in: [ai/lib/types/imagen/responses.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L48)
+Defined in: [types/imagen/responses.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L48)
**`Beta`**
@@ -6145,7 +6672,7 @@ To request a different format, set the `imageFormat` property in your [ImagenGen
### ImagenGenerationConfig
-Defined in: [ai/lib/types/imagen/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L54)
+Defined in: [types/imagen/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L54)
**`Beta`**
@@ -6158,9 +6685,9 @@ more details.
##### addWatermark?
-> `optional` **addWatermark**: `boolean`
+> `optional` **addWatermark?**: `boolean`
-Defined in: [ai/lib/types/imagen/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L98)
+Defined in: [types/imagen/requests.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L98)
**`Beta`**
@@ -6177,9 +6704,9 @@ and cannot be turned off.
##### aspectRatio?
-> `optional` **aspectRatio**: [`ImagenAspectRatio`](#imagenaspectratio)
+> `optional` **aspectRatio?**: [`ImagenAspectRatio`](#imagenaspectratio)
-Defined in: [ai/lib/types/imagen/requests.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L79)
+Defined in: [types/imagen/requests.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L79)
**`Beta`**
@@ -6189,9 +6716,9 @@ for more details.
##### imageFormat?
-> `optional` **imageFormat**: [`ImagenImageFormat`](#imagenimageformat)
+> `optional` **imageFormat?**: [`ImagenImageFormat`](#imagenimageformat)
-Defined in: [ai/lib/types/imagen/requests.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L85)
+Defined in: [types/imagen/requests.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L85)
**`Beta`**
@@ -6201,9 +6728,9 @@ See [ImagenImageFormat](#imagenimageformat) for more details.
##### negativePrompt?
-> `optional` **negativePrompt**: `string`
+> `optional` **negativePrompt?**: `string`
-Defined in: [ai/lib/types/imagen/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L65)
+Defined in: [types/imagen/requests.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L65)
**`Beta`**
@@ -6218,9 +6745,9 @@ greater than `imagen-3.0-generate-002`.
##### numberOfImages?
-> `optional` **numberOfImages**: `number`
+> `optional` **numberOfImages?**: `number`
-Defined in: [ai/lib/types/imagen/requests.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L73)
+Defined in: [types/imagen/requests.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L73)
**`Beta`**
@@ -6234,7 +6761,7 @@ documentation for more details.
### ImagenGenerationResponse
-Defined in: [ai/lib/types/imagen/responses.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L62)
+Defined in: [types/imagen/responses.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L62)
**`Beta`**
@@ -6250,9 +6777,9 @@ The response from a request to generate images with Imagen.
##### filteredReason?
-> `optional` **filteredReason**: `string`
+> `optional` **filteredReason?**: `string`
-Defined in: [ai/lib/types/imagen/responses.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L81)
+Defined in: [types/imagen/responses.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L81)
**`Beta`**
@@ -6270,7 +6797,7 @@ for more details.
> **images**: `T`[]
-Defined in: [ai/lib/types/imagen/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L69)
+Defined in: [types/imagen/responses.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L69)
**`Beta`**
@@ -6283,7 +6810,7 @@ filtered out; see `filteredReason`.
### ImagenInlineImage
-Defined in: [ai/lib/types/imagen/responses.ts:23](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L23)
+Defined in: [types/imagen/responses.ts:23](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L23)
**`Beta`**
@@ -6295,7 +6822,7 @@ An image generated by Imagen, represented as inline data.
> **bytesBase64Encoded**: `string`
-Defined in: [ai/lib/types/imagen/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L33)
+Defined in: [types/imagen/responses.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L33)
**`Beta`**
@@ -6305,7 +6832,7 @@ The base64-encoded image data.
> **mimeType**: `string`
-Defined in: [ai/lib/types/imagen/responses.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L29)
+Defined in: [types/imagen/responses.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/responses.ts#L29)
**`Beta`**
@@ -6317,7 +6844,7 @@ To request a different format, set the `imageFormat` property in your [ImagenGen
### ImagenModelParams
-Defined in: [ai/lib/types/imagen/requests.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L25)
+Defined in: [types/imagen/requests.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L25)
**`Beta`**
@@ -6327,9 +6854,9 @@ Parameters for configuring an [ImagenModel](#imagenmodel).
##### generationConfig?
-> `optional` **generationConfig**: [`ImagenGenerationConfig`](#imagengenerationconfig)
+> `optional` **generationConfig?**: [`ImagenGenerationConfig`](#imagengenerationconfig)
-Defined in: [ai/lib/types/imagen/requests.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L39)
+Defined in: [types/imagen/requests.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L39)
**`Beta`**
@@ -6339,7 +6866,7 @@ Configuration options for generating images with Imagen.
> **model**: `string`
-Defined in: [ai/lib/types/imagen/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L35)
+Defined in: [types/imagen/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L35)
**`Beta`**
@@ -6353,9 +6880,9 @@ for a full list of supported Imagen 3 models.
##### safetySettings?
-> `optional` **safetySettings**: [`ImagenSafetySettings`](#imagensafetysettings)
+> `optional` **safetySettings?**: [`ImagenSafetySettings`](#imagensafetysettings)
-Defined in: [ai/lib/types/imagen/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L43)
+Defined in: [types/imagen/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L43)
**`Beta`**
@@ -6365,7 +6892,7 @@ Safety settings for filtering potentially inappropriate content.
### ImagenSafetySettings
-Defined in: [ai/lib/types/imagen/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L200)
+Defined in: [types/imagen/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L200)
**`Beta`**
@@ -6378,9 +6905,9 @@ for more details.
##### personFilterLevel?
-> `optional` **personFilterLevel**: [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel)
+> `optional` **personFilterLevel?**: [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel)
-Defined in: [ai/lib/types/imagen/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L209)
+Defined in: [types/imagen/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L209)
**`Beta`**
@@ -6388,9 +6915,9 @@ A filter level controlling whether generation of images containing people or fac
##### safetyFilterLevel?
-> `optional` **safetyFilterLevel**: [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel)
+> `optional` **safetyFilterLevel?**: [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel)
-Defined in: [ai/lib/types/imagen/requests.ts:205](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L205)
+Defined in: [types/imagen/requests.ts:205](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L205)
**`Beta`**
@@ -6401,55 +6928,67 @@ images.
### InlineDataPart
-Defined in: [ai/lib/types/content.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L61)
+Defined in: [types/content.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L65)
Content part interface if the part represents an image.
#### Properties
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L80)
+
+##### executableCode?
+
+> `optional` **executableCode?**: `undefined`
+
+Defined in: [types/content.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L79)
+
##### functionCall?
-> `optional` **functionCall**: `undefined`
+> `optional` **functionCall?**: `undefined`
-Defined in: [ai/lib/types/content.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L64)
+Defined in: [types/content.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L68)
##### functionResponse?
-> `optional` **functionResponse**: `undefined`
+> `optional` **functionResponse?**: `undefined`
-Defined in: [ai/lib/types/content.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L65)
+Defined in: [types/content.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L69)
##### inlineData
> **inlineData**: [`GenerativeContentBlob`](#generativecontentblob)
-Defined in: [ai/lib/types/content.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L63)
+Defined in: [types/content.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L67)
##### text?
-> `optional` **text**: `undefined`
+> `optional` **text?**: `undefined`
-Defined in: [ai/lib/types/content.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L62)
+Defined in: [types/content.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L66)
##### thought?
-> `optional` **thought**: `boolean`
+> `optional` **thought?**: `boolean`
-Defined in: [ai/lib/types/content.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L70)
+Defined in: [types/content.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L74)
##### thoughtSignature?
-> `optional` **thoughtSignature**: `undefined`
+> `optional` **thoughtSignature?**: `undefined`
-Defined in: [ai/lib/types/content.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L74)
+Defined in: [types/content.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L78)
**`Internal`**
##### videoMetadata?
-> `optional` **videoMetadata**: [`VideoMetadata`](#videometadata-1)
+> `optional` **videoMetadata?**: [`VideoMetadata`](#videometadata-1)
-Defined in: [ai/lib/types/content.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L69)
+Defined in: [types/content.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L73)
Applicable if `inlineData` is a video.
@@ -6457,7 +6996,7 @@ Applicable if `inlineData` is a video.
### LiveGenerationConfig
-Defined in: [ai/lib/types/requests.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L139)
+Defined in: [types/requests.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L139)
**`Beta`**
@@ -6467,9 +7006,9 @@ Configuration parameters used by [LiveGenerativeModel](#livegenerativemodel) to
##### frequencyPenalty?
-> `optional` **frequencyPenalty**: `number`
+> `optional` **frequencyPenalty?**: `number`
-Defined in: [ai/lib/types/requests.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L178)
+Defined in: [types/requests.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L178)
**`Beta`**
@@ -6477,9 +7016,9 @@ Frequency penalties.
##### inputAudioTranscription?
-> `optional` **inputAudioTranscription**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
+> `optional` **inputAudioTranscription?**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
-Defined in: [ai/lib/types/requests.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L191)
+Defined in: [types/requests.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L191)
**`Beta`**
@@ -6492,9 +7031,9 @@ messages, so you may only receive small amounts of text per message. For example
##### maxOutputTokens?
-> `optional` **maxOutputTokens**: `number`
+> `optional` **maxOutputTokens?**: `number`
-Defined in: [ai/lib/types/requests.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L148)
+Defined in: [types/requests.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L148)
**`Beta`**
@@ -6503,9 +7042,9 @@ tokens per word varies depending on the language outputted. Is unbounded by defa
##### outputAudioTranscription?
-> `optional` **outputAudioTranscription**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
+> `optional` **outputAudioTranscription?**: [`AudioTranscriptionConfig`](#audiotranscriptionconfig)
-Defined in: [ai/lib/types/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L200)
+Defined in: [types/requests.ts:200](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L200)
**`Beta`**
@@ -6518,9 +7057,9 @@ messages, so you may only receive small amounts of text per message. For example
##### presencePenalty?
-> `optional` **presencePenalty**: `number`
+> `optional` **presencePenalty?**: `number`
-Defined in: [ai/lib/types/requests.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L174)
+Defined in: [types/requests.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L174)
**`Beta`**
@@ -6528,9 +7067,9 @@ Positive penalties.
##### responseModalities?
-> `optional` **responseModalities**: [`ResponseModality`](#responsemodality)[]
+> `optional` **responseModalities?**: [`ResponseModality`](#responsemodality)[]
-Defined in: [ai/lib/types/requests.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L182)
+Defined in: [types/requests.ts:182](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L182)
**`Beta`**
@@ -6538,9 +7077,9 @@ The modalities of the response.
##### speechConfig?
-> `optional` **speechConfig**: [`SpeechConfig`](#speechconfig-1)
+> `optional` **speechConfig?**: [`SpeechConfig`](#speechconfig-1)
-Defined in: [ai/lib/types/requests.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L143)
+Defined in: [types/requests.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L143)
**`Beta`**
@@ -6548,9 +7087,9 @@ Configuration for speech synthesis.
##### temperature?
-> `optional` **temperature**: `number`
+> `optional` **temperature?**: `number`
-Defined in: [ai/lib/types/requests.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L154)
+Defined in: [types/requests.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L154)
**`Beta`**
@@ -6560,9 +7099,9 @@ deterministic, but a small amount of variation is still possible.
##### topK?
-> `optional` **topK**: `number`
+> `optional` **topK?**: `number`
-Defined in: [ai/lib/types/requests.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L170)
+Defined in: [types/requests.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L170)
**`Beta`**
@@ -6574,9 +7113,9 @@ if unspecified.
##### topP?
-> `optional` **topP**: `number`
+> `optional` **topP?**: `number`
-Defined in: [ai/lib/types/requests.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L162)
+Defined in: [types/requests.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L162)
**`Beta`**
@@ -6590,7 +7129,7 @@ the `temperature` and exclude C as a candidate. Defaults to 0.95 if unset.
### LiveModelParams
-Defined in: [ai/lib/types/requests.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L53)
+Defined in: [types/requests.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L53)
**`Beta`**
@@ -6600,9 +7139,9 @@ Params passed to [getLiveGenerativeModel](#getlivegenerativemodel).
##### generationConfig?
-> `optional` **generationConfig**: [`LiveGenerationConfig`](#livegenerationconfig)
+> `optional` **generationConfig?**: [`LiveGenerationConfig`](#livegenerationconfig)
-Defined in: [ai/lib/types/requests.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L55)
+Defined in: [types/requests.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L55)
**`Beta`**
@@ -6610,31 +7149,31 @@ Defined in: [ai/lib/types/requests.ts:55](https://github.com/invertase/react-nat
> **model**: `string`
-Defined in: [ai/lib/types/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L54)
+Defined in: [types/requests.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L54)
**`Beta`**
##### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
-Defined in: [ai/lib/types/requests.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L58)
+Defined in: [types/requests.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L58)
**`Beta`**
##### toolConfig?
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
-Defined in: [ai/lib/types/requests.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L57)
+Defined in: [types/requests.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L57)
**`Beta`**
##### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
-Defined in: [ai/lib/types/requests.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L56)
+Defined in: [types/requests.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L56)
**`Beta`**
@@ -6642,7 +7181,7 @@ Defined in: [ai/lib/types/requests.ts:56](https://github.com/invertase/react-nat
### LiveServerContent
-Defined in: [ai/lib/types/responses.ts:421](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L421)
+Defined in: [types/responses.ts:527](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L527)
**`Beta`**
@@ -6652,9 +7191,9 @@ An incremental content update from the model.
##### inputTranscription?
-> `optional` **inputTranscription**: [`Transcription`](#transcription)
+> `optional` **inputTranscription?**: [`Transcription`](#transcription)
-Defined in: [ai/lib/types/responses.ts:440](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L440)
+Defined in: [types/responses.ts:546](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L546)
**`Beta`**
@@ -6662,9 +7201,9 @@ Transcription of the audio that was input to the model.
##### interrupted?
-> `optional` **interrupted**: `boolean`
+> `optional` **interrupted?**: `boolean`
-Defined in: [ai/lib/types/responses.ts:436](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L436)
+Defined in: [types/responses.ts:542](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L542)
**`Beta`**
@@ -6674,9 +7213,9 @@ model was not interrupted.
##### modelTurn?
-> `optional` **modelTurn**: [`Content`](#content)
+> `optional` **modelTurn?**: [`Content`](#content)
-Defined in: [ai/lib/types/responses.ts:426](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L426)
+Defined in: [types/responses.ts:532](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L532)
**`Beta`**
@@ -6684,9 +7223,9 @@ The content that the model has generated as part of the current conversation wit
##### outputTranscription?
-> `optional` **outputTranscription**: [`Transcription`](#transcription)
+> `optional` **outputTranscription?**: [`Transcription`](#transcription)
-Defined in: [ai/lib/types/responses.ts:444](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L444)
+Defined in: [types/responses.ts:550](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L550)
**`Beta`**
@@ -6694,9 +7233,9 @@ Transcription of the audio output from the model.
##### turnComplete?
-> `optional` **turnComplete**: `boolean`
+> `optional` **turnComplete?**: `boolean`
-Defined in: [ai/lib/types/responses.ts:430](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L430)
+Defined in: [types/responses.ts:536](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L536)
**`Beta`**
@@ -6706,7 +7245,7 @@ Indicates whether the turn is complete. This is `undefined` if the turn is not c
> **type**: `"serverContent"`
-Defined in: [ai/lib/types/responses.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L422)
+Defined in: [types/responses.ts:528](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L528)
**`Beta`**
@@ -6714,7 +7253,7 @@ Defined in: [ai/lib/types/responses.ts:422](https://github.com/invertase/react-n
### LiveServerToolCall
-Defined in: [ai/lib/types/responses.ts:467](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L467)
+Defined in: [types/responses.ts:573](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L573)
**`Beta`**
@@ -6724,9 +7263,9 @@ A request from the model for the client to execute one or more functions.
##### functionCalls
-> **functionCalls**: [`FunctionCall`](#functioncall-1)[]
+> **functionCalls**: [`FunctionCall`](#functioncall-3)[]
-Defined in: [ai/lib/types/responses.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L472)
+Defined in: [types/responses.ts:578](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L578)
**`Beta`**
@@ -6736,7 +7275,7 @@ An array of function calls to run.
> **type**: `"toolCall"`
-Defined in: [ai/lib/types/responses.ts:468](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L468)
+Defined in: [types/responses.ts:574](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L574)
**`Beta`**
@@ -6744,7 +7283,7 @@ Defined in: [ai/lib/types/responses.ts:468](https://github.com/invertase/react-n
### LiveServerToolCallCancellation
-Defined in: [ai/lib/types/responses.ts:480](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L480)
+Defined in: [types/responses.ts:586](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L586)
**`Beta`**
@@ -6756,17 +7295,17 @@ Notification to cancel a previous function call triggered by [LiveServerToolCall
> **functionIds**: `string`[]
-Defined in: [ai/lib/types/responses.ts:485](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L485)
+Defined in: [types/responses.ts:591](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L591)
**`Beta`**
-IDs of function calls that were cancelled. These refer to the `id` property of a [FunctionCall](#functioncall-1).
+IDs of function calls that were cancelled. These refer to the `id` property of a [FunctionCall](#functioncall-3).
##### type
> **type**: `"toolCallCancellation"`
-Defined in: [ai/lib/types/responses.ts:481](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L481)
+Defined in: [types/responses.ts:587](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L587)
**`Beta`**
@@ -6774,7 +7313,7 @@ Defined in: [ai/lib/types/responses.ts:481](https://github.com/invertase/react-n
### ModalityTokenCount
-Defined in: [ai/lib/types/responses.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L129)
+Defined in: [types/responses.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L129)
Represents token counting info for a single modality.
@@ -6784,7 +7323,7 @@ Represents token counting info for a single modality.
> **modality**: [`Modality`](#modality)
-Defined in: [ai/lib/types/responses.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L131)
+Defined in: [types/responses.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L131)
The modality associated with this token count.
@@ -6792,7 +7331,7 @@ The modality associated with this token count.
> **tokenCount**: `number`
-Defined in: [ai/lib/types/responses.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L133)
+Defined in: [types/responses.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L133)
The number of tokens counted.
@@ -6800,7 +7339,7 @@ The number of tokens counted.
### ModelParams
-Defined in: [ai/lib/types/requests.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L42)
+Defined in: [types/requests.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L42)
Params passed to [getGenerativeModel](#getgenerativemodel).
@@ -6812,9 +7351,9 @@ Params passed to [getGenerativeModel](#getgenerativemodel).
##### generationConfig?
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
-Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+Defined in: [types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
###### Inherited from
@@ -6824,13 +7363,13 @@ Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-nat
> **model**: `string`
-Defined in: [ai/lib/types/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L43)
+Defined in: [types/requests.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L43)
##### safetySettings?
-> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+> `optional` **safetySettings?**: [`SafetySetting`](#safetysetting)[]
-Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+Defined in: [types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
###### Inherited from
@@ -6838,27 +7377,27 @@ Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-nat
##### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
-Defined in: [ai/lib/types/requests.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L46)
+Defined in: [types/requests.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L46)
##### toolConfig?
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
-Defined in: [ai/lib/types/requests.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L45)
+Defined in: [types/requests.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L45)
##### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
-Defined in: [ai/lib/types/requests.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L44)
+Defined in: [types/requests.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L44)
***
### ObjectSchemaInterface
-Defined in: [ai/lib/types/schema.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L121)
+Defined in: [types/schema.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L120)
Interface for [ObjectSchema](#objectschema) class.
@@ -6868,15 +7407,15 @@ Interface for [ObjectSchema](#objectschema) class.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+Defined in: [types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
Optional. The description of the property.
@@ -6886,9 +7425,9 @@ Optional. The description of the property.
##### enum?
-> `optional` **enum**: `string`[]
+> `optional` **enum?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+Defined in: [types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
Optional. The enum of the property.
@@ -6898,9 +7437,9 @@ Optional. The enum of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+Defined in: [types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
Optional. The example of the property.
@@ -6910,9 +7449,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+Defined in: [types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
Optional. The format of the property.
When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
@@ -6924,9 +7463,9 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+Defined in: [types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
Optional. The items of the property.
@@ -6936,9 +7475,9 @@ Optional. The items of the property.
##### maximum?
-> `optional` **maximum**: `number`
+> `optional` **maximum?**: `number`
-Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+Defined in: [types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
The maximum value of a numeric type.
@@ -6948,9 +7487,9 @@ The maximum value of a numeric type.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+Defined in: [types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -6960,9 +7499,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minimum?
-> `optional` **minimum**: `number`
+> `optional` **minimum?**: `number`
-Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+Defined in: [types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
The minimum value of a numeric type.
@@ -6972,9 +7511,9 @@ The minimum value of a numeric type.
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+Defined in: [types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -6984,9 +7523,9 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### nullable?
-> `optional` **nullable**: `boolean`
+> `optional` **nullable?**: `boolean`
-Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+Defined in: [types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
Optional. Whether the property is nullable.
@@ -6996,15 +7535,15 @@ Optional. Whether the property is nullable.
##### optionalProperties?
-> `optional` **optionalProperties**: `string`[]
+> `optional` **optionalProperties?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L123)
+Defined in: [types/schema.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L122)
##### properties?
-> `optional` **properties**: `object`
+> `optional` **properties?**: `object`
-Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+Defined in: [types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
Optional. Map of `Schema` objects.
@@ -7018,9 +7557,9 @@ Optional. Map of `Schema` objects.
##### propertyOrdering?
-> `optional` **propertyOrdering**: `string`[]
+> `optional` **propertyOrdering?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+Defined in: [types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
A hint suggesting the order in which the keys should appear in the generated JSON string.
@@ -7030,9 +7569,9 @@ A hint suggesting the order in which the keys should appear in the generated JSO
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+Defined in: [types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
The title of the property. This helps document the schema's purpose but does not typically
constrain the generated value. It can subtly guide the model by clarifying the intent of a
@@ -7046,7 +7585,7 @@ field.
> **type**: [`OBJECT`](#object)
-Defined in: [ai/lib/types/schema.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L122)
+Defined in: [types/schema.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L121)
The type of the property. [SchemaType](#schematype).
@@ -7058,7 +7597,7 @@ The type of the property. [SchemaType](#schematype).
### PrebuiltVoiceConfig
-Defined in: [ai/lib/types/requests.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L395)
+Defined in: [types/requests.ts:428](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L428)
**`Beta`**
@@ -7068,9 +7607,9 @@ Configuration for a pre-built voice.
##### voiceName?
-> `optional` **voiceName**: `string`
+> `optional` **voiceName?**: `string`
-Defined in: [ai/lib/types/requests.ts:401](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L401)
+Defined in: [types/requests.ts:434](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L434)
**`Beta`**
@@ -7082,7 +7621,7 @@ For a full list of names and demos of what each voice sounds like, see [Chirp 3:
### PromptFeedback
-Defined in: [ai/lib/types/responses.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L141)
+Defined in: [types/responses.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L141)
If the prompt was blocked, this will be populated with `blockReason` and
the relevant `safetyRatings`.
@@ -7091,15 +7630,15 @@ the relevant `safetyRatings`.
##### blockReason?
-> `optional` **blockReason**: [`BlockReason`](#blockreason)
+> `optional` **blockReason?**: [`BlockReason`](#blockreason)
-Defined in: [ai/lib/types/responses.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L142)
+Defined in: [types/responses.ts:142](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L142)
##### blockReasonMessage?
-> `optional` **blockReasonMessage**: `string`
+> `optional` **blockReasonMessage?**: `string`
-Defined in: [ai/lib/types/responses.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L149)
+Defined in: [types/responses.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L149)
A human-readable description of the `blockReason`.
@@ -7109,13 +7648,13 @@ This property is only supported in the Vertex AI Gemini API ([VertexAIBackend](#
> **safetyRatings**: [`SafetyRating`](#safetyrating)[]
-Defined in: [ai/lib/types/responses.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L143)
+Defined in: [types/responses.ts:143](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L143)
***
### RequestOptions
-Defined in: [ai/lib/types/requests.ts:238](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L238)
+Defined in: [types/requests.ts:238](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L238)
Params passed to [getGenerativeModel](#getgenerativemodel).
@@ -7123,17 +7662,17 @@ Params passed to [getGenerativeModel](#getgenerativemodel).
##### baseUrl?
-> `optional` **baseUrl**: `string`
+> `optional` **baseUrl?**: `string`
-Defined in: [ai/lib/types/requests.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L246)
+Defined in: [types/requests.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L246)
Base url for endpoint. Defaults to https://firebasevertexai.googleapis.com
##### timeout?
-> `optional` **timeout**: `number`
+> `optional` **timeout?**: `number`
-Defined in: [ai/lib/types/requests.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L242)
+Defined in: [types/requests.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L242)
Request timeout in milliseconds. Defaults to 180 seconds (180000ms).
@@ -7141,7 +7680,7 @@ Request timeout in milliseconds. Defaults to 180 seconds (180000ms).
### RetrievedContextAttribution
-Defined in: [ai/lib/types/responses.ts:345](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L345)
+Defined in: [types/responses.ts:451](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L451)
#### Properties
@@ -7149,19 +7688,19 @@ Defined in: [ai/lib/types/responses.ts:345](https://github.com/invertase/react-n
> **title**: `string`
-Defined in: [ai/lib/types/responses.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L347)
+Defined in: [types/responses.ts:453](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L453)
##### uri
> **uri**: `string`
-Defined in: [ai/lib/types/responses.ts:346](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L346)
+Defined in: [types/responses.ts:452](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L452)
***
### SafetyRating
-Defined in: [ai/lib/types/responses.ts:364](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L364)
+Defined in: [types/responses.ts:470](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L470)
A safety rating associated with a [GenerateContentCandidate](#generatecontentcandidate)
@@ -7171,25 +7710,25 @@ A safety rating associated with a [GenerateContentCandidate](#generatecontentcan
> **blocked**: `boolean`
-Defined in: [ai/lib/types/responses.ts:388](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L388)
+Defined in: [types/responses.ts:494](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L494)
##### category
> **category**: [`HarmCategory`](#harmcategory)
-Defined in: [ai/lib/types/responses.ts:365](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L365)
+Defined in: [types/responses.ts:471](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L471)
##### probability
> **probability**: [`HarmProbability`](#harmprobability)
-Defined in: [ai/lib/types/responses.ts:366](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L366)
+Defined in: [types/responses.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L472)
##### probabilityScore
> **probabilityScore**: `number`
-Defined in: [ai/lib/types/responses.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L380)
+Defined in: [types/responses.ts:486](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L486)
The probability score of the harm category.
@@ -7200,7 +7739,7 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
> **severity**: [`HarmSeverity`](#harmseverity)
-Defined in: [ai/lib/types/responses.ts:373](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L373)
+Defined in: [types/responses.ts:479](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L479)
The harm severity level.
@@ -7211,7 +7750,7 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
> **severityScore**: `number`
-Defined in: [ai/lib/types/responses.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L387)
+Defined in: [types/responses.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L493)
The severity score of the harm category.
@@ -7222,7 +7761,7 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
### SafetySetting
-Defined in: [ai/lib/types/requests.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L76)
+Defined in: [types/requests.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L76)
Safety setting that can be sent as part of request parameters.
@@ -7232,13 +7771,13 @@ Safety setting that can be sent as part of request parameters.
> **category**: [`HarmCategory`](#harmcategory)
-Defined in: [ai/lib/types/requests.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L77)
+Defined in: [types/requests.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L77)
##### method?
-> `optional` **method**: [`HarmBlockMethod`](#harmblockmethod)
+> `optional` **method?**: [`HarmBlockMethod`](#harmblockmethod)
-Defined in: [ai/lib/types/requests.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L86)
+Defined in: [types/requests.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L86)
The harm block method.
@@ -7250,13 +7789,13 @@ thrown if this property is defined.
> **threshold**: [`HarmBlockThreshold`](#harmblockthreshold)
-Defined in: [ai/lib/types/requests.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L78)
+Defined in: [types/requests.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L78)
***
### SchemaInterface
-Defined in: [ai/lib/types/schema.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L109)
+Defined in: [types/schema.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L108)
Interface for [Schema](#abstract-schema) class.
@@ -7270,15 +7809,15 @@ Interface for [Schema](#abstract-schema) class.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+Defined in: [types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
Optional. The description of the property.
@@ -7288,9 +7827,9 @@ Optional. The description of the property.
##### enum?
-> `optional` **enum**: `string`[]
+> `optional` **enum?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+Defined in: [types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
Optional. The enum of the property.
@@ -7300,9 +7839,9 @@ Optional. The enum of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+Defined in: [types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
Optional. The example of the property.
@@ -7312,9 +7851,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+Defined in: [types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
Optional. The format of the property.
When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
@@ -7326,9 +7865,9 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+Defined in: [types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
Optional. The items of the property.
@@ -7338,9 +7877,9 @@ Optional. The items of the property.
##### maximum?
-> `optional` **maximum**: `number`
+> `optional` **maximum?**: `number`
-Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+Defined in: [types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
The maximum value of a numeric type.
@@ -7350,9 +7889,9 @@ The maximum value of a numeric type.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+Defined in: [types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7362,9 +7901,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minimum?
-> `optional` **minimum**: `number`
+> `optional` **minimum?**: `number`
-Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+Defined in: [types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
The minimum value of a numeric type.
@@ -7374,9 +7913,9 @@ The minimum value of a numeric type.
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+Defined in: [types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7386,9 +7925,9 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### nullable?
-> `optional` **nullable**: `boolean`
+> `optional` **nullable?**: `boolean`
-Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+Defined in: [types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
Optional. Whether the property is nullable.
@@ -7398,9 +7937,9 @@ Optional. Whether the property is nullable.
##### properties?
-> `optional` **properties**: `object`
+> `optional` **properties?**: `object`
-Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+Defined in: [types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
Optional. Map of `Schema` objects.
@@ -7414,9 +7953,9 @@ Optional. Map of `Schema` objects.
##### propertyOrdering?
-> `optional` **propertyOrdering**: `string`[]
+> `optional` **propertyOrdering?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+Defined in: [types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
A hint suggesting the order in which the keys should appear in the generated JSON string.
@@ -7426,9 +7965,9 @@ A hint suggesting the order in which the keys should appear in the generated JSO
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+Defined in: [types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
The title of the property. This helps document the schema's purpose but does not typically
constrain the generated value. It can subtly guide the model by clarifying the intent of a
@@ -7442,7 +7981,7 @@ field.
> **type**: [`SchemaType`](#schematype)
-Defined in: [ai/lib/types/schema.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L114)
+Defined in: [types/schema.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L113)
The type of the property. [SchemaType](#schematype).
@@ -7450,7 +7989,7 @@ The type of the property. [SchemaType](#schematype).
### SchemaParams
-Defined in: [ai/lib/types/schema.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L89)
+Defined in: [types/schema.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L88)
Params passed to [Schema](#abstract-schema) static methods to create specific
[Schema](#abstract-schema) classes.
@@ -7461,15 +8000,15 @@ Params passed to [Schema](#abstract-schema) static methods to create specific
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+Defined in: [types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
Optional. The description of the property.
@@ -7479,9 +8018,9 @@ Optional. The description of the property.
##### enum?
-> `optional` **enum**: `string`[]
+> `optional` **enum?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+Defined in: [types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
Optional. The enum of the property.
@@ -7491,9 +8030,9 @@ Optional. The enum of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+Defined in: [types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
Optional. The example of the property.
@@ -7503,9 +8042,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+Defined in: [types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
Optional. The format of the property.
When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
@@ -7517,9 +8056,9 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### items?
-> `optional` **items**: [`SchemaInterface`](#schemainterface)
+> `optional` **items?**: [`SchemaInterface`](#schemainterface)
-Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+Defined in: [types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
Optional. The items of the property.
@@ -7529,9 +8068,9 @@ Optional. The items of the property.
##### maximum?
-> `optional` **maximum**: `number`
+> `optional` **maximum?**: `number`
-Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+Defined in: [types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
The maximum value of a numeric type.
@@ -7541,9 +8080,9 @@ The maximum value of a numeric type.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+Defined in: [types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7553,9 +8092,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minimum?
-> `optional` **minimum**: `number`
+> `optional` **minimum?**: `number`
-Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+Defined in: [types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
The minimum value of a numeric type.
@@ -7565,9 +8104,9 @@ The minimum value of a numeric type.
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+Defined in: [types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7577,9 +8116,9 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### nullable?
-> `optional` **nullable**: `boolean`
+> `optional` **nullable?**: `boolean`
-Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+Defined in: [types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
Optional. Whether the property is nullable.
@@ -7589,9 +8128,9 @@ Optional. Whether the property is nullable.
##### properties?
-> `optional` **properties**: `object`
+> `optional` **properties?**: `object`
-Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+Defined in: [types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
Optional. Map of `Schema` objects.
@@ -7605,9 +8144,9 @@ Optional. Map of `Schema` objects.
##### propertyOrdering?
-> `optional` **propertyOrdering**: `string`[]
+> `optional` **propertyOrdering?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+Defined in: [types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
A hint suggesting the order in which the keys should appear in the generated JSON string.
@@ -7617,9 +8156,9 @@ A hint suggesting the order in which the keys should appear in the generated JSO
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+Defined in: [types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
The title of the property. This helps document the schema's purpose but does not typically
constrain the generated value. It can subtly guide the model by clarifying the intent of a
@@ -7633,7 +8172,7 @@ field.
### SchemaRequest
-Defined in: [ai/lib/types/schema.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L95)
+Defined in: [types/schema.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L94)
Final format for [Schema](#abstract-schema) params passed to backend requests.
@@ -7643,15 +8182,15 @@ Final format for [Schema](#abstract-schema) params passed to backend requests.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+Defined in: [types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
Optional. The description of the property.
@@ -7661,9 +8200,9 @@ Optional. The description of the property.
##### enum?
-> `optional` **enum**: `string`[]
+> `optional` **enum?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+Defined in: [types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
Optional. The enum of the property.
@@ -7673,9 +8212,9 @@ Optional. The enum of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+Defined in: [types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
Optional. The example of the property.
@@ -7685,9 +8224,9 @@ Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+Defined in: [types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
Optional. The format of the property.
When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
@@ -7699,9 +8238,9 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### items?
-> `optional` **items**: [`SchemaRequest`](#schemarequest)
+> `optional` **items?**: [`SchemaRequest`](#schemarequest)
-Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+Defined in: [types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
Optional. The items of the property.
@@ -7711,9 +8250,9 @@ Optional. The items of the property.
##### maximum?
-> `optional` **maximum**: `number`
+> `optional` **maximum?**: `number`
-Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+Defined in: [types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
The maximum value of a numeric type.
@@ -7723,9 +8262,9 @@ The maximum value of a numeric type.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+Defined in: [types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7735,9 +8274,9 @@ The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### minimum?
-> `optional` **minimum**: `number`
+> `optional` **minimum?**: `number`
-Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+Defined in: [types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
The minimum value of a numeric type.
@@ -7747,9 +8286,9 @@ The minimum value of a numeric type.
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+Defined in: [types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
@@ -7759,9 +8298,9 @@ The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#a
##### nullable?
-> `optional` **nullable**: `boolean`
+> `optional` **nullable?**: `boolean`
-Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+Defined in: [types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
Optional. Whether the property is nullable.
@@ -7771,9 +8310,9 @@ Optional. Whether the property is nullable.
##### properties?
-> `optional` **properties**: `object`
+> `optional` **properties?**: `object`
-Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+Defined in: [types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
Optional. Map of `Schema` objects.
@@ -7787,9 +8326,9 @@ Optional. Map of `Schema` objects.
##### propertyOrdering?
-> `optional` **propertyOrdering**: `string`[]
+> `optional` **propertyOrdering?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+Defined in: [types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
A hint suggesting the order in which the keys should appear in the generated JSON string.
@@ -7799,17 +8338,17 @@ A hint suggesting the order in which the keys should appear in the generated JSO
##### required?
-> `optional` **required**: `string`[]
+> `optional` **required?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L102)
+Defined in: [types/schema.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L101)
Optional. Array of required property.
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+Defined in: [types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
The title of the property. This helps document the schema's purpose but does not typically
constrain the generated value. It can subtly guide the model by clarifying the intent of a
@@ -7823,7 +8362,7 @@ field.
> **type**: [`SchemaType`](#schematype)
-Defined in: [ai/lib/types/schema.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L100)
+Defined in: [types/schema.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L99)
The type of the property. [SchemaType](#schematype).
@@ -7831,7 +8370,7 @@ The type of the property. [SchemaType](#schematype).
### SchemaShared
-Defined in: [ai/lib/types/schema.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L44)
+Defined in: [types/schema.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L44)
Basic [Schema](#abstract-schema) properties shared across several Schema-related
types.
@@ -7850,39 +8389,39 @@ types.
#### Indexable
-\[`key`: `string`\]: `unknown`
+> \[`key`: `string`\]: `unknown`
#### Properties
##### description?
-> `optional` **description**: `string`
+> `optional` **description?**: `string`
-Defined in: [ai/lib/types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
+Defined in: [types/schema.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L51)
Optional. The description of the property.
##### enum?
-> `optional` **enum**: `string`[]
+> `optional` **enum?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
+Defined in: [types/schema.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L71)
Optional. The enum of the property.
##### example?
-> `optional` **example**: `unknown`
+> `optional` **example?**: `unknown`
-Defined in: [ai/lib/types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
+Defined in: [types/schema.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L73)
Optional. The example of the property.
##### format?
-> `optional` **format**: `string`
+> `optional` **format?**: `string`
-Defined in: [ai/lib/types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
+Defined in: [types/schema.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L49)
Optional. The format of the property.
When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this must be either `'enum'` or
@@ -7890,57 +8429,57 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### items?
-> `optional` **items**: `T`
+> `optional` **items?**: `T`
-Defined in: [ai/lib/types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
+Defined in: [types/schema.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L59)
Optional. The items of the property.
##### maximum?
-> `optional` **maximum**: `number`
+> `optional` **maximum?**: `number`
-Defined in: [ai/lib/types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
+Defined in: [types/schema.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L79)
The maximum value of a numeric type.
##### maxItems?
-> `optional` **maxItems**: `number`
+> `optional` **maxItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
+Defined in: [types/schema.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L63)
The maximum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
##### minimum?
-> `optional` **minimum**: `number`
+> `optional` **minimum?**: `number`
-Defined in: [ai/lib/types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
+Defined in: [types/schema.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L77)
The minimum value of a numeric type.
##### minItems?
-> `optional` **minItems**: `number`
+> `optional` **minItems?**: `number`
-Defined in: [ai/lib/types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
+Defined in: [types/schema.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L61)
The minimum number of items (elements) in a schema of type [SchemaType.ARRAY](#array).
##### nullable?
-> `optional` **nullable**: `boolean`
+> `optional` **nullable?**: `boolean`
-Defined in: [ai/lib/types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
+Defined in: [types/schema.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L75)
Optional. Whether the property is nullable.
##### properties?
-> `optional` **properties**: `object`
+> `optional` **properties?**: `object`
-Defined in: [ai/lib/types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
+Defined in: [types/schema.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L65)
Optional. Map of `Schema` objects.
@@ -7950,17 +8489,17 @@ Optional. Map of `Schema` objects.
##### propertyOrdering?
-> `optional` **propertyOrdering**: `string`[]
+> `optional` **propertyOrdering?**: `string`[]
-Defined in: [ai/lib/types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
+Defined in: [types/schema.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L69)
A hint suggesting the order in which the keys should appear in the generated JSON string.
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
+Defined in: [types/schema.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/schema.ts#L57)
The title of the property. This helps document the schema's purpose but does not typically
constrain the generated value. It can subtly guide the model by clarifying the intent of a
@@ -7968,9 +8507,40 @@ field.
***
+### SearchEntrypoint
+
+Defined in: [types/responses.ts:318](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L318)
+
+Google search entry point.
+
+#### Properties
+
+##### renderedContent?
+
+> `optional` **renderedContent?**: `string`
+
+Defined in: [types/responses.ts:334](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L334)
+
+HTML/CSS snippet that must be embedded in a web page. The snippet is designed to avoid
+undesired interaction with the rest of the page's CSS.
+
+To ensure proper rendering and prevent CSS conflicts, it is recommended
+to encapsulate this `renderedContent` within a shadow DOM when embedding it
+into a webpage. See [MDN: Using shadow DOM](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM).
+
+###### Example
+
+```javascript
+const container = document.createElement('div');
+document.body.appendChild(container);
+container.attachShadow({ mode: 'open' }).innerHTML = renderedContent;
+```
+
+***
+
### Segment
-Defined in: [ai/lib/types/responses.ts:309](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L309)
+Defined in: [types/responses.ts:415](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L415)
Represents a specific segment within a [Content](#content) object, often used to
pinpoint the exact location of text or data that grounding information refers to.
@@ -7981,7 +8551,7 @@ pinpoint the exact location of text or data that grounding information refers to
> **endIndex**: `number`
-Defined in: [ai/lib/types/responses.ts:327](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L327)
+Defined in: [types/responses.ts:433](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L433)
The zero-based end index of the segment within the specified `Part`,
measured in UTF-8 bytes. This offset is exclusive, meaning the character
@@ -7991,7 +8561,7 @@ at this index is not included in the segment.
> **partIndex**: `number`
-Defined in: [ai/lib/types/responses.ts:315](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L315)
+Defined in: [types/responses.ts:421](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L421)
The zero-based index of the [Part](#part) object within the `parts` array
of its parent [Content](#content) object. This identifies which part of the
@@ -8001,7 +8571,7 @@ content the segment belongs to.
> **startIndex**: `number`
-Defined in: [ai/lib/types/responses.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L321)
+Defined in: [types/responses.ts:427](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L427)
The zero-based start index of the segment within the specified `Part`,
measured in UTF-8 bytes. This offset is inclusive, starting from 0 at the
@@ -8011,7 +8581,7 @@ beginning of the part's content (e.g., `Part.text`).
> **text**: `string`
-Defined in: [ai/lib/types/responses.ts:331](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L331)
+Defined in: [types/responses.ts:437](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L437)
The text corresponding to the segment from the response.
@@ -8019,7 +8589,7 @@ The text corresponding to the segment from the response.
### SpeechConfig
-Defined in: [ai/lib/types/requests.ts:421](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L421)
+Defined in: [types/requests.ts:454](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L454)
**`Beta`**
@@ -8029,9 +8599,9 @@ Configures speech synthesis.
##### voiceConfig?
-> `optional` **voiceConfig**: [`VoiceConfig`](#voiceconfig-1)
+> `optional` **voiceConfig?**: [`VoiceConfig`](#voiceconfig-1)
-Defined in: [ai/lib/types/requests.ts:425](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L425)
+Defined in: [types/requests.ts:458](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L458)
**`Beta`**
@@ -8041,7 +8611,7 @@ Configures the voice to be used in speech synthesis.
### StartChatParams
-Defined in: [ai/lib/types/requests.ts:207](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L207)
+Defined in: [types/requests.ts:207](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L207)
Params for [GenerativeModel.startChat](#startchat).
@@ -8053,9 +8623,9 @@ Params for [GenerativeModel.startChat](#startchat).
##### generationConfig?
-> `optional` **generationConfig**: [`GenerationConfig`](#generationconfig-6)
+> `optional` **generationConfig?**: [`GenerationConfig`](#generationconfig-6)
-Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
+Defined in: [types/requests.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L35)
###### Inherited from
@@ -8063,15 +8633,15 @@ Defined in: [ai/lib/types/requests.ts:35](https://github.com/invertase/react-nat
##### history?
-> `optional` **history**: [`Content`](#content)[]
+> `optional` **history?**: [`Content`](#content)[]
-Defined in: [ai/lib/types/requests.ts:208](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L208)
+Defined in: [types/requests.ts:208](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L208)
##### safetySettings?
-> `optional` **safetySettings**: [`SafetySetting`](#safetysetting)[]
+> `optional` **safetySettings?**: [`SafetySetting`](#safetysetting)[]
-Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
+Defined in: [types/requests.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L34)
###### Inherited from
@@ -8079,67 +8649,79 @@ Defined in: [ai/lib/types/requests.ts:34](https://github.com/invertase/react-nat
##### systemInstruction?
-> `optional` **systemInstruction**: `string` \| [`Content`](#content) \| [`Part`](#part)
+> `optional` **systemInstruction?**: `string` \| [`Content`](#content) \| [`Part`](#part)
-Defined in: [ai/lib/types/requests.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L211)
+Defined in: [types/requests.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L211)
##### toolConfig?
-> `optional` **toolConfig**: [`ToolConfig`](#toolconfig-6)
+> `optional` **toolConfig?**: [`ToolConfig`](#toolconfig-6)
-Defined in: [ai/lib/types/requests.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L210)
+Defined in: [types/requests.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L210)
##### tools?
-> `optional` **tools**: [`Tool`](#tool)[]
+> `optional` **tools?**: [`Tool`](#tool)[]
-Defined in: [ai/lib/types/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L209)
+Defined in: [types/requests.ts:209](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L209)
***
### TextPart
-Defined in: [ai/lib/types/content.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L45)
+Defined in: [types/content.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L47)
Content part interface if the part represents a text string.
#### Properties
+##### codeExecutionResult?
+
+> `optional` **codeExecutionResult?**: `undefined`
+
+Defined in: [types/content.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L58)
+
+##### executableCode?
+
+> `optional` **executableCode?**: `undefined`
+
+Defined in: [types/content.ts:57](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L57)
+
##### functionCall?
-> `optional` **functionCall**: `undefined`
+> `optional` **functionCall?**: `undefined`
-Defined in: [ai/lib/types/content.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L48)
+Defined in: [types/content.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L50)
##### functionResponse?
-> `optional` **functionResponse**: `undefined`
+> `optional` **functionResponse?**: `undefined`
-Defined in: [ai/lib/types/content.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L49)
+Defined in: [types/content.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L51)
##### inlineData?
-> `optional` **inlineData**: `undefined`
+> `optional` **inlineData?**: `undefined`
-Defined in: [ai/lib/types/content.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L47)
+Defined in: [types/content.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L49)
##### text
> **text**: `string`
-Defined in: [ai/lib/types/content.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L46)
+Defined in: [types/content.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L48)
##### thought?
-> `optional` **thought**: `boolean`
+> `optional` **thought?**: `boolean`
-Defined in: [ai/lib/types/content.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L50)
+Defined in: [types/content.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L52)
##### thoughtSignature?
-> `optional` **thoughtSignature**: `string`
+> `optional` **thoughtSignature?**: `string`
-Defined in: [ai/lib/types/content.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L54)
+Defined in: [types/content.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L56)
**`Internal`**
@@ -8147,7 +8729,7 @@ Defined in: [ai/lib/types/content.ts:54](https://github.com/invertase/react-nati
### ThinkingConfig
-Defined in: [ai/lib/types/requests.ts:363](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L363)
+Defined in: [types/requests.ts:396](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L396)
Configuration for "thinking" behavior of compatible Gemini models.
@@ -8158,9 +8740,9 @@ reason through complex problems and plan a more coherent and accurate answer.
##### includeThoughts?
-> `optional` **includeThoughts**: `boolean`
+> `optional` **includeThoughts?**: `boolean`
-Defined in: [ai/lib/types/requests.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L387)
+Defined in: [types/requests.ts:420](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L420)
Whether to include "thought summaries" in the model's response.
@@ -8172,9 +8754,9 @@ debugging, understanding the model's reasoning, and verifying its accuracy.
##### thinkingBudget?
-> `optional` **thinkingBudget**: `number`
+> `optional` **thinkingBudget?**: `number`
-Defined in: [ai/lib/types/requests.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L377)
+Defined in: [types/requests.ts:410](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L410)
The thinking budget, in tokens.
@@ -8190,49 +8772,127 @@ feature or if the specified budget is not within the model's supported range.
***
-### ToolConfig
+### ToolConfig
+
+Defined in: [types/requests.ts:376](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L376)
+
+Tool config. This config is shared for all tools provided in the request.
+
+#### Properties
+
+##### functionCallingConfig?
+
+> `optional` **functionCallingConfig?**: [`FunctionCallingConfig`](#functioncallingconfig)
+
+Defined in: [types/requests.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L377)
+
+***
+
+### Transcription
+
+Defined in: [types/responses.ts:561](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L561)
+
+**`Beta`**
+
+Transcription of audio. This can be returned from a [LiveGenerativeModel](#livegenerativemodel) if transcription
+is enabled with the `inputAudioTranscription` or `outputAudioTranscription` properties on
+the [LiveGenerationConfig](#livegenerationconfig).
+
+#### Properties
+
+##### text?
+
+> `optional` **text?**: `string`
+
+Defined in: [types/responses.ts:565](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L565)
+
+**`Beta`**
+
+The text transcription of the audio.
+
+***
+
+### URLContext
+
+Defined in: [types/requests.ts:350](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L350)
+
+**`Beta`**
+
+Specifies the URL Context configuration.
+
+***
+
+### URLContextMetadata
+
+Defined in: [types/responses.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L172)
+
+Metadata related to [URLContextTool](#urlcontexttool).
+
+#### Properties
+
+##### urlMetadata
+
+> **urlMetadata**: [`URLMetadata`](#urlmetadata-1)[]
+
+Defined in: [types/responses.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L176)
+
+List of URL metadata used to provide context to the Gemini model.
+
+***
+
+### URLContextTool
-Defined in: [ai/lib/types/requests.ts:343](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L343)
+Defined in: [types/requests.ts:338](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L338)
-Tool config. This config is shared for all tools provided in the request.
+**`Beta`**
+
+A tool that allows you to provide additional context to the models in the form of public web
+URLs. By including URLs in your request, the Gemini model will access the content from those
+pages to inform and enhance its response.
#### Properties
-##### functionCallingConfig?
+##### urlContext
-> `optional` **functionCallingConfig**: [`FunctionCallingConfig`](#functioncallingconfig)
+> **urlContext**: [`URLContext`](#urlcontext)
-Defined in: [ai/lib/types/requests.ts:344](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L344)
+Defined in: [types/requests.ts:342](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L342)
-***
+**`Beta`**
-### Transcription
+Specifies the URL Context configuration.
-Defined in: [ai/lib/types/responses.ts:455](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L455)
+***
-**`Beta`**
+### URLMetadata
-Transcription of audio. This can be returned from a [LiveGenerativeModel](#livegenerativemodel) if transcription
-is enabled with the `inputAudioTranscription` or `outputAudioTranscription` properties on
-the [LiveGenerationConfig](#livegenerationconfig).
+Defined in: [types/responses.ts:184](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L184)
+
+Metadata for a single URL retrieved by the [URLContextTool](#urlcontexttool) tool.
#### Properties
-##### text?
+##### retrievedUrl?
-> `optional` **text**: `string`
+> `optional` **retrievedUrl?**: `string`
-Defined in: [ai/lib/types/responses.ts:459](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L459)
+Defined in: [types/responses.ts:188](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L188)
-**`Beta`**
+The retrieved URL.
-The text transcription of the audio.
+##### urlRetrievalStatus?
+
+> `optional` **urlRetrievalStatus?**: [`URLRetrievalStatus`](#urlretrievalstatus-1)
+
+Defined in: [types/responses.ts:192](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L192)
+
+The status of the URL retrieval.
***
### UsageMetadata
-Defined in: [ai/lib/types/responses.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L112)
+Defined in: [types/responses.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L112)
Usage metadata about a [GenerateContentResponse](#generatecontentresponse).
@@ -8242,31 +8902,31 @@ Usage metadata about a [GenerateContentResponse](#generatecontentresponse).
> **candidatesTokenCount**: `number`
-Defined in: [ai/lib/types/responses.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L114)
+Defined in: [types/responses.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L114)
##### candidatesTokensDetails?
-> `optional` **candidatesTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+> `optional` **candidatesTokensDetails?**: [`ModalityTokenCount`](#modalitytokencount)[]
-Defined in: [ai/lib/types/responses.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L121)
+Defined in: [types/responses.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L121)
##### promptTokenCount
> **promptTokenCount**: `number`
-Defined in: [ai/lib/types/responses.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L113)
+Defined in: [types/responses.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L113)
##### promptTokensDetails?
-> `optional` **promptTokensDetails**: [`ModalityTokenCount`](#modalitytokencount)[]
+> `optional` **promptTokensDetails?**: [`ModalityTokenCount`](#modalitytokencount)[]
-Defined in: [ai/lib/types/responses.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L120)
+Defined in: [types/responses.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L120)
##### thoughtsTokenCount?
-> `optional` **thoughtsTokenCount**: `number`
+> `optional` **thoughtsTokenCount?**: `number`
-Defined in: [ai/lib/types/responses.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L118)
+Defined in: [types/responses.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L118)
The number of tokens used by the model's internal "thinking" process.
@@ -8274,13 +8934,13 @@ The number of tokens used by the model's internal "thinking" process.
> **totalTokenCount**: `number`
-Defined in: [ai/lib/types/responses.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L119)
+Defined in: [types/responses.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L119)
***
### VideoMetadata
-Defined in: [ai/lib/types/content.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L81)
+Defined in: [types/content.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L87)
Describes the input video content.
@@ -8290,7 +8950,7 @@ Describes the input video content.
> **endOffset**: `string`
-Defined in: [ai/lib/types/content.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L91)
+Defined in: [types/content.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L97)
The end offset of the video in
protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-workflows-v1/latest/Google-Protobuf-Duration#json-mapping) format.
@@ -8299,7 +8959,7 @@ protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-wo
> **startOffset**: `string`
-Defined in: [ai/lib/types/content.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L86)
+Defined in: [types/content.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L92)
The start offset of the video in
protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-workflows-v1/latest/Google-Protobuf-Duration#json-mapping) format.
@@ -8308,7 +8968,7 @@ protobuf [Duration](https://cloud.google.com/ruby/docs/reference/google-cloud-wo
### VoiceConfig
-Defined in: [ai/lib/types/requests.ts:409](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L409)
+Defined in: [types/requests.ts:442](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L442)
**`Beta`**
@@ -8318,9 +8978,9 @@ Configuration for the voice to used in speech synthesis.
##### prebuiltVoiceConfig?
-> `optional` **prebuiltVoiceConfig**: [`PrebuiltVoiceConfig`](#prebuiltvoiceconfig)
+> `optional` **prebuiltVoiceConfig?**: [`PrebuiltVoiceConfig`](#prebuiltvoiceconfig)
-Defined in: [ai/lib/types/requests.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L413)
+Defined in: [types/requests.ts:446](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L446)
**`Beta`**
@@ -8330,7 +8990,7 @@ Configures the voice using a pre-built voice configuration.
### WebAttribution
-Defined in: [ai/lib/types/responses.ts:337](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L337)
+Defined in: [types/responses.ts:443](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L443)
#### Properties
@@ -8338,19 +8998,19 @@ Defined in: [ai/lib/types/responses.ts:337](https://github.com/invertase/react-n
> **title**: `string`
-Defined in: [ai/lib/types/responses.ts:339](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L339)
+Defined in: [types/responses.ts:445](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L445)
##### uri
> **uri**: `string`
-Defined in: [ai/lib/types/responses.ts:338](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L338)
+Defined in: [types/responses.ts:444](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L444)
***
### WebGroundingChunk
-Defined in: [ai/lib/types/responses.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L252)
+Defined in: [types/responses.ts:358](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L358)
A grounding chunk from the web.
@@ -8361,9 +9021,9 @@ Important: If using Grounding with Google Search, you are required to comply wit
##### domain?
-> `optional` **domain**: `string`
+> `optional` **domain?**: `string`
-Defined in: [ai/lib/types/responses.ts:268](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L268)
+Defined in: [types/responses.ts:374](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L374)
The domain of the original URI from which the content was retrieved.
@@ -8373,17 +9033,17 @@ When using the Gemini Developer API ([GoogleAIBackend](#googleaibackend)), this
##### title?
-> `optional` **title**: `string`
+> `optional` **title?**: `string`
-Defined in: [ai/lib/types/responses.ts:260](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L260)
+Defined in: [types/responses.ts:366](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L366)
The title of the retrieved web page.
##### uri?
-> `optional` **uri**: `string`
+> `optional` **uri?**: `string`
-Defined in: [ai/lib/types/responses.ts:256](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L256)
+Defined in: [types/responses.ts:362](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L362)
The URI of the retrieved web page.
@@ -8393,7 +9053,7 @@ The URI of the retrieved web page.
> **BackendType** = *typeof* [`BackendType`](#backendtype-4)\[keyof *typeof* [`BackendType`](#backendtype-4)\]
-Defined in: [ai/lib/public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
+Defined in: [public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
Type alias representing valid backend types.
It can be either `'VERTEX_AI'` or `'GOOGLE_AI'`.
@@ -8404,7 +9064,7 @@ It can be either `'VERTEX_AI'` or `'GOOGLE_AI'`.
> **ImagenAspectRatio** = *typeof* [`ImagenAspectRatio`](#imagenaspectratio-1)\[keyof *typeof* [`ImagenAspectRatio`](#imagenaspectratio-1)\]
-Defined in: [ai/lib/types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
+Defined in: [types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
**`Beta`**
@@ -8422,7 +9082,7 @@ for more details and examples of the supported aspect ratios.
> **ImagenPersonFilterLevel** = *typeof* [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel-1)\[keyof *typeof* [`ImagenPersonFilterLevel`](#imagenpersonfilterlevel-1)\]
-Defined in: [ai/lib/types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
+Defined in: [types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
**`Beta`**
@@ -8437,7 +9097,7 @@ documentation for more details.
> **ImagenSafetyFilterLevel** = *typeof* [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel-1)\[keyof *typeof* [`ImagenSafetyFilterLevel`](#imagensafetyfilterlevel-1)\]
-Defined in: [ai/lib/types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
+Defined in: [types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
**`Beta`**
@@ -8456,18 +9116,30 @@ for more details.
> **InferenceMode** = *typeof* [`InferenceMode`](#inferencemode-1)\[keyof *typeof* [`InferenceMode`](#inferencemode-1)\]
-Defined in: [ai/lib/types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
+Defined in: [types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
(EXPERIMENTAL)
Determines whether inference happens on-device or in-cloud.
***
+### Language
+
+> **Language** = *typeof* [`Language`](#language-2)\[keyof *typeof* [`Language`](#language-2)\]
+
+Defined in: [types/enums.ts:332](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L332)
+
+**`Beta`**
+
+The programming language of the code.
+
+***
+
### LiveResponseType
> **LiveResponseType** = *typeof* [`LiveResponseType`](#liveresponsetype-1)\[keyof *typeof* [`LiveResponseType`](#liveresponsetype-1)\]
-Defined in: [ai/lib/types/responses.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L493)
+Defined in: [types/responses.ts:599](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L599)
**`Beta`**
@@ -8477,11 +9149,23 @@ returned by the server, it is assigned to a server message object once it's pars
***
+### Outcome
+
+> **Outcome** = *typeof* [`Outcome`](#outcome-2)\[keyof *typeof* [`Outcome`](#outcome-2)\]
+
+Defined in: [types/enums.ts:313](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L313)
+
+**`Beta`**
+
+Represents the result of the code execution.
+
+***
+
### Part
-> **Part** = [`TextPart`](#textpart) \| [`InlineDataPart`](#inlinedatapart) \| [`FunctionCallPart`](#functioncallpart) \| [`FunctionResponsePart`](#functionresponsepart) \| [`FileDataPart`](#filedatapart)
+> **Part** = [`TextPart`](#textpart) \| [`InlineDataPart`](#inlinedatapart) \| [`FunctionCallPart`](#functioncallpart) \| [`FunctionResponsePart`](#functionresponsepart) \| [`FileDataPart`](#filedatapart) \| [`ExecutableCodePart`](#executablecodepart) \| [`CodeExecutionResultPart`](#codeexecutionresultpart)
-Defined in: [ai/lib/types/content.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L34)
+Defined in: [types/content.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/content.ts#L34)
Content part - includes text, image/video, or function call/response
part types.
@@ -8492,7 +9176,7 @@ part types.
> **ResponseModality** = *typeof* [`ResponseModality`](#responsemodality-1)\[keyof *typeof* [`ResponseModality`](#responsemodality-1)\]
-Defined in: [ai/lib/types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
+Defined in: [types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
**`Beta`**
@@ -8504,7 +9188,7 @@ Generation modalities to be returned in generation responses.
> **Role** = *typeof* [`POSSIBLE_ROLES`](#possible_roles)\[`number`\]
-Defined in: [ai/lib/types/enums.ts:22](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L22)
+Defined in: [types/enums.ts:22](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L22)
Role is the producer of the content.
@@ -8512,9 +9196,9 @@ Role is the producer of the content.
### Tool
-> **Tool** = [`FunctionDeclarationsTool`](#functiondeclarationstool) \| [`GoogleSearchTool`](#googlesearchtool)
+> **Tool** = [`FunctionDeclarationsTool`](#functiondeclarationstool) \| [`GoogleSearchTool`](#googlesearchtool) \| [`CodeExecutionTool`](#codeexecutiontool) \| [`URLContextTool`](#urlcontexttool)
-Defined in: [ai/lib/types/requests.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L253)
+Defined in: [types/requests.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/requests.ts#L253)
Defines a tool that model can call to access external knowledge.
@@ -8524,17 +9208,27 @@ Defines a tool that model can call to access external knowledge.
> **TypedSchema** = [`IntegerSchema`](#integerschema) \| [`NumberSchema`](#numberschema) \| [`StringSchema`](#stringschema) \| [`BooleanSchema`](#booleanschema) \| [`ObjectSchema`](#objectschema) \| [`ArraySchema`](#arrayschema)
-Defined in: [ai/lib/requests/schema-builder.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L136)
+Defined in: [requests/schema-builder.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/requests/schema-builder.ts#L136)
A type that includes all specific Schema types.
+***
+
+### URLRetrievalStatus
+
+> **URLRetrievalStatus** = *typeof* [`URLRetrievalStatus`](#urlretrievalstatus-2)\[keyof *typeof* [`URLRetrievalStatus`](#urlretrievalstatus-2)\]
+
+Defined in: [types/responses.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L212)
+
+Type alias for URL retrieval status values.
+
## Variables
### BackendType
> `const` **BackendType**: `object`
-Defined in: [ai/lib/public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
+Defined in: [public-types.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/public-types.ts#L59)
An enum-like object containing constants that represent the supported backends
for the Firebase AI SDK.
@@ -8567,7 +9261,7 @@ Use this constant when creating a [VertexAIBackend](#vertexaibackend) configurat
> `const` **ImagenAspectRatio**: `object`
-Defined in: [ai/lib/types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
+Defined in: [types/imagen/requests.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L223)
**`Beta`**
@@ -8617,7 +9311,7 @@ Square (1:1) aspect ratio.
> `const` **ImagenPersonFilterLevel**: `object`
-Defined in: [ai/lib/types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
+Defined in: [types/imagen/requests.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L158)
**`Beta`**
@@ -8660,7 +9354,7 @@ Disallow generation of images containing people or faces; images of people are f
> `const` **ImagenSafetyFilterLevel**: `object`
-Defined in: [ai/lib/types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
+Defined in: [types/imagen/requests.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/imagen/requests.ts#L113)
**`Beta`**
@@ -8708,7 +9402,7 @@ Blocks few sensitive prompts and responses.
> `const` **InferenceMode**: `object`
-Defined in: [ai/lib/types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
+Defined in: [types/enums.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L295)
(EXPERIMENTAL)
Determines whether inference happens on-device or in-cloud.
@@ -8729,291 +9423,181 @@ Determines whether inference happens on-device or in-cloud.
***
-### LiveResponseType
+### Language
-> `const` **LiveResponseType**: `object`
+> `const` **Language**: `object`
-Defined in: [ai/lib/types/responses.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L493)
+Defined in: [types/enums.ts:332](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L332)
**`Beta`**
-The types of responses that can be returned by [LiveSession.receive](#receive).
+The programming language of the code.
#### Type Declaration
-##### SERVER\_CONTENT
-
-> **SERVER\_CONTENT**: `string` = `'serverContent'`
-
-##### TOOL\_CALL
-
-> **TOOL\_CALL**: `string` = `'toolCall'`
-
-##### TOOL\_CALL\_CANCELLATION
-
-> **TOOL\_CALL\_CANCELLATION**: `string` = `'toolCallCancellation'`
-
-***
-
-### POSSIBLE\_ROLES
+##### PYTHON
-> `const` **POSSIBLE\_ROLES**: readonly \[`"user"`, `"model"`, `"function"`, `"system"`\]
+> **PYTHON**: `string` = `'PYTHON'`
-Defined in: [ai/lib/types/enums.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L28)
+##### UNSPECIFIED
-Possible roles.
+> **UNSPECIFIED**: `string` = `'LANGUAGE_UNSPECIFIED'`
***
-### ResponseModality
+### LiveResponseType
-> `const` **ResponseModality**: `object`
+> `const` **LiveResponseType**: `object`
-Defined in: [ai/lib/types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
+Defined in: [types/responses.ts:599](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L599)
**`Beta`**
-Generation modalities to be returned in generation responses.
+The types of responses that can be returned by [LiveSession.receive](#receive).
#### Type Declaration
-##### AUDIO
+##### SERVER\_CONTENT
-> `readonly` **AUDIO**: `"AUDIO"` = `'AUDIO'`
+> **SERVER\_CONTENT**: `string` = `'serverContent'`
-**`Beta`**
+##### TOOL\_CALL
-Audio.
+> **TOOL\_CALL**: `string` = `'toolCall'`
-##### IMAGE
+##### TOOL\_CALL\_CANCELLATION
-> `readonly` **IMAGE**: `"IMAGE"` = `'IMAGE'`
+> **TOOL\_CALL\_CANCELLATION**: `string` = `'toolCallCancellation'`
-**`Beta`**
+***
-Image.
+### Outcome
-##### TEXT
+> `const` **Outcome**: `object`
-> `readonly` **TEXT**: `"TEXT"` = `'TEXT'`
+Defined in: [types/enums.ts:313](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L313)
**`Beta`**
-Text.
-
-## Functions
-
-### getAI()
-
-> **getAI**(`app?`, `options?`): [`AI`](#ai)
-
-Defined in: [ai/lib/index.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L78)
-
-Returns the default [AI](#ai) instance that is associated with the provided
-@firebase/app#FirebaseApp. If no instance exists, initializes a new instance with the
-default settings.
-
-#### Parameters
-
-##### app?
-
-`FirebaseApp` = `...`
-
-The @firebase/app#FirebaseApp to use.
-
-##### options?
+Represents the result of the code execution.
-[`AIOptions`](#aioptions-1)
+#### Type Declaration
-[AIOptions](#aioptions-1) that configure the AI instance.
+##### DEADLINE\_EXCEEDED
-#### Returns
+> **DEADLINE\_EXCEEDED**: `string` = `'OUTCOME_DEADLINE_EXCEEDED'`
-[`AI`](#ai)
+##### FAILED
-The default [AI](#ai) instance for the given @firebase/app#FirebaseApp.
+> **FAILED**: `string` = `'OUTCOME_FAILED'`
-#### Examples
+##### OK
-```javascript
-const ai = getAI(app);
-```
+> **OK**: `string` = `'OUTCOME_OK'`
-```javascript
-// Get an AI instance configured to use the Gemini Developer API (via Google AI).
-const ai = getAI(app, { backend: new GoogleAIBackend() });
-```
+##### UNSPECIFIED
-```javascript
-// Get an AI instance configured to use the Vertex AI Gemini API.
-const ai = getAI(app, { backend: new VertexAIBackend() });
-```
+> **UNSPECIFIED**: `string` = `'OUTCOME_UNSPECIFIED'`
***
-### getGenerativeModel()
-
-> **getGenerativeModel**(`ai`, `modelParams`, `requestOptions?`): [`GenerativeModel`](#generativemodel)
-
-Defined in: [ai/lib/index.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L103)
-
-Returns a [GenerativeModel](#generativemodel) class with methods for inference
-and other functionality.
-
-#### Parameters
-
-##### ai
-
-[`AI`](#ai)
-
-##### modelParams
-
-[`ModelParams`](#modelparams)
-
-##### requestOptions?
+### POSSIBLE\_ROLES
-[`RequestOptions`](#requestoptions-5)
+> `const` **POSSIBLE\_ROLES**: readonly \[`"user"`, `"model"`, `"function"`, `"system"`\]
-#### Returns
+Defined in: [types/enums.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L28)
-[`GenerativeModel`](#generativemodel)
+Possible roles.
***
-### getImagenModel()
+### ResponseModality
-> **getImagenModel**(`ai`, `modelParams`, `requestOptions?`): [`ImagenModel`](#imagenmodel)
+> `const` **ResponseModality**: `object`
-Defined in: [ai/lib/index.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L131)
+Defined in: [types/enums.ts:265](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/enums.ts#L265)
**`Beta`**
-Returns an [ImagenModel](#imagenmodel) class with methods for using Imagen.
-
-Only Imagen 3 models (named `imagen-3.0-*`) are supported.
-
-#### Parameters
-
-##### ai
-
-[`AI`](#ai)
-
-An [AI](#ai) instance.
-
-##### modelParams
-
-[`ImagenModelParams`](#imagenmodelparams)
-
-Parameters to use when making Imagen requests.
-
-##### requestOptions?
-
-[`RequestOptions`](#requestoptions-5)
-
-Additional options to use when making requests.
-
-#### Returns
-
-[`ImagenModel`](#imagenmodel)
-
-#### Throws
-
-If the `apiKey` or `projectId` fields are missing in your
-Firebase config.
-
-***
+Generation modalities to be returned in generation responses.
-### getLiveGenerativeModel()
+#### Type Declaration
-> **getLiveGenerativeModel**(`ai`, `modelParams`): [`LiveGenerativeModel`](#livegenerativemodel)
+##### AUDIO
-Defined in: [ai/lib/index.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L157)
+> `readonly` **AUDIO**: `"AUDIO"` = `'AUDIO'`
**`Beta`**
-Returns a [LiveGenerativeModel](#livegenerativemodel) class for real-time, bidirectional communication.
-
-The Live API is only supported in modern browser windows and Node >= 22.
-
-#### Parameters
-
-##### ai
-
-[`AI`](#ai)
-
-An [AI](#ai) instance.
-
-##### modelParams
-
-[`LiveModelParams`](#livemodelparams)
-
-Parameters to use when setting up a [LiveSession](#livesession).
-
-#### Returns
-
-[`LiveGenerativeModel`](#livegenerativemodel)
+Audio.
-#### Throws
+##### IMAGE
-If the `apiKey` or `projectId` fields are missing in your
-Firebase config.
+> `readonly` **IMAGE**: `"IMAGE"` = `'IMAGE'`
-***
+**`Beta`**
-### getTemplateGenerativeModel()
+Image.
-> **getTemplateGenerativeModel**(`ai`, `requestOptions?`): [`TemplateGenerativeModel`](#templategenerativemodel)
+##### TEXT
-Defined in: [ai/lib/index.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L176)
+> `readonly` **TEXT**: `"TEXT"` = `'TEXT'`
**`Beta`**
-Returns a [TemplateGenerativeModel](#templategenerativemodel) class for executing server-side Gemini templates.
-
-#### Parameters
+Text.
-##### ai
+***
-[`AI`](#ai)
+### URLRetrievalStatus
-An [AI](#ai) instance.
+> `const` **URLRetrievalStatus**: `object`
-##### requestOptions?
+Defined in: [types/responses.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/types/responses.ts#L212)
-[`RequestOptions`](#requestoptions-5)
+The status of a URL retrieval.
-Additional options to use when making requests.
+#### Type Declaration
-#### Returns
+##### URL\_RETRIEVAL\_STATUS\_ERROR
-[`TemplateGenerativeModel`](#templategenerativemodel)
+> `readonly` **URL\_RETRIEVAL\_STATUS\_ERROR**: `"URL_RETRIEVAL_STATUS_ERROR"` = `'URL_RETRIEVAL_STATUS_ERROR'`
-***
+The URL retrieval failed.
-### getTemplateImagenModel()
+##### URL\_RETRIEVAL\_STATUS\_PAYWALL
-> **getTemplateImagenModel**(`ai`, `requestOptions?`): [`TemplateImagenModel`](#templateimagenmodel)
+> `readonly` **URL\_RETRIEVAL\_STATUS\_PAYWALL**: `"URL_RETRIEVAL_STATUS_PAYWALL"` = `'URL_RETRIEVAL_STATUS_PAYWALL'`
-Defined in: [ai/lib/index.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/ai/lib/index.ts#L191)
+The URL retrieval failed because the content is behind a paywall.
-**`Beta`**
+##### URL\_RETRIEVAL\_STATUS\_SUCCESS
-Returns a [TemplateImagenModel](#templateimagenmodel) class for executing server-side Imagen templates.
+> `readonly` **URL\_RETRIEVAL\_STATUS\_SUCCESS**: `"URL_RETRIEVAL_STATUS_SUCCESS"` = `'URL_RETRIEVAL_STATUS_SUCCESS'`
-#### Parameters
+The URL retrieval was successful.
-##### ai
+##### URL\_RETRIEVAL\_STATUS\_UNSAFE
-[`AI`](#ai)
+> `readonly` **URL\_RETRIEVAL\_STATUS\_UNSAFE**: `"URL_RETRIEVAL_STATUS_UNSAFE"` = `'URL_RETRIEVAL_STATUS_UNSAFE'`
-An [AI](#ai) instance.
+The URL retrieval failed because the content is unsafe.
-##### requestOptions?
+##### URL\_RETRIEVAL\_STATUS\_UNSPECIFIED
-[`RequestOptions`](#requestoptions-5)
+> `readonly` **URL\_RETRIEVAL\_STATUS\_UNSPECIFIED**: `"URL_RETRIEVAL_STATUS_UNSPECIFIED"` = `'URL_RETRIEVAL_STATUS_UNSPECIFIED'`
-Additional options to use when making requests.
+Unspecified retrieval status.
-#### Returns
+#### Remarks
-[`TemplateImagenModel`](#templateimagenmodel)
+URL_RETRIEVAL_STATUS_UNSPECIFIED: Unspecified retrieval status.
+
+URL_RETRIEVAL_STATUS_SUCCESS: The URL retrieval was successful.
+
+URL_RETRIEVAL_STATUS_ERROR: The URL retrieval failed.
+
+URL_RETRIEVAL_STATUS_PAYWALL: The URL retrieval failed because the content is behind a paywall.
+
+URL_RETRIEVAL_STATUS_UNSAFE: The URL retrieval failed because the content is unsafe.
+
diff --git a/docs/reference/@react-native-firebase/analytics/README.mdx b/docs/reference/@react-native-firebase/analytics/README.mdx
new file mode 100644
index 0000000000..e1d486eeea
--- /dev/null
+++ b/docs/reference/@react-native-firebase/analytics/README.mdx
@@ -0,0 +1,5278 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/analytics
+
+# @react-native-firebase/analytics
+
+## Functions
+
+### getAnalytics()
+
+> **getAnalytics**(`app?`): [`Analytics`](#analytics)
+
+Defined in: [modular.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L51)
+
+Returns an Analytics instance for the given app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+#### Returns
+
+[`Analytics`](#analytics)
+
+***
+
+### getAppInstanceId()
+
+> **getAppInstanceId**(`analytics`): `Promise`\<`string` \| `null`\>
+
+Defined in: [modular.ts:458](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L458)
+
+Retrieve the app instance id of the application.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+#### Returns
+
+`Promise`\<`string` \| `null`\>
+
+***
+
+### getGoogleAnalyticsClientId()
+
+> **getGoogleAnalyticsClientId**(`analytics`): `Promise`\<`string`\>
+
+Defined in: [modular.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L71)
+
+Retrieves a unique Google Analytics identifier for the web client.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+#### Returns
+
+`Promise`\<`string`\>
+
+***
+
+### getSessionId()
+
+> **getSessionId**(`analytics`): `Promise`\<`number` \| `null`\>
+
+Defined in: [modular.ts:468](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L468)
+
+Retrieves the session id from the client.
+On iOS, Firebase SDK may return an error that is handled internally and may take many minutes to return a valid value. Check native debug logs for more details.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+#### Returns
+
+`Promise`\<`number` \| `null`\>
+
+***
+
+### initializeAnalytics()
+
+> **initializeAnalytics**(`app`, `_options?`): [`Analytics`](#analytics)
+
+Defined in: [modular.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L61)
+
+Returns an Analytics instance for the given app.
+
+#### Parameters
+
+##### app
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+##### \_options?
+
+[`AnalyticsSettings`](#analyticssettings)
+
+#### Returns
+
+[`Analytics`](#analytics)
+
+***
+
+### initiateOnDeviceConversionMeasurementWithEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithEmailAddress**(`analytics`, `emailAddress`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:935](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L935)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### emailAddress
+
+`string`
+
+Email address, properly formatted complete with domain name e.g, 'user@example.com'.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### initiateOnDeviceConversionMeasurementWithHashedEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithHashedEmailAddress**(`analytics`, `hashedEmailAddress`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:956](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L956)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### hashedEmailAddress
+
+`string`
+
+sha256-hashed of normalized email address, properly formatted complete with domain name e.g, 'user@example.com'
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Link
+
+https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
+
+***
+
+### initiateOnDeviceConversionMeasurementWithHashedPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithHashedPhoneNumber**(`analytics`, `hashedPhoneNumber`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:996](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L996)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+This is a no-op if you do not include '$RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion = true' in your Podfile
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### hashedPhoneNumber
+
+`string`
+
+sha256-hashed of normalized phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Link
+
+https://firebase.google.com/docs/tutorials/ads-ios-on-device-measurement/step-3#use-hashed-credentials
+
+***
+
+### initiateOnDeviceConversionMeasurementWithPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithPhoneNumber**(`analytics`, `phoneNumber`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:975](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L975)
+
+start privacy-sensitive on-device conversion management.
+This is iOS-only.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### phoneNumber
+
+`string`
+
+Phone number in E.164 format - that is a leading + sign, then up to 15 digits, no dashes or spaces.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### isSupported()
+
+> **isSupported**(): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:1016](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1016)
+
+Checks four different things.
+1. Checks if it's not a browser extension environment.
+2. Checks if cookies are enabled in current browser.
+3. Checks if IndexedDB is supported by the browser environment.
+4. Checks if the current browser context is valid for using IndexedDB.open().
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+***
+
+### logAddPaymentInfo()
+
+> **logAddPaymentInfo**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:519](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L519)
+
+E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user. Note: This is different from the in-app purchase event, which is reported automatically for Google Play-based apps.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`AddPaymentInfoEventParameters`](#addpaymentinfoeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddShippingInfo()
+
+> **logAddShippingInfo**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:538](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L538)
+
+Add Payment Info event. This event signifies that a user has submitted their payment information to your app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`AddShippingInfoParameters`](#addshippinginfoparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddToCart()
+
+> **logAddToCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:549](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L549)
+
+E-Commerce Add To Cart event.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`AddToCartEventParameters`](#addtocarteventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAddToWishlist()
+
+> **logAddToWishlist**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:560](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L560)
+
+E-Commerce Add To Wishlist event. This event signifies that an item was added to a wishlist.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`AddToWishlistEventParameters`](#addtowishlisteventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logAppOpen()
+
+> **logAppOpen**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:571](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L571)
+
+App Open event. By logging this event when an App is moved to the foreground, developers can understand how often users leave and return during the course of a Session.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logBeginCheckout()
+
+> **logBeginCheckout**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:579](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L579)
+
+E-Commerce Begin Checkout event. This event signifies that a user has begun the process of checking out.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`BeginCheckoutEventParameters`](#begincheckouteventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logCampaignDetails()
+
+> **logCampaignDetails**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:590](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L590)
+
+Log this event to supply the referral details of a re-engagement campaign.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`CampaignDetailsEventParameters`](#campaigndetailseventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logEarnVirtualCurrency()
+
+> **logEarnVirtualCurrency**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:601](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L601)
+
+Earn Virtual Currency event. This event tracks the awarding of virtual currency in your app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`EarnVirtualCurrencyEventParameters`](#earnvirtualcurrencyeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logEvent()
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:84](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L84)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"add_payment_info"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### payment_type?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L97)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"add_shipping_info"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### shipping_tier?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L110)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"add_to_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L121)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"add_to_wishlist"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L132)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"begin_checkout"`
+
+###### params?
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:145](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L145)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"checkout_progress"`
+
+###### params?
+
+###### checkout_option?
+
+`string`
+
+###### checkout_step?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L156)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"exception"`
+
+###### params?
+
+###### description?
+
+`string`
+
+###### fatal?
+
+`boolean`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:167](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L167)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"generate_lead"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L177)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"login"`
+
+###### params
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:186](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L186)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"page_view"`
+
+###### params?
+
+###### page_location?
+
+`string`
+
+###### page_path?
+
+`string`
+
+###### page_title?
+
+`string`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:198](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L198)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"purchase"`
+
+###### params?
+
+###### affiliation?
+
+`string`
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### shipping?
+
+`number`
+
+###### tax?
+
+`number`
+
+###### transaction_id?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:215](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L215)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"refund"`
+
+###### params?
+
+###### affiliation?
+
+`string`
+
+###### coupon?
+
+`string`
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### shipping?
+
+`number`
+
+###### tax?
+
+`number`
+
+###### transaction_id?
+
+`string`
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L231)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"remove_from_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L242)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"screen_view"`
+
+###### params?
+
+###### screen_class?
+
+`unknown`
+
+###### screen_name?
+
+`string`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L253)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"search"`
+
+###### params
+
+###### destination?
+
+`string`
+
+###### end_date?
+
+`string`
+
+###### number_of_nights?
+
+`number`
+
+###### number_of_passengers?
+
+`number`
+
+###### number_of_rooms?
+
+`number`
+
+###### origin?
+
+`string`
+
+###### search_term
+
+`string` \| `undefined`
+
+###### start_date?
+
+`string`
+
+###### travel_class?
+
+`string`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L270)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"select_content"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_id
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:280](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L280)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"select_item"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_list_id
+
+`string` \| `undefined`
+
+###### item_list_name
+
+`string` \| `undefined`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:292](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L292)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"select_promotion"`
+
+###### params
+
+###### creative_name
+
+`string`
+
+###### creative_slot
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### location_id
+
+`string`
+
+###### promotion_id
+
+`string` \| `undefined`
+
+###### promotion_name
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L306)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"set_checkout_option"`
+
+###### params?
+
+###### checkout_option?
+
+`string`
+
+###### checkout_step?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L317)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"share"`
+
+###### params
+
+###### content_type
+
+`string` \| `undefined`
+
+###### item_id
+
+`string` \| `undefined`
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:328](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L328)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"sign_up"`
+
+###### params
+
+###### method
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:337](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L337)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"timing_complete"`
+
+###### params?
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:346](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L346)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"view_cart"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:357](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L357)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"view_item"`
+
+###### params?
+
+###### currency?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### value?
+
+`number`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:368](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L368)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"view_item_list"`
+
+###### params?
+
+###### item_list_id?
+
+`string`
+
+###### item_list_name?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:379](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L379)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"view_promotion"`
+
+###### params?
+
+###### creative_name?
+
+`string`
+
+###### creative_slot?
+
+`string`
+
+###### items?
+
+[`Item`](#item)[]
+
+###### location_id?
+
+`string`
+
+###### promotion_id?
+
+`string`
+
+###### promotion_name?
+
+`string`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**(`analytics`, `name`, `params`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:393](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L393)
+
+Log a custom event with optional params.
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+`"view_search_results"`
+
+###### params
+
+###### search_term
+
+`string` \| `undefined`
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+#### Call Signature
+
+> **logEvent**\<`T`\>(`analytics`, `name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:403](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L403)
+
+Log a custom event with optional params.
+
+##### Type Parameters
+
+###### T
+
+`T` *extends* `string`
+
+##### Parameters
+
+###### analytics
+
+[`Analytics`](#analytics)
+
+###### name
+
+[`CustomEventName`](#customeventname)\<`T`\>
+
+###### params?
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logGenerateLead()
+
+> **logGenerateLead**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:612](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L612)
+
+Generate Lead event. Log this event when a lead has been generated in the app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`GenerateLeadEventParameters`](#generateleadeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logJoinGroup()
+
+> **logJoinGroup**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:623](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L623)
+
+Join Group event. Log this event when a user joins a group such as a guild, team or family.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`JoinGroupEventParameters`](#joingroupeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelEnd()
+
+> **logLevelEnd**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:634](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L634)
+
+Level End event.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`LevelEndEventParameters`](#levelendeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelStart()
+
+> **logLevelStart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:642](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L642)
+
+Level Start event.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`LevelStartEventParameters`](#levelstarteventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLevelUp()
+
+> **logLevelUp**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:653](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L653)
+
+Level Up event. This event signifies that a player has leveled up in your gaming app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`LevelUpEventParameters`](#levelupeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logLogin()
+
+> **logLogin**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:661](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L661)
+
+Login event. Apps with a login feature can report this event to signify that a user has logged in.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`LoginEventParameters`](#logineventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logPostScore()
+
+> **logPostScore**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:669](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L669)
+
+Post Score event. Log this event when the user posts a score in your gaming app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`PostScoreEventParameters`](#postscoreeventparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logPurchase()
+
+> **logPurchase**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:697](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L697)
+
+E-Commerce Purchase event. This event signifies that an item(s) was purchased by a user.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`PurchaseEventParameters`](#purchaseeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logRefund()
+
+> **logRefund**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:708](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L708)
+
+E-Commerce Refund event. This event signifies that a refund was issued.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`RefundEventParameters`](#refundeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logRemoveFromCart()
+
+> **logRemoveFromCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:719](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L719)
+
+Remove from cart event.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`RemoveFromCartEventParameters`](#removefromcarteventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logScreenView()
+
+> **logScreenView**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:530](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L530)
+
+Sets or clears the screen name and class the user is currently viewing.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### params
+
+[`ScreenViewParameters`](#screenviewparameters)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSearch()
+
+> **logSearch**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:733](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L733)
+
+Search event. Apps that support search features can use this event to contextualize search operations by supplying the appropriate, corresponding parameters.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SearchEventParameters`](#searcheventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectContent()
+
+> **logSelectContent**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:683](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L683)
+
+Select Content event. This general purpose event signifies that a user has selected some content of a certain type in an app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SelectContentEventParameters`](#selectcontenteventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectItem()
+
+> **logSelectItem**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:744](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L744)
+
+Select Item event. This event signifies that an item was selected by a user from a list.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SelectItemEventParameters`](#selectitemeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSelectPromotion()
+
+> **logSelectPromotion**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:772](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L772)
+
+Select promotion event. This event signifies that a user has selected a promotion offer.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SelectPromotionEventParameters`](#selectpromotioneventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSetCheckoutOption()
+
+> **logSetCheckoutOption**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:758](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L758)
+
+Set checkout option event.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SetCheckoutOptionEventParameters`](#setcheckoutoptioneventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logShare()
+
+> **logShare**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:786](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L786)
+
+Share event. Apps with social features can log the Share event to identify the most viral content.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ShareEventParameters`](#shareeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSignUp()
+
+> **logSignUp**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:797](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L797)
+
+Sign Up event. This event indicates that a user has signed up for an account in your app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SignUpEventParameters`](#signupeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logSpendVirtualCurrency()
+
+> **logSpendVirtualCurrency**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:808](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L808)
+
+Spend Virtual Currency event. This event tracks the sale of virtual goods in your app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`SpendVirtualCurrencyEventParameters`](#spendvirtualcurrencyeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logTransaction()
+
+> **logTransaction**(`analytics`, `transaction_id`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:424](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L424)
+
+Logs verified in-app purchase events in Google Analytics for Firebase
+after a purchase is successful.
+Modular API only; iOS only (StoreKit 2). Throws on Android and web before reaching native.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### transaction\_id
+
+`string`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logTutorialBegin()
+
+> **logTutorialBegin**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:821](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L821)
+
+Tutorial Begin event. This event signifies the start of the on-boarding process in your app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logTutorialComplete()
+
+> **logTutorialComplete**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:831](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L831)
+
+Tutorial End event. Use this event to signify the user's completion of your app's on-boarding process.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logUnlockAchievement()
+
+> **logUnlockAchievement**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:842](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L842)
+
+Unlock Achievement event. Log this event when the user has unlocked an achievement in your game.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`UnlockAchievementEventParameters`](#unlockachievementeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewCart()
+
+> **logViewCart**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:856](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L856)
+
+E-commerce View Cart event. This event signifies that a user has viewed their cart.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ViewCartEventParameters`](#viewcarteventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewItem()
+
+> **logViewItem**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:867](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L867)
+
+View Item event. This event signifies that some content was shown to the user.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ViewItemEventParameters`](#viewitemeventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewItemList()
+
+> **logViewItemList**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:878](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L878)
+
+View Item List event. Log this event when the user has been presented with a list of items of a certain category.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ViewItemListEventParameters`](#viewitemlisteventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewPromotion()
+
+> **logViewPromotion**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:892](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L892)
+
+View Promotion event. This event signifies that a promotion was shown to a user.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ViewPromotionEventParameters`](#viewpromotioneventparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### logViewSearchResults()
+
+> **logViewSearchResults**(`analytics`, `params`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:906](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L906)
+
+View Search Results event. Log this event when the user has been presented with the results of a search.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params
+
+[`ViewSearchResultsParameters`](#viewsearchresultsparameters)
+
+Event parameters.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### resetAnalyticsData()
+
+> **resetAnalyticsData**(`analytics`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:510](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L510)
+
+Clears all analytics data for this instance from the device and resets the app instance ID.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setAnalyticsCollectionEnabled()
+
+> **setAnalyticsCollectionEnabled**(`analytics`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:435](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L435)
+
+If true, allows the device to collect analytical data and send it to Firebase. Useful for GDPR.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### enabled
+
+`boolean`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setConsent()
+
+> **setConsent**(`analytics`, `consentSettings`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:1026](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1026)
+
+Sets the applicable end user consent state for this app.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### consentSettings
+
+[`ConsentSettings`](#consentsettings)
+
+See ConsentSettings.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setDefaultEventParameters()
+
+> **setDefaultEventParameters**(`analytics`, `params?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:920](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L920)
+
+Adds parameters that will be set on every event logged from the SDK, including automatic ones.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+Analytics instance.
+
+##### params?
+
+Parameters to be added to the map of parameters added to every event.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setSessionTimeoutDuration()
+
+> **setSessionTimeoutDuration**(`analytics`, `milliseconds?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:446](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L446)
+
+Sets the duration of inactivity that terminates the current session.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### milliseconds?
+
+`number` = `1800000`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### settings()
+
+> **settings**(`_options`): `void`
+
+Defined in: [modular.ts:1037](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L1037)
+
+Configures Firebase Analytics to use custom gtag or dataLayer names.
+Intended to be used if gtag.js script has been installed on this page independently of Firebase Analytics, and is using non-default names for either the gtag function or for dataLayer. Must be called before calling `getAnalytics()` or it won't have any effect. Web only.
+
+#### Parameters
+
+##### \_options
+
+[`SettingsOptions`](#settingsoptions)
+
+#### Returns
+
+`void`
+
+***
+
+### setUserId()
+
+> **setUserId**(`analytics`, `id`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:477](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L477)
+
+Gives a user a unique identification.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### id
+
+`string` \| `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setUserProperties()
+
+> **setUserProperties**(`analytics`, `properties`, `options?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:498](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L498)
+
+Sets multiple key/value pairs of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### properties
+
+##### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions) = `...`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setUserProperty()
+
+> **setUserProperty**(`analytics`, `name`, `value`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:485](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/modular.ts#L485)
+
+Sets a key/value pair of data on the current user. Each Firebase project can have up to 25 uniquely named (case-sensitive) user properties.
+
+#### Parameters
+
+##### analytics
+
+[`Analytics`](#analytics)
+
+##### name
+
+`string`
+
+##### value
+
+`string` \| `null`
+
+#### Returns
+
+`Promise`\<`void`\>
+
+## Interfaces
+
+### AddPaymentInfoEventParameters
+
+Defined in: [types/analytics.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L134)
+
+#### Properties
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L144)
+
+Coupon code for a purchasable item.
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L139)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:135](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L135)
+
+##### payment\_type?
+
+> `optional` **payment\_type?**: `string`
+
+Defined in: [types/analytics.ts:148](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L148)
+
+The chosen method of payment
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:140](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L140)
+
+***
+
+### AddShippingInfoParameters
+
+Defined in: [types/analytics.ts:637](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L637)
+
+#### Properties
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:652](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L652)
+
+Coupon code for a purchasable item.
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:642](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L642)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:638](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L638)
+
+##### shipping\_tier?
+
+> `optional` **shipping\_tier?**: `string`
+
+Defined in: [types/analytics.ts:656](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L656)
+
+The shipping tier (e.g. Ground, Air, Next-day) selected for delivery of the purchased item
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:648](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L648)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### AddToCartEventParameters
+
+Defined in: [types/analytics.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L168)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:173](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L173)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:169](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L169)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L177)
+
+value of item
+
+***
+
+### AddToWishlistEventParameters
+
+Defined in: [types/analytics.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L180)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L185)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L181)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:186](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L186)
+
+***
+
+### Analytics
+
+Defined in: [types/analytics.ts:881](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L881)
+
+Analytics module instance - returned from firebase.analytics() or firebase.app().analytics()
+
+#### Extends
+
+- [`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Methods
+
+##### getAppInstanceId()
+
+> **getAppInstanceId**(): `Promise`\<`string` \| `null`\>
+
+Defined in: [types/analytics.ts:895](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L895)
+
+###### Returns
+
+`Promise`\<`string` \| `null`\>
+
+##### getSessionId()
+
+> **getSessionId**(): `Promise`\<`number` \| `null`\>
+
+Defined in: [types/analytics.ts:897](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L897)
+
+###### Returns
+
+`Promise`\<`number` \| `null`\>
+
+##### initiateOnDeviceConversionMeasurementWithEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithEmailAddress**(`emailAddress`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:953](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L953)
+
+###### Parameters
+
+###### emailAddress
+
+`string`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### initiateOnDeviceConversionMeasurementWithHashedEmailAddress()
+
+> **initiateOnDeviceConversionMeasurementWithHashedEmailAddress**(`hashedEmailAddress`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:954](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L954)
+
+###### Parameters
+
+###### hashedEmailAddress
+
+`string`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### initiateOnDeviceConversionMeasurementWithHashedPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithHashedPhoneNumber**(`hashedPhoneNumber`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:958](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L958)
+
+###### Parameters
+
+###### hashedPhoneNumber
+
+`string`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### initiateOnDeviceConversionMeasurementWithPhoneNumber()
+
+> **initiateOnDeviceConversionMeasurementWithPhoneNumber**(`phoneNumber`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:957](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L957)
+
+###### Parameters
+
+###### phoneNumber
+
+`string`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logAddPaymentInfo()
+
+> **logAddPaymentInfo**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:915](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L915)
+
+###### Parameters
+
+###### object
+
+[`AddPaymentInfoEventParameters`](#addpaymentinfoeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logAddShippingInfo()
+
+> **logAddShippingInfo**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:917](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L917)
+
+###### Parameters
+
+###### object?
+
+[`AddShippingInfoParameters`](#addshippinginfoparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logAddToCart()
+
+> **logAddToCart**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:918](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L918)
+
+###### Parameters
+
+###### object?
+
+[`AddToCartEventParameters`](#addtocarteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logAddToWishlist()
+
+> **logAddToWishlist**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:919](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L919)
+
+###### Parameters
+
+###### object?
+
+[`AddToWishlistEventParameters`](#addtowishlisteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logAppOpen()
+
+> **logAppOpen**(): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:920](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L920)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logBeginCheckout()
+
+> **logBeginCheckout**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:921](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L921)
+
+###### Parameters
+
+###### object?
+
+[`BeginCheckoutEventParameters`](#begincheckouteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logCampaignDetails()
+
+> **logCampaignDetails**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:922](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L922)
+
+###### Parameters
+
+###### object
+
+[`CampaignDetailsEventParameters`](#campaigndetailseventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logEarnVirtualCurrency()
+
+> **logEarnVirtualCurrency**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:923](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L923)
+
+###### Parameters
+
+###### object
+
+[`EarnVirtualCurrencyEventParameters`](#earnvirtualcurrencyeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logEvent()
+
+> **logEvent**(`name`, `params?`, `options?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:885](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L885)
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### params?
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logGenerateLead()
+
+> **logGenerateLead**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:924](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L924)
+
+###### Parameters
+
+###### object?
+
+[`GenerateLeadEventParameters`](#generateleadeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logJoinGroup()
+
+> **logJoinGroup**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:925](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L925)
+
+###### Parameters
+
+###### object
+
+[`JoinGroupEventParameters`](#joingroupeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logLevelEnd()
+
+> **logLevelEnd**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:926](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L926)
+
+###### Parameters
+
+###### object
+
+[`LevelEndEventParameters`](#levelendeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logLevelStart()
+
+> **logLevelStart**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:927](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L927)
+
+###### Parameters
+
+###### object
+
+[`LevelStartEventParameters`](#levelstarteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logLevelUp()
+
+> **logLevelUp**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:928](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L928)
+
+###### Parameters
+
+###### object
+
+[`LevelUpEventParameters`](#levelupeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logLogin()
+
+> **logLogin**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:929](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L929)
+
+###### Parameters
+
+###### object
+
+[`LoginEventParameters`](#logineventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logPostScore()
+
+> **logPostScore**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:930](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L930)
+
+###### Parameters
+
+###### object
+
+[`PostScoreEventParameters`](#postscoreeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logPurchase()
+
+> **logPurchase**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:932](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L932)
+
+###### Parameters
+
+###### object?
+
+[`PurchaseEventParameters`](#purchaseeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logRefund()
+
+> **logRefund**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:933](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L933)
+
+###### Parameters
+
+###### object?
+
+[`RefundEventParameters`](#refundeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logRemoveFromCart()
+
+> **logRemoveFromCart**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:934](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L934)
+
+###### Parameters
+
+###### object?
+
+[`RemoveFromCartEventParameters`](#removefromcarteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logScreenView()
+
+> **logScreenView**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:916](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L916)
+
+###### Parameters
+
+###### object
+
+[`ScreenViewParameters`](#screenviewparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSearch()
+
+> **logSearch**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:935](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L935)
+
+###### Parameters
+
+###### object
+
+[`SearchEventParameters`](#searcheventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSelectContent()
+
+> **logSelectContent**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:931](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L931)
+
+###### Parameters
+
+###### object
+
+[`SelectContentEventParameters`](#selectcontenteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSelectItem()
+
+> **logSelectItem**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:936](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L936)
+
+###### Parameters
+
+###### object
+
+[`SelectItemEventParameters`](#selectitemeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSelectPromotion()
+
+> **logSelectPromotion**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:938](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L938)
+
+###### Parameters
+
+###### object
+
+[`SelectPromotionEventParameters`](#selectpromotioneventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSetCheckoutOption()
+
+> **logSetCheckoutOption**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:937](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L937)
+
+###### Parameters
+
+###### object
+
+[`SetCheckoutOptionEventParameters`](#setcheckoutoptioneventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logShare()
+
+> **logShare**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:939](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L939)
+
+###### Parameters
+
+###### object
+
+[`ShareEventParameters`](#shareeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSignUp()
+
+> **logSignUp**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:940](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L940)
+
+###### Parameters
+
+###### object
+
+[`SignUpEventParameters`](#signupeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logSpendVirtualCurrency()
+
+> **logSpendVirtualCurrency**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:941](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L941)
+
+###### Parameters
+
+###### object
+
+[`SpendVirtualCurrencyEventParameters`](#spendvirtualcurrencyeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logTransaction()
+
+> **logTransaction**(`transaction_id`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:942](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L942)
+
+###### Parameters
+
+###### transaction\_id
+
+`string`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logTutorialBegin()
+
+> **logTutorialBegin**(): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:943](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L943)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logTutorialComplete()
+
+> **logTutorialComplete**(): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:944](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L944)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logUnlockAchievement()
+
+> **logUnlockAchievement**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:945](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L945)
+
+###### Parameters
+
+###### object
+
+[`UnlockAchievementEventParameters`](#unlockachievementeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logViewCart()
+
+> **logViewCart**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:946](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L946)
+
+###### Parameters
+
+###### object?
+
+[`ViewCartEventParameters`](#viewcarteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logViewItem()
+
+> **logViewItem**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:947](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L947)
+
+###### Parameters
+
+###### object?
+
+[`ViewItemEventParameters`](#viewitemeventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logViewItemList()
+
+> **logViewItemList**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:948](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L948)
+
+###### Parameters
+
+###### object?
+
+[`ViewItemListEventParameters`](#viewitemlisteventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logViewPromotion()
+
+> **logViewPromotion**(`object?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:949](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L949)
+
+###### Parameters
+
+###### object?
+
+[`ViewPromotionEventParameters`](#viewpromotioneventparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### logViewSearchResults()
+
+> **logViewSearchResults**(`object`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:950](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L950)
+
+###### Parameters
+
+###### object
+
+[`ViewSearchResultsParameters`](#viewsearchresultsparameters)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### resetAnalyticsData()
+
+> **resetAnalyticsData**(): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:908](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L908)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setAnalyticsCollectionEnabled()
+
+> **setAnalyticsCollectionEnabled**(`enabled`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:891](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L891)
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setConsent()
+
+> **setConsent**(`consentSettings`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:910](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L910)
+
+###### Parameters
+
+###### consentSettings
+
+[`ConsentSettings`](#consentsettings)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setDefaultEventParameters()
+
+> **setDefaultEventParameters**(`params?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:912](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L912)
+
+###### Parameters
+
+###### params?
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setSessionTimeoutDuration()
+
+> **setSessionTimeoutDuration**(`milliseconds?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:893](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L893)
+
+###### Parameters
+
+###### milliseconds?
+
+`number`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setUserId()
+
+> **setUserId**(`id`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:899](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L899)
+
+###### Parameters
+
+###### id
+
+`string` \| `null`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setUserProperties()
+
+> **setUserProperties**(`properties`, `options?`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:903](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L903)
+
+###### Parameters
+
+###### properties
+
+###### options?
+
+[`AnalyticsCallOptions`](#analyticscalloptions)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setUserProperty()
+
+> **setUserProperty**(`name`, `value`): `Promise`\<`void`\>
+
+Defined in: [types/analytics.ts:901](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L901)
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### value
+
+`string` \| `null`
+
+###### Returns
+
+`Promise`\<`void`\>
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/analytics.ts:883](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L883)
+
+The FirebaseApp this module is associated with
+
+###### Overrides
+
+[`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../app/namespaces/ReactNativeFirebase.mdx#app)
+
+***
+
+### AnalyticsCallOptions
+
+Defined in: [types/analytics.ts:730](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L730)
+
+Additional options that can be passed to Analytics method calls such as logEvent. Web only.
+
+#### Properties
+
+##### global
+
+> **global**: `boolean`
+
+Defined in: [types/analytics.ts:734](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L734)
+
+If true, this config or event call applies globally to all Google Analytics properties on the page. Web only.
+
+***
+
+### AnalyticsSettings
+
+Defined in: [types/analytics.ts:723](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L723)
+
+Analytics instance initialization options. Web only.
+
+#### Properties
+
+##### config?
+
+> `optional` **config?**: [`EventParams`](#eventparams) \| [`GtagConfigParams`](#gtagconfigparams)
+
+Defined in: [types/analytics.ts:724](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L724)
+
+***
+
+### BeginCheckoutEventParameters
+
+Defined in: [types/analytics.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L189)
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+Custom event parameters.
+
+#### Properties
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:199](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L199)
+
+Coupon code for a purchasable item.
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L194)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L201)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:195](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L195)
+
+***
+
+### CampaignDetailsEventParameters
+
+Defined in: [types/analytics.ts:208](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L208)
+
+#### Properties
+
+##### aclid?
+
+> `optional` **aclid?**: `string`
+
+Defined in: [types/analytics.ts:232](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L232)
+
+A campaign detail click ID.
+
+##### campaign
+
+> **campaign**: `string`
+
+Defined in: [types/analytics.ts:220](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L220)
+
+Used for keyword analysis to identify a specific product promotion or strategic campaign.
+
+##### content?
+
+> `optional` **content?**: `string`
+
+Defined in: [types/analytics.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L228)
+
+Used for A/B testing and content-targeted ads to differentiate ads or links that point to the same URL.
+
+##### cp1?
+
+> `optional` **cp1?**: `string`
+
+Defined in: [types/analytics.ts:233](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L233)
+
+##### medium
+
+> **medium**: `string`
+
+Defined in: [types/analytics.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L216)
+
+Used to identify a medium such as email or cost-per-click (cpc).
+
+##### source
+
+> **source**: `string`
+
+Defined in: [types/analytics.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L212)
+
+Used to identify a search engine, newsletter, or other source.
+
+##### term?
+
+> `optional` **term?**: `string`
+
+Defined in: [types/analytics.ts:224](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L224)
+
+Used with paid search to supply the keywords for ads.
+
+***
+
+### ConsentSettings
+
+Defined in: [types/analytics.ts:804](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L804)
+
+Consent status settings for each consent type.
+For more information, see
+[the GA4 reference documentation for consent state and consent types](https://developers.google.com/tag-platform/tag-manager/templates/consent-apis).
+
+#### Indexable
+
+> \[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### ad\_personalization?
+
+> `optional` **ad\_personalization?**: `boolean`
+
+Defined in: [types/analytics.ts:810](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L810)
+
+Sets consent for personalized advertising
+
+##### ad\_storage?
+
+> `optional` **ad\_storage?**: `boolean`
+
+Defined in: [types/analytics.ts:806](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L806)
+
+Enables storage, such as cookies, related to advertising
+
+##### ad\_user\_data?
+
+> `optional` **ad\_user\_data?**: `boolean`
+
+Defined in: [types/analytics.ts:808](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L808)
+
+Sets consent for sending user data to Google for online advertising purposes
+
+##### analytics\_storage?
+
+> `optional` **analytics\_storage?**: `boolean`
+
+Defined in: [types/analytics.ts:812](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L812)
+
+Enables storage, such as cookies, related to analytics (for example, visit duration)
+
+##### functionality\_storage?
+
+> `optional` **functionality\_storage?**: `boolean`
+
+Defined in: [types/analytics.ts:816](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L816)
+
+Enables storage that supports the functionality of the website or app such as language settings
+
+##### personalization\_storage?
+
+> `optional` **personalization\_storage?**: `boolean`
+
+Defined in: [types/analytics.ts:818](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L818)
+
+Enables storage related to personalization such as video recommendations
+
+##### security\_storage?
+
+> `optional` **security\_storage?**: [`ConsentStatusString`](#consentstatusstring)
+
+Defined in: [types/analytics.ts:823](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L823)
+
+Enables storage related to security such as authentication functionality, fraud prevention,
+and other user protection.
+
+***
+
+### EarnVirtualCurrencyEventParameters
+
+Defined in: [types/analytics.ts:245](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L245)
+
+#### Properties
+
+##### value
+
+> **value**: `number`
+
+Defined in: [types/analytics.ts:254](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L254)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points.
+
+##### virtual\_currency\_name
+
+> **virtual\_currency\_name**: `string`
+
+Defined in: [types/analytics.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L249)
+
+Name of virtual currency type. E.g. `gems`.
+
+***
+
+### EventParams
+
+Defined in: [types/analytics.ts:662](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L662)
+
+Standard gtag.js event parameters. For more information, see the GA4 reference documentation. Web only.
+
+#### Indexable
+
+> \[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### affiliation?
+
+> `optional` **affiliation?**: `string`
+
+Defined in: [types/analytics.ts:697](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L697)
+
+##### checkout\_option?
+
+> `optional` **checkout\_option?**: `string`
+
+Defined in: [types/analytics.ts:663](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L663)
+
+##### checkout\_step?
+
+> `optional` **checkout\_step?**: `number`
+
+Defined in: [types/analytics.ts:664](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L664)
+
+##### content\_type?
+
+> `optional` **content\_type?**: `string`
+
+Defined in: [types/analytics.ts:666](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L666)
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:667](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L667)
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:668](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L668)
+
+##### description?
+
+> `optional` **description?**: `string`
+
+Defined in: [types/analytics.ts:669](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L669)
+
+##### event\_category?
+
+> `optional` **event\_category?**: `string`
+
+Defined in: [types/analytics.ts:690](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L690)
+
+##### event\_label?
+
+> `optional` **event\_label?**: `string`
+
+Defined in: [types/analytics.ts:689](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L689)
+
+##### fatal?
+
+> `optional` **fatal?**: `boolean`
+
+Defined in: [types/analytics.ts:670](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L670)
+
+##### firebase\_screen?
+
+> `optional` **firebase\_screen?**: `string`
+
+Defined in: [types/analytics.ts:679](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L679)
+
+Firebase-specific. Use to log a `screen_name` to Firebase Analytics.
+
+##### firebase\_screen\_class?
+
+> `optional` **firebase\_screen\_class?**: `string`
+
+Defined in: [types/analytics.ts:683](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L683)
+
+Firebase-specific. Use to log a `screen_class` to Firebase Analytics.
+
+##### item\_id?
+
+> `optional` **item\_id?**: `string`
+
+Defined in: [types/analytics.ts:665](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L665)
+
+##### item\_list\_id?
+
+> `optional` **item\_list\_id?**: `string`
+
+Defined in: [types/analytics.ts:692](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L692)
+
+##### item\_list\_name?
+
+> `optional` **item\_list\_name?**: `string`
+
+Defined in: [types/analytics.ts:693](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L693)
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:671](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L671)
+
+##### method?
+
+> `optional` **method?**: `string`
+
+Defined in: [types/analytics.ts:672](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L672)
+
+##### number?
+
+> `optional` **number?**: `string`
+
+Defined in: [types/analytics.ts:673](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L673)
+
+##### page\_location?
+
+> `optional` **page\_location?**: `string`
+
+Defined in: [types/analytics.ts:699](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L699)
+
+##### page\_path?
+
+> `optional` **page\_path?**: `string`
+
+Defined in: [types/analytics.ts:700](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L700)
+
+##### page\_title?
+
+> `optional` **page\_title?**: `string`
+
+Defined in: [types/analytics.ts:698](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L698)
+
+##### payment\_type?
+
+> `optional` **payment\_type?**: `string`
+
+Defined in: [types/analytics.ts:696](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L696)
+
+##### promotion\_id?
+
+> `optional` **promotion\_id?**: `string`
+
+Defined in: [types/analytics.ts:694](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L694)
+
+##### promotion\_name?
+
+> `optional` **promotion\_name?**: `string`
+
+Defined in: [types/analytics.ts:695](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L695)
+
+##### promotions?
+
+> `optional` **promotions?**: [`Promotion`](#promotion)[]
+
+Defined in: [types/analytics.ts:674](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L674)
+
+##### screen\_name?
+
+> `optional` **screen\_name?**: `string`
+
+Defined in: [types/analytics.ts:675](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L675)
+
+##### search\_term?
+
+> `optional` **search\_term?**: `string`
+
+Defined in: [types/analytics.ts:684](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L684)
+
+##### shipping?
+
+> `optional` **shipping?**: `number`
+
+Defined in: [types/analytics.ts:685](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L685)
+
+##### shipping\_tier?
+
+> `optional` **shipping\_tier?**: `string`
+
+Defined in: [types/analytics.ts:691](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L691)
+
+##### tax?
+
+> `optional` **tax?**: `number`
+
+Defined in: [types/analytics.ts:686](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L686)
+
+##### transaction\_id?
+
+> `optional` **transaction\_id?**: `string`
+
+Defined in: [types/analytics.ts:687](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L687)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:688](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L688)
+
+***
+
+### GenerateLeadEventParameters
+
+Defined in: [types/analytics.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L257)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L261)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:267](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L267)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### GtagConfigParams
+
+Defined in: [types/analytics.ts:740](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L740)
+
+A set of common Google Analytics config settings recognized by gtag.js. Web only.
+
+#### Indexable
+
+> \[`key`: `string`\]: `unknown`
+
+#### Properties
+
+##### allow\_ad\_personalization\_signals?
+
+> `optional` **allow\_ad\_personalization\_signals?**: `boolean`
+
+Defined in: [types/analytics.ts:793](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L793)
+
+If set to false, disables all advertising personalization with `gtag.js`.
+See [Disable advertising features](https://developers.google.com/analytics/devguides/collection/ga4/display-features)
+
+##### allow\_google\_signals?
+
+> `optional` **allow\_google\_signals?**: `boolean`
+
+Defined in: [types/analytics.ts:788](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L788)
+
+If set to false, disables all advertising features with `gtag.js`.
+See [Disable advertising features](https://developers.google.com/analytics/devguides/collection/ga4/display-features)
+
+##### cookie\_domain?
+
+> `optional` **cookie\_domain?**: `string`
+
+Defined in: [types/analytics.ts:762](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L762)
+
+Defaults to `auto`.
+See [Cookies and user identification](https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id)
+
+##### cookie\_expires?
+
+> `optional` **cookie\_expires?**: `number`
+
+Defined in: [types/analytics.ts:767](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L767)
+
+Defaults to 63072000 (two years, in seconds).
+See [Cookies and user identification](https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id)
+
+##### cookie\_flags?
+
+> `optional` **cookie\_flags?**: `string`
+
+Defined in: [types/analytics.ts:783](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L783)
+
+Appends additional flags to the cookie when set.
+See [Cookies and user identification](https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id)
+
+##### cookie\_prefix?
+
+> `optional` **cookie\_prefix?**: `string`
+
+Defined in: [types/analytics.ts:772](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L772)
+
+Defaults to `_ga`.
+See [Cookies and user identification](https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id)
+
+##### cookie\_update?
+
+> `optional` **cookie\_update?**: `boolean`
+
+Defined in: [types/analytics.ts:778](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L778)
+
+If set to true, will update cookies on each page load.
+Defaults to true.
+See [Cookies and user identification](https://developers.google.com/analytics/devguides/collection/ga4/cookies-user-id)
+
+##### page\_location?
+
+> `optional` **page\_location?**: `string`
+
+Defined in: [types/analytics.ts:757](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L757)
+
+The URL of the page.
+See [Page views](https://developers.google.com/analytics/devguides/collection/ga4/page-view)
+
+##### page\_title?
+
+> `optional` **page\_title?**: `string`
+
+Defined in: [types/analytics.ts:752](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L752)
+
+The title of the page.
+See [Page views](https://developers.google.com/analytics/devguides/collection/ga4/page-view)
+
+##### send\_page\_view?
+
+> `optional` **send\_page\_view?**: `boolean`
+
+Defined in: [types/analytics.ts:747](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L747)
+
+Whether or not a page view should be sent.
+If set to true (default), a page view is automatically sent upon initialization
+of analytics.
+See [Page views](https://developers.google.com/analytics/devguides/collection/ga4/page-view)
+
+***
+
+### Item
+
+Defined in: [types/analytics.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L36)
+
+#### Indexable
+
+> \[`key`: `string`\]: `string` \| `number` \| `undefined`
+
+Custom event parameters. The parameter names can be up to 40 characters long and must start with an alphabetic character and contain only alphanumeric characters and underscores. String parameter values can be up to 100 characters long.
+The "firebase_", "google_" and "ga_" prefixes are reserved and should not be used for parameter names.
+
+#### Properties
+
+##### affiliation?
+
+> `optional` **affiliation?**: `string`
+
+Defined in: [types/analytics.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L98)
+
+The affiliation of the item.
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L102)
+
+The coupon associated with the item.
+
+##### creative\_name?
+
+> `optional` **creative\_name?**: `string`
+
+Defined in: [types/analytics.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L106)
+
+The creative name associated with the item.
+
+##### creative\_slot?
+
+> `optional` **creative\_slot?**: `string`
+
+Defined in: [types/analytics.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L110)
+
+The creative slot associated with the item.
+
+##### discount?
+
+> `optional` **discount?**: `number`
+
+Defined in: [types/analytics.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L114)
+
+The discount applied to the item.
+
+##### index?
+
+> `optional` **index?**: `number`
+
+Defined in: [types/analytics.ts:118](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L118)
+
+The index of the item.
+
+##### item\_brand?
+
+> `optional` **item\_brand?**: `string`
+
+Defined in: [types/analytics.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L40)
+
+The item's brand.
+
+##### item\_category?
+
+> `optional` **item\_category?**: `string`
+
+Defined in: [types/analytics.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L52)
+
+First class item category.
+
+##### item\_category2?
+
+> `optional` **item\_category2?**: `string`
+
+Defined in: [types/analytics.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L56)
+
+Second class item category.
+
+##### item\_category3?
+
+> `optional` **item\_category3?**: `string`
+
+Defined in: [types/analytics.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L60)
+
+Third class item category.
+
+##### item\_category4?
+
+> `optional` **item\_category4?**: `string`
+
+Defined in: [types/analytics.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L64)
+
+Fourth class item category.
+
+##### item\_category5?
+
+> `optional` **item\_category5?**: `string`
+
+Defined in: [types/analytics.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L68)
+
+Fifth class item category.
+
+##### item\_id?
+
+> `optional` **item\_id?**: `string`
+
+Defined in: [types/analytics.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L44)
+
+An item ID.
+
+##### item\_list\_id?
+
+> `optional` **item\_list\_id?**: `string`
+
+Defined in: [types/analytics.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L72)
+
+The ID of the list in which the item was presented to the user.
+
+##### item\_list\_name?
+
+> `optional` **item\_list\_name?**: `string`
+
+Defined in: [types/analytics.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L76)
+
+The name of the list in which the item was presented to the user.
+
+##### item\_name?
+
+> `optional` **item\_name?**: `string`
+
+Defined in: [types/analytics.ts:48](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L48)
+
+An item name.
+
+##### item\_variant?
+
+> `optional` **item\_variant?**: `string`
+
+Defined in: [types/analytics.ts:84](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L84)
+
+The Item variant.
+
+##### location\_id?
+
+> `optional` **location\_id?**: `string`
+
+Defined in: [types/analytics.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L80)
+
+The Google [Place ID](https://developers.google.com/places/place-id) that corresponds to the associated item (String). Alternatively, you can supply your own custom Location ID.
+
+##### price?
+
+> `optional` **price?**: `number`
+
+Defined in: [types/analytics.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L94)
+
+The Item price.
+Note that firebase analytics will display this as an integer with trailing zeros, due to some firebase-internal conversion.
+See https://github.com/invertase/react-native-firebase/issues/4578#issuecomment-771703420 for more information
+
+##### promotion\_id?
+
+> `optional` **promotion\_id?**: `string`
+
+Defined in: [types/analytics.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L122)
+
+The promotion ID associated with the item.
+
+##### promotion\_name?
+
+> `optional` **promotion\_name?**: `string`
+
+Defined in: [types/analytics.ts:126](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L126)
+
+The promotion name associated with the item.
+
+##### quantity?
+
+> `optional` **quantity?**: `number`
+
+Defined in: [types/analytics.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L88)
+
+The Item quantity.
+
+***
+
+### JoinGroupEventParameters
+
+Defined in: [types/analytics.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L270)
+
+#### Properties
+
+##### group\_id
+
+> **group\_id**: `string`
+
+Defined in: [types/analytics.ts:274](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L274)
+
+Group/clan/guild id.
+
+***
+
+### LevelEndEventParameters
+
+Defined in: [types/analytics.ts:277](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L277)
+
+#### Properties
+
+##### level
+
+> **level**: `number`
+
+Defined in: [types/analytics.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L281)
+
+Level in game.
+
+##### success?
+
+> `optional` **success?**: `string`
+
+Defined in: [types/analytics.ts:285](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L285)
+
+The result of an operation.
+
+***
+
+### LevelStartEventParameters
+
+Defined in: [types/analytics.ts:288](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L288)
+
+#### Properties
+
+##### level
+
+> **level**: `number`
+
+Defined in: [types/analytics.ts:292](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L292)
+
+Level in game.
+
+***
+
+### LevelUpEventParameters
+
+Defined in: [types/analytics.ts:295](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L295)
+
+#### Properties
+
+##### character?
+
+> `optional` **character?**: `string`
+
+Defined in: [types/analytics.ts:303](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L303)
+
+Character used in game.
+
+##### level
+
+> **level**: `number`
+
+Defined in: [types/analytics.ts:299](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L299)
+
+Level in game.
+
+***
+
+### LoginEventParameters
+
+Defined in: [types/analytics.ts:306](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L306)
+
+#### Properties
+
+##### method
+
+> **method**: `string`
+
+Defined in: [types/analytics.ts:310](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L310)
+
+The login method. E.g. `facebook.com`.
+
+***
+
+### PostScoreEventParameters
+
+Defined in: [types/analytics.ts:313](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L313)
+
+#### Properties
+
+##### character?
+
+> `optional` **character?**: `string`
+
+Defined in: [types/analytics.ts:325](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L325)
+
+Character used in game.
+
+##### level?
+
+> `optional` **level?**: `number`
+
+Defined in: [types/analytics.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L321)
+
+Level in game.
+
+##### score
+
+> **score**: `number`
+
+Defined in: [types/analytics.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L317)
+
+Score in game.
+
+***
+
+### Promotion
+
+Defined in: [types/analytics.ts:16](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L16)
+
+Promotion object for analytics events.
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+#### Properties
+
+##### creative\_name?
+
+> `optional` **creative\_name?**: `string`
+
+Defined in: [types/analytics.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L20)
+
+The name of a creative used in a promotional spot
+
+##### creative\_slot?
+
+> `optional` **creative\_slot?**: `string`
+
+Defined in: [types/analytics.ts:24](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L24)
+
+The name of a creative slot
+
+##### promotion\_id?
+
+> `optional` **promotion\_id?**: `string`
+
+Defined in: [types/analytics.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L28)
+
+The ID of a product promotion
+
+##### promotion\_name?
+
+> `optional` **promotion\_name?**: `string`
+
+Defined in: [types/analytics.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L32)
+
+The name of a product promotion
+
+***
+
+### PurchaseEventParameters
+
+Defined in: [types/analytics.ts:328](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L328)
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+Custom event parameters.
+
+#### Properties
+
+##### affiliation?
+
+> `optional` **affiliation?**: `string`
+
+Defined in: [types/analytics.ts:332](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L332)
+
+A product affiliation to designate a supplying company or brick and mortar store location
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:336](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L336)
+
+Coupon code for a purchasable item.
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:340](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L340)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:342](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L342)
+
+##### shipping?
+
+> `optional` **shipping?**: `number`
+
+Defined in: [types/analytics.ts:346](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L346)
+
+Shipping cost.
+
+##### tax?
+
+> `optional` **tax?**: `number`
+
+Defined in: [types/analytics.ts:350](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L350)
+
+Tax amount.
+
+##### transaction\_id?
+
+> `optional` **transaction\_id?**: `string`
+
+Defined in: [types/analytics.ts:360](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L360)
+
+A single ID for a ecommerce group transaction.
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:356](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L356)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### RefundEventParameters
+
+Defined in: [types/analytics.ts:383](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L383)
+
+#### Properties
+
+##### affiliation?
+
+> `optional` **affiliation?**: `string`
+
+Defined in: [types/analytics.ts:387](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L387)
+
+A product affiliation to designate a supplying company or brick and mortar store location
+
+##### coupon?
+
+> `optional` **coupon?**: `string`
+
+Defined in: [types/analytics.ts:391](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L391)
+
+Coupon code for a purchasable item.
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:395](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L395)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:397](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L397)
+
+##### shipping?
+
+> `optional` **shipping?**: `number`
+
+Defined in: [types/analytics.ts:401](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L401)
+
+Shipping cost.
+
+##### tax?
+
+> `optional` **tax?**: `number`
+
+Defined in: [types/analytics.ts:405](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L405)
+
+Tax amount.
+
+##### transaction\_id?
+
+> `optional` **transaction\_id?**: `string`
+
+Defined in: [types/analytics.ts:415](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L415)
+
+A single ID for a ecommerce group transaction.
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:411](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L411)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### RemoveFromCartEventParameters
+
+Defined in: [types/analytics.ts:418](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L418)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:429](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L429)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+x
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:419](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L419)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:425](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L425)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### ScreenViewParameters
+
+Defined in: [types/analytics.ts:367](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L367)
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+Custom event parameters.
+
+#### Properties
+
+##### screen\_class?
+
+> `optional` **screen\_class?**: `string`
+
+Defined in: [types/analytics.ts:375](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L375)
+
+Current class associated with the view the user is currently viewing.
+
+##### screen\_name?
+
+> `optional` **screen\_name?**: `string`
+
+Defined in: [types/analytics.ts:371](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L371)
+
+Screen name the user is currently viewing.
+
+***
+
+### SearchEventParameters
+
+Defined in: [types/analytics.ts:432](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L432)
+
+#### Properties
+
+##### destination?
+
+> `optional` **destination?**: `string`
+
+Defined in: [types/analytics.ts:453](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L453)
+
+Flight or Travel destination. E.g. `Mountain View, CA`.
+
+##### end\_date?
+
+> `optional` **end\_date?**: `string`
+
+Defined in: [types/analytics.ts:461](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L461)
+
+The arrival date, check-out date, or rental end date for the item (String). The parameter expects a date formatted as YYYY-MM-DD.
+
+##### number\_of\_nights?
+
+> `optional` **number\_of\_nights?**: `number`
+
+Defined in: [types/analytics.ts:437](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L437)
+
+Number of nights staying at hotel.
+
+##### number\_of\_passengers?
+
+> `optional` **number\_of\_passengers?**: `number`
+
+Defined in: [types/analytics.ts:445](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L445)
+
+Number of passengers traveling.
+
+##### number\_of\_rooms?
+
+> `optional` **number\_of\_rooms?**: `number`
+
+Defined in: [types/analytics.ts:441](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L441)
+
+Number of rooms for travel events.
+
+##### origin?
+
+> `optional` **origin?**: `string`
+
+Defined in: [types/analytics.ts:449](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L449)
+
+Flight or Travel origin. E.g. `Mountain View, CA`.
+
+##### search\_term
+
+> **search\_term**: `string`
+
+Defined in: [types/analytics.ts:433](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L433)
+
+##### start\_date?
+
+> `optional` **start\_date?**: `string`
+
+Defined in: [types/analytics.ts:457](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L457)
+
+The departure date, check-in date, or rental start date for the item (String). The parameter expects a date formatted as YYYY-MM-DD.
+
+##### travel\_class?
+
+> `optional` **travel\_class?**: `string`
+
+Defined in: [types/analytics.ts:465](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L465)
+
+Travel class. E.g. `business`.
+
+***
+
+### SelectContentEventParameters
+
+Defined in: [types/analytics.ts:468](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L468)
+
+#### Properties
+
+##### content\_type
+
+> **content\_type**: `string`
+
+Defined in: [types/analytics.ts:469](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L469)
+
+##### item\_id
+
+> **item\_id**: `string`
+
+Defined in: [types/analytics.ts:473](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L473)
+
+An item ID.
+
+***
+
+### SelectItemEventParameters
+
+Defined in: [types/analytics.ts:476](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L476)
+
+#### Properties
+
+##### content\_type
+
+> **content\_type**: `string`
+
+Defined in: [types/analytics.ts:478](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L478)
+
+##### item\_list\_id
+
+> **item\_list\_id**: `string`
+
+Defined in: [types/analytics.ts:482](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L482)
+
+The ID of the list in which the item was presented to the user
+
+##### item\_list\_name
+
+> **item\_list\_name**: `string`
+
+Defined in: [types/analytics.ts:486](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L486)
+
+The name of the list in which the item was presented to the user
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:477](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L477)
+
+***
+
+### SelectPromotionEventParameters
+
+Defined in: [types/analytics.ts:496](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L496)
+
+#### Properties
+
+##### creative\_name
+
+> **creative\_name**: `string`
+
+Defined in: [types/analytics.ts:500](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L500)
+
+The name of a creative used in a promotional spot
+
+##### creative\_slot
+
+> **creative\_slot**: `string`
+
+Defined in: [types/analytics.ts:504](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L504)
+
+The name of a creative slot
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:505](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L505)
+
+##### location\_id
+
+> **location\_id**: `string`
+
+Defined in: [types/analytics.ts:509](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L509)
+
+The location associated with the event. Preferred to be the Google Place ID that corresponds to the associated item but could be overridden to a custom location ID string
+
+##### promotion\_id
+
+> **promotion\_id**: `string`
+
+Defined in: [types/analytics.ts:513](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L513)
+
+The ID of a product promotion
+
+##### promotion\_name
+
+> **promotion\_name**: `string`
+
+Defined in: [types/analytics.ts:517](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L517)
+
+The name of a product promotion
+
+***
+
+### SetCheckoutOptionEventParameters
+
+Defined in: [types/analytics.ts:489](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L489)
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+#### Properties
+
+##### checkout\_option?
+
+> `optional` **checkout\_option?**: `string`
+
+Defined in: [types/analytics.ts:491](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L491)
+
+##### checkout\_step?
+
+> `optional` **checkout\_step?**: `number`
+
+Defined in: [types/analytics.ts:490](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L490)
+
+***
+
+### SettingsOptions
+
+Defined in: [types/analytics.ts:832](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L832)
+
+Specifies custom options for your Firebase Analytics instance.
+You must set these before initializing `firebase.analytics()`.
+
+#### Properties
+
+##### dataLayerName?
+
+> `optional` **dataLayerName?**: `string`
+
+Defined in: [types/analytics.ts:836](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L836)
+
+Sets custom name for `dataLayer` array used by `gtag.js`.
+
+##### gtagName?
+
+> `optional` **gtagName?**: `string`
+
+Defined in: [types/analytics.ts:834](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L834)
+
+Sets custom name for `gtag` function.
+
+***
+
+### ShareEventParameters
+
+Defined in: [types/analytics.ts:520](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L520)
+
+#### Properties
+
+##### content\_type
+
+> **content\_type**: `string`
+
+Defined in: [types/analytics.ts:524](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L524)
+
+Type of content selected.
+
+##### item\_id
+
+> **item\_id**: `string`
+
+Defined in: [types/analytics.ts:528](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L528)
+
+An item ID.
+
+##### method
+
+> **method**: `string`
+
+Defined in: [types/analytics.ts:532](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L532)
+
+A particular approach used in an operation; for example, "facebook" or "email" in the context of a sign_up or login event.
+
+***
+
+### SignUpEventParameters
+
+Defined in: [types/analytics.ts:535](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L535)
+
+#### Properties
+
+##### method
+
+> **method**: `string`
+
+Defined in: [types/analytics.ts:539](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L539)
+
+A particular approach used in an operation; for example, "facebook" or "email" in the context of a sign_up or login event.
+
+***
+
+### SpendVirtualCurrencyEventParameters
+
+Defined in: [types/analytics.ts:542](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L542)
+
+#### Properties
+
+##### item\_name
+
+> **item\_name**: `string`
+
+Defined in: [types/analytics.ts:546](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L546)
+
+An item name.
+
+##### value
+
+> **value**: `number`
+
+Defined in: [types/analytics.ts:556](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L556)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+##### virtual\_currency\_name
+
+> **virtual\_currency\_name**: `string`
+
+Defined in: [types/analytics.ts:550](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L550)
+
+Name of virtual currency type. E.g. `gems`.
+
+***
+
+### UnlockAchievementEventParameters
+
+Defined in: [types/analytics.ts:559](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L559)
+
+#### Properties
+
+##### achievement\_id
+
+> **achievement\_id**: `string`
+
+Defined in: [types/analytics.ts:563](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L563)
+
+Game achievement ID (String).
+
+***
+
+### ViewCartEventParameters
+
+Defined in: [types/analytics.ts:566](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L566)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:571](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L571)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:567](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L567)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:577](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L577)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### ViewItemEventParameters
+
+Defined in: [types/analytics.ts:580](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L580)
+
+#### Properties
+
+##### currency?
+
+> `optional` **currency?**: `string`
+
+Defined in: [types/analytics.ts:585](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L585)
+
+Purchase currency in 3 letter [ISO_4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format. E.g. `USD`.
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:581](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L581)
+
+##### value?
+
+> `optional` **value?**: `number`
+
+Defined in: [types/analytics.ts:591](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L591)
+
+A context-specific numeric value which is accumulated automatically for each event type. Values
+can include revenue, distance, time and points. When a value is set, the accompanying `currency`
+parameter should also be defined.
+
+***
+
+### ViewItemListEventParameters
+
+Defined in: [types/analytics.ts:601](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L601)
+
+#### Properties
+
+##### item\_list\_id?
+
+> `optional` **item\_list\_id?**: `string`
+
+Defined in: [types/analytics.ts:606](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L606)
+
+The ID of the list in which the item was presented to the user
+
+##### item\_list\_name?
+
+> `optional` **item\_list\_name?**: `string`
+
+Defined in: [types/analytics.ts:610](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L610)
+
+The name of the list in which the item was presented to the user
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:602](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L602)
+
+***
+
+### ViewPromotionEventParameters
+
+Defined in: [types/analytics.ts:613](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L613)
+
+#### Properties
+
+##### creative\_name?
+
+> `optional` **creative\_name?**: `string`
+
+Defined in: [types/analytics.ts:622](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L622)
+
+The name of a creative used in a promotional spot
+
+##### creative\_slot?
+
+> `optional` **creative\_slot?**: `string`
+
+Defined in: [types/analytics.ts:626](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L626)
+
+The name of a creative slot
+
+##### items?
+
+> `optional` **items?**: [`Item`](#item)[]
+
+Defined in: [types/analytics.ts:614](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L614)
+
+##### location\_id?
+
+> `optional` **location\_id?**: `string`
+
+Defined in: [types/analytics.ts:618](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L618)
+
+The location associated with the event. Preferred to be the Google Place ID that corresponds to the associated item but could be overridden to a custom location ID string
+
+##### promotion\_id?
+
+> `optional` **promotion\_id?**: `string`
+
+Defined in: [types/analytics.ts:630](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L630)
+
+The ID of a product promotion
+
+##### promotion\_name?
+
+> `optional` **promotion\_name?**: `string`
+
+Defined in: [types/analytics.ts:634](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L634)
+
+The name of a product promotion
+
+***
+
+### ViewSearchResultsParameters
+
+Defined in: [types/analytics.ts:594](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L594)
+
+#### Properties
+
+##### search\_term
+
+> **search\_term**: `string`
+
+Defined in: [types/analytics.ts:598](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L598)
+
+The search string/keywords used.
+
+## Namespaces
+
+- [~~FirebaseAnalyticsTypes~~](namespaces/FirebaseAnalyticsTypes.mdx)
+
+## Type Aliases
+
+### ConsentStatusString
+
+> **ConsentStatusString** = `"granted"` \| `"denied"`
+
+Defined in: [types/analytics.ts:11](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L11)
+
+Consent status string values.
+
+***
+
+### Currency
+
+> **Currency** = `number`
+
+Defined in: [types/analytics.ts:6](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L6)
+
+A currency amount.
+
+***
+
+### CustomEventName
+
+> **CustomEventName**\<`T`\> = `T` *extends* [`EventNameString`](#eventnamestring) ? `never` : `T`
+
+Defined in: [types/analytics.ts:842](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L842)
+
+Any custom event name string not in the standard list of recommended event names.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+***
+
+### EventNameString
+
+> **EventNameString** = `"add_payment_info"` \| `"add_shipping_info"` \| `"add_to_cart"` \| `"add_to_wishlist"` \| `"begin_checkout"` \| `"checkout_progress"` \| `"exception"` \| `"generate_lead"` \| `"login"` \| `"page_view"` \| `"purchase"` \| `"refund"` \| `"remove_from_cart"` \| `"screen_view"` \| `"search"` \| `"select_content"` \| `"select_item"` \| `"select_promotion"` \| `"set_checkout_option"` \| `"share"` \| `"sign_up"` \| `"timing_complete"` \| `"view_cart"` \| `"view_item"` \| `"view_item_list"` \| `"view_promotion"` \| `"view_search_results"`
+
+Defined in: [types/analytics.ts:847](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L847)
+
+Type for standard Google Analytics event names. logEvent also accepts any custom string and interprets it as a custom event name.
+See https://firebase.google.com/docs/reference/js/analytics.md#eventnamestring
+
+## Variables
+
+### default
+
+> **default**: `AnalyticsNamespace`
+
+Defined in: [namespaced.ts:904](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/namespaced.ts#L904)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`FirebaseNamespacedExport`](../app/namespaces/ReactNativeFirebase.mdx#firebasenamespacedexport)\<`"analytics"`, [`Analytics`](#analytics), `Statics`, `false`\>
+
+Defined in: [namespaced.ts:909](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/namespaced.ts#L909)
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `string` = `version`
+
+Defined in: [namespaced.ts:875](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/namespaced.ts#L875)
diff --git a/docs/reference/@react-native-firebase/analytics/namespaces/FirebaseAnalyticsTypes.mdx b/docs/reference/@react-native-firebase/analytics/namespaces/FirebaseAnalyticsTypes.mdx
new file mode 100644
index 0000000000..18b324d62c
--- /dev/null
+++ b/docs/reference/@react-native-firebase/analytics/namespaces/FirebaseAnalyticsTypes.mdx
@@ -0,0 +1,372 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/analytics](../README.mdx) / FirebaseAnalyticsTypes
+
+# ~~FirebaseAnalyticsTypes~~
+
+## Deprecated
+
+Use the exported types directly instead.
+FirebaseAnalyticsTypes namespace is kept for backwards compatibility.
+
+## Type Aliases
+
+### ~~AddPaymentInfoEventParameters~~
+
+> **AddPaymentInfoEventParameters** = `_AddPaymentInfoEventParameters`
+
+Defined in: [types/analytics.ts:1037](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1037)
+
+***
+
+### ~~AddShippingInfoEventParameters~~
+
+> **AddShippingInfoEventParameters** = `_AddShippingInfoEventParameters`
+
+Defined in: [types/analytics.ts:1038](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1038)
+
+***
+
+### ~~AddShippingInfoParameters~~
+
+> **AddShippingInfoParameters** = `_AddShippingInfoParameters`
+
+Defined in: [types/analytics.ts:1069](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1069)
+
+***
+
+### ~~AddToCartEventParameters~~
+
+> **AddToCartEventParameters** = `_AddToCartEventParameters`
+
+Defined in: [types/analytics.ts:1039](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1039)
+
+***
+
+### ~~AddToWishlistEventParameters~~
+
+> **AddToWishlistEventParameters** = `_AddToWishlistEventParameters`
+
+Defined in: [types/analytics.ts:1040](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1040)
+
+***
+
+### ~~AnalyticsCallOptions~~
+
+> **AnalyticsCallOptions** = `_AnalyticsCallOptions`
+
+Defined in: [types/analytics.ts:1073](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1073)
+
+***
+
+### ~~AnalyticsSettings~~
+
+> **AnalyticsSettings** = `_AnalyticsSettings`
+
+Defined in: [types/analytics.ts:1072](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1072)
+
+***
+
+### ~~BeginCheckoutEventParameters~~
+
+> **BeginCheckoutEventParameters** = `_BeginCheckoutEventParameters`
+
+Defined in: [types/analytics.ts:1041](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1041)
+
+***
+
+### ~~CallOptions~~
+
+> **CallOptions** = [`AnalyticsCallOptions`](#analyticscalloptions)
+
+Defined in: [types/analytics.ts:1030](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1030)
+
+***
+
+### ~~CampaignDetailsEventParameters~~
+
+> **CampaignDetailsEventParameters** = `_CampaignDetailsEventParameters`
+
+Defined in: [types/analytics.ts:1042](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1042)
+
+***
+
+### ~~Consent~~
+
+> **Consent** = [`ConsentSettings`](#consentsettings)
+
+Defined in: [types/analytics.ts:1031](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1031)
+
+***
+
+### ~~ConsentSettings~~
+
+> **ConsentSettings** = `_ConsentSettings`
+
+Defined in: [types/analytics.ts:1075](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1075)
+
+***
+
+### ~~EarnVirtualCurrencyEventParameters~~
+
+> **EarnVirtualCurrencyEventParameters** = `_EarnVirtualCurrencyEventParameters`
+
+Defined in: [types/analytics.ts:1043](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1043)
+
+***
+
+### ~~EventParams~~
+
+> **EventParams** = `_EventParams`
+
+Defined in: [types/analytics.ts:1077](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1077)
+
+***
+
+### ~~GenerateLeadEventParameters~~
+
+> **GenerateLeadEventParameters** = `_GenerateLeadEventParameters`
+
+Defined in: [types/analytics.ts:1044](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1044)
+
+***
+
+### ~~GtagConfigParams~~
+
+> **GtagConfigParams** = `_GtagConfigParams`
+
+Defined in: [types/analytics.ts:1074](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1074)
+
+***
+
+### ~~Item~~
+
+> **Item** = `_Item`
+
+Defined in: [types/analytics.ts:1036](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1036)
+
+***
+
+### ~~JoinGroupEventParameters~~
+
+> **JoinGroupEventParameters** = `_JoinGroupEventParameters`
+
+Defined in: [types/analytics.ts:1045](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1045)
+
+***
+
+### ~~LevelEndEventParameters~~
+
+> **LevelEndEventParameters** = `_LevelEndEventParameters`
+
+Defined in: [types/analytics.ts:1046](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1046)
+
+***
+
+### ~~LevelStartEventParameters~~
+
+> **LevelStartEventParameters** = `_LevelStartEventParameters`
+
+Defined in: [types/analytics.ts:1047](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1047)
+
+***
+
+### ~~LevelUpEventParameters~~
+
+> **LevelUpEventParameters** = `_LevelUpEventParameters`
+
+Defined in: [types/analytics.ts:1048](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1048)
+
+***
+
+### ~~LoginEventParameters~~
+
+> **LoginEventParameters** = `_LoginEventParameters`
+
+Defined in: [types/analytics.ts:1049](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1049)
+
+***
+
+### ~~Module~~
+
+> **Module** = [`Analytics`](../README.mdx#analytics)
+
+Defined in: [types/analytics.ts:1029](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1029)
+
+***
+
+### ~~PostScoreEventParameters~~
+
+> **PostScoreEventParameters** = `_PostScoreEventParameters`
+
+Defined in: [types/analytics.ts:1050](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1050)
+
+***
+
+### ~~PurchaseEventParameters~~
+
+> **PurchaseEventParameters** = `_PurchaseEventParameters`
+
+Defined in: [types/analytics.ts:1051](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1051)
+
+***
+
+### ~~RefundEventParameters~~
+
+> **RefundEventParameters** = `_RefundEventParameters`
+
+Defined in: [types/analytics.ts:1053](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1053)
+
+***
+
+### ~~RemoveFromCartEventParameters~~
+
+> **RemoveFromCartEventParameters** = `_RemoveFromCartEventParameters`
+
+Defined in: [types/analytics.ts:1054](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1054)
+
+***
+
+### ~~ScreenViewParameters~~
+
+> **ScreenViewParameters** = `_ScreenViewParameters`
+
+Defined in: [types/analytics.ts:1052](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1052)
+
+***
+
+### ~~SearchEventParameters~~
+
+> **SearchEventParameters** = `_SearchEventParameters`
+
+Defined in: [types/analytics.ts:1055](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1055)
+
+***
+
+### ~~SelectContentEventParameters~~
+
+> **SelectContentEventParameters** = `_SelectContentEventParameters`
+
+Defined in: [types/analytics.ts:1056](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1056)
+
+***
+
+### ~~SelectItemEventParameters~~
+
+> **SelectItemEventParameters** = `_SelectItemEventParameters`
+
+Defined in: [types/analytics.ts:1057](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1057)
+
+***
+
+### ~~SelectPromotionEventParameters~~
+
+> **SelectPromotionEventParameters** = `_SelectPromotionEventParameters`
+
+Defined in: [types/analytics.ts:1059](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1059)
+
+***
+
+### ~~SetCheckoutOptionEventParameters~~
+
+> **SetCheckoutOptionEventParameters** = `_SetCheckoutOptionEventParameters`
+
+Defined in: [types/analytics.ts:1058](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1058)
+
+***
+
+### ~~Settings~~
+
+> **Settings** = [`AnalyticsSettings`](#analyticssettings)
+
+Defined in: [types/analytics.ts:1032](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1032)
+
+***
+
+### ~~SettingsOptions~~
+
+> **SettingsOptions** = `_SettingsOptions`
+
+Defined in: [types/analytics.ts:1076](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1076)
+
+***
+
+### ~~ShareEventParameters~~
+
+> **ShareEventParameters** = `_ShareEventParameters`
+
+Defined in: [types/analytics.ts:1060](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1060)
+
+***
+
+### ~~SignUpEventParameters~~
+
+> **SignUpEventParameters** = `_SignUpEventParameters`
+
+Defined in: [types/analytics.ts:1061](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1061)
+
+***
+
+### ~~SpendVirtualCurrencyEventParameters~~
+
+> **SpendVirtualCurrencyEventParameters** = `_SpendVirtualCurrencyEventParameters`
+
+Defined in: [types/analytics.ts:1062](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1062)
+
+***
+
+### ~~Statics~~
+
+> **Statics** = `_Statics`
+
+Defined in: [types/analytics.ts:1033](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1033)
+
+***
+
+### ~~UnlockAchievementEventParameters~~
+
+> **UnlockAchievementEventParameters** = `_UnlockAchievementEventParameters`
+
+Defined in: [types/analytics.ts:1063](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1063)
+
+***
+
+### ~~ViewCartEventParameters~~
+
+> **ViewCartEventParameters** = `_ViewCartEventParameters`
+
+Defined in: [types/analytics.ts:1064](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1064)
+
+***
+
+### ~~ViewItemEventParameters~~
+
+> **ViewItemEventParameters** = `_ViewItemEventParameters`
+
+Defined in: [types/analytics.ts:1065](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1065)
+
+***
+
+### ~~ViewItemListEventParameters~~
+
+> **ViewItemListEventParameters** = `_ViewItemListEventParameters`
+
+Defined in: [types/analytics.ts:1067](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1067)
+
+***
+
+### ~~ViewPromotionEventParameters~~
+
+> **ViewPromotionEventParameters** = `_ViewPromotionEventParameters`
+
+Defined in: [types/analytics.ts:1068](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1068)
+
+***
+
+### ~~ViewSearchResultsParameters~~
+
+> **ViewSearchResultsParameters** = `_ViewSearchResultsParameters`
+
+Defined in: [types/analytics.ts:1066](https://github.com/invertase/react-native-firebase/blob/main/packages/analytics/lib/types/analytics.ts#L1066)
diff --git a/docs/reference/@react-native-firebase/app-check/README.mdx b/docs/reference/@react-native-firebase/app-check/README.mdx
new file mode 100644
index 0000000000..bf80452d25
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app-check/README.mdx
@@ -0,0 +1,953 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/app-check
+
+# @react-native-firebase/app-check
+
+## Functions
+
+### getLimitedUseToken()
+
+> **getLimitedUseToken**(`appCheckInstance`): `Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+Defined in: [modular.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L80)
+
+Get a limited-use (consumable) App Check token.
+For use with server calls to firebase functions or custom backends using the firebase admin SDK.
+
+#### Parameters
+
+##### appCheckInstance
+
+[`AppCheck`](#appcheck)
+
+The App Check instance.
+@returns`Promise`
+
+#### Returns
+
+`Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+***
+
+### getToken()
+
+> **getToken**(`appCheckInstance`, `forceRefresh?`): `Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+Defined in: [modular.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L62)
+
+Get the current App Check token. Attaches to the most recent in-flight request if one is present.
+Returns null if no token is present and no token requests are in-flight.
+
+#### Parameters
+
+##### appCheckInstance
+
+[`AppCheck`](#appcheck)
+
+The App Check instance.
+
+##### forceRefresh?
+
+`boolean`
+
+Whether to force refresh the token. Optional
+
+#### Returns
+
+`Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+`Promise`
+
+***
+
+### initializeAppCheck()
+
+> **initializeAppCheck**(`app?`, `options?`): `Promise`\<[`AppCheck`](#appcheck)\>
+
+Defined in: [modular.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L37)
+
+Activate App Check for the given app. Can be called only once per app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The app to initialize App Check for. Optional.
+
+##### options?
+
+[`AppCheckOptions`](#appcheckoptions)
+
+App Check options.
+
+#### Returns
+
+`Promise`\<[`AppCheck`](#appcheck)\>
+
+`Promise`
+
+***
+
+### onTokenChanged()
+
+#### Call Signature
+
+> **onTokenChanged**(`appCheckInstance`, `listener`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [modular.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L115)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+##### Parameters
+
+###### appCheckInstance
+
+[`AppCheck`](#appcheck)
+
+The App Check instance.
+
+###### listener
+
+[`PartialObserver`](#partialobserver)\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+The listener to register.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+Unsubscribe
+
+#### Call Signature
+
+> **onTokenChanged**(`appCheckInstance`, `onNext`, `onError?`, `onCompletion?`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [modular.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L132)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+##### Parameters
+
+###### appCheckInstance
+
+[`AppCheck`](#appcheck)
+
+The App Check instance.
+
+###### onNext
+
+(`tokenResult`) => `void`
+
+The callback function for token changes.
+
+###### onError?
+
+(`error`) => `void`
+
+Optional error callback.
+
+###### onCompletion?
+
+() => `void`
+
+Optional completion callback.
+
+##### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+Unsubscribe
+
+***
+
+### setTokenAutoRefreshEnabled()
+
+> **setTokenAutoRefreshEnabled**(`appCheckInstance`, `isAutoRefreshEnabled`): `void`
+
+Defined in: [modular.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/modular.ts#L93)
+
+Set whether App Check will automatically refresh tokens as needed.
+
+#### Parameters
+
+##### appCheckInstance
+
+[`AppCheck`](#appcheck)
+
+The App Check instance.
+
+##### isAutoRefreshEnabled
+
+`boolean`
+
+Whether to enable auto-refresh.
+
+#### Returns
+
+`void`
+
+## Classes
+
+### CustomProvider
+
+Defined in: [namespaced.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L56)
+
+An App Check provider. This can be either the built-in reCAPTCHA provider
+or a custom provider. For more on custom providers, see
+https://firebase.google.com/docs/app-check/web-custom-provider
+
+#### Implements
+
+- [`AppCheckProvider`](#appcheckprovider)
+
+#### Constructors
+
+##### Constructor
+
+> **new CustomProvider**(`_customProviderOptions`): [`CustomProvider`](#customprovider)
+
+Defined in: [namespaced.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L59)
+
+###### Parameters
+
+###### \_customProviderOptions
+
+[`CustomProviderOptions`](#customprovideroptions)
+
+###### Returns
+
+[`CustomProvider`](#customprovider)
+
+#### Methods
+
+##### getToken()
+
+> **getToken**(): `Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+Defined in: [namespaced.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L69)
+
+Returns an AppCheck token.
+
+###### Returns
+
+`Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+###### Implementation of
+
+[`AppCheckProvider`](#appcheckprovider).[`getToken`](#gettoken-2)
+
+## Interfaces
+
+### AppCheck
+
+Defined in: [types/appcheck.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L211)
+
+App Check module instance - returned from firebase.appCheck() or firebase.app().appCheck()
+
+#### Extends
+
+- [`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Methods
+
+##### ~~activate()~~
+
+> **activate**(`siteKeyOrProvider`, `isTokenAutoRefreshEnabled?`): `Promise`\<`void`\>
+
+Defined in: [types/appcheck.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L248)
+
+Activate App Check
+On iOS App Check is activated with DeviceCheck provider simply by including the module, using the token auto refresh default or
+the specific value (if configured) in firebase.json, but calling this does no harm.
+On Android if you call this it will install the PlayIntegrity provider in release builds, the Debug provider if debuggable.
+On both platforms you may use this method to alter the token refresh setting after startup.
+On iOS if you want to set a specific AppCheckProviderFactory (for instance to FIRAppCheckDebugProviderFactory or
+FIRAppAttestProvider) you must manually do that in your AppDelegate.m prior to calling [FIRApp configure]
+
+###### Parameters
+
+###### siteKeyOrProvider
+
+`string` \| [`AppCheckProvider`](#appcheckprovider)
+
+This is ignored, Android uses DebugProviderFactory if the app is debuggable (https://firebase.google.com/docs/app-check/android/debug-provider)
+ Android uses PlayIntegrityProviderFactory for release builds.
+ iOS uses DeviceCheckProviderFactory by default unless altered in AppDelegate.m manually
+
+###### isTokenAutoRefreshEnabled?
+
+`boolean`
+
+If true, enables SDK to automatically
+refresh AppCheck token as needed. If undefined, the value will default
+to the value of `app.automaticDataCollectionEnabled`. That property
+defaults to false and can be set in the app config.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Deprecated
+
+use initializeAppCheck to gain access to all platform providers and firebase-js-sdk v9 compatibility
+
+##### getLimitedUseToken()
+
+> **getLimitedUseToken**(): `Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+Defined in: [types/appcheck.ts:278](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L278)
+
+Requests a Firebase App Check token. This method should be used only if you need to authorize requests
+to a non-Firebase backend. Returns limited-use tokens that are intended for use with your non-Firebase
+backend endpoints that are protected with Replay Protection (https://firebase.google.com/docs/app-check/custom-resource-backend#replay-protection).
+This method does not affect the token generation behavior of the getAppCheckToken() method.
+
+###### Returns
+
+`Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+##### getToken()
+
+> **getToken**(`forceRefresh?`): `Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+Defined in: [types/appcheck.ts:270](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L270)
+
+Requests Firebase App Check token.
+This method should only be used if you need to authorize requests to a non-Firebase backend.
+Requests to Firebase backend are authorized automatically if configured.
+
+###### Parameters
+
+###### forceRefresh?
+
+`boolean`
+
+If true, a new Firebase App Check token is requested and the token cache is ignored.
+If false, the cached token is used if it exists and has not expired yet.
+In most cases, false should be used. True should only be used if the server explicitly returns an error, indicating a revoked token.
+
+###### Returns
+
+`Promise`\<[`AppCheckTokenResult`](#appchecktokenresult)\>
+
+##### initializeAppCheck()
+
+> **initializeAppCheck**(`options`): `Promise`\<`void`\>
+
+Defined in: [types/appcheck.ts:228](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L228)
+
+Initialize the AppCheck module. Note that in react-native-firebase AppCheckOptions must always
+be an object with a `provider` member containing `ReactNativeFirebaseAppCheckProvider` that has returned successfully
+from a call to the `configure` method, with sub-providers for the various platforms configured to meet your project
+requirements. This must be called prior to interacting with any firebase services protected by AppCheck
+
+###### Parameters
+
+###### options
+
+[`AppCheckOptions`](#appcheckoptions)
+
+an AppCheckOptions with a configured ReactNativeFirebaseAppCheckProvider as the provider
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### newReactNativeFirebaseAppCheckProvider()
+
+> **newReactNativeFirebaseAppCheckProvider**(): [`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider)
+
+Defined in: [types/appcheck.ts:218](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L218)
+
+Create a ReactNativeFirebaseAppCheckProvider option for use in react-native-firebase
+
+###### Returns
+
+[`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider)
+
+##### onTokenChanged()
+
+###### Call Signature
+
+> **onTokenChanged**(`observer`): () => `void`
+
+Defined in: [types/appcheck.ts:288](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L288)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+###### Parameters
+
+###### observer
+
+[`PartialObserver`](#partialobserver)\<[`AppCheckListenerResult`](#appchecklistenerresult)\>
+
+###### Returns
+
+A function that unsubscribes this listener.
+
+() => `void`
+
+###### Call Signature
+
+> **onTokenChanged**(`onNext`, `onError?`, `onCompletion?`): () => `void`
+
+Defined in: [types/appcheck.ts:307](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L307)
+
+Registers a listener to changes in the token state. There can be more
+than one listener registered at the same time for one or more
+App Check instances. The listeners call back on the UI thread whenever
+the current token associated with this App Check instance changes.
+
+Token listeners do not exist in the native SDK for iOS, no token change events will be emitted on that platform.
+This is not yet implemented on Android, no token change events will be emitted until implemented.
+
+NOTE: Although an `onError` callback can be provided, it will
+never be called, Android sdk code doesn't provide handling for onError function
+
+NOTE: Although an `onCompletion` callback can be provided, it will
+never be called because the token stream is never-ending.
+
+###### Parameters
+
+###### onNext
+
+(`tokenResult`) => `void`
+
+###### onError?
+
+(`error`) => `void`
+
+###### onCompletion?
+
+() => `void`
+
+###### Returns
+
+A function that unsubscribes this listener.
+
+() => `void`
+
+##### setTokenAutoRefreshEnabled()
+
+> **setTokenAutoRefreshEnabled**(`isTokenAutoRefreshEnabled`): `void`
+
+Defined in: [types/appcheck.ts:259](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L259)
+
+Alter the token auto refresh setting. By default it will take the value of automaticDataCollectionEnabled from Info.plist / AndroidManifest.xml
+
+###### Parameters
+
+###### isTokenAutoRefreshEnabled
+
+`boolean`
+
+If true, the SDK automatically
+refreshes App Check tokens as needed. This overrides any value set
+during `activate()` or taken by default from automaticDataCollectionEnabled in plist / android manifest
+
+###### Returns
+
+`void`
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/appcheck.ts:213](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L213)
+
+The FirebaseApp this module is associated with
+
+###### Overrides
+
+[`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../app/namespaces/ReactNativeFirebase.mdx#app)
+
+***
+
+### AppCheckOptions
+
+Defined in: [types/appcheck.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L55)
+
+Options for App Check initialization.
+
+#### Properties
+
+##### isTokenAutoRefreshEnabled?
+
+> `optional` **isTokenAutoRefreshEnabled?**: `boolean`
+
+Defined in: [types/appcheck.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L72)
+
+If true, enables SDK to automatically
+refresh AppCheck token as needed. If undefined, the value will default
+to the value of `app.automaticDataCollectionEnabled`. That property
+defaults to false and can be set in the app config.
+
+##### provider
+
+> **provider**: `CustomProvider` \| [`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider) \| `ReactNativeFirebaseAppCheckProviderConfig`
+
+Defined in: [types/appcheck.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L61)
+
+The App Check provider to use. This can be either the built-in reCAPTCHA provider
+or a custom provider. For convenience, you can also pass an object with providerOptions
+directly, which will be accepted by the runtime.
+
+***
+
+### AppCheckProvider
+
+Defined in: [types/appcheck.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L27)
+
+An App Check provider. This can be either the built-in reCAPTCHA provider
+or a custom provider. For more on custom providers, see
+https://firebase.google.com/docs/app-check/web-custom-provider
+
+#### Extended by
+
+- [`ReactNativeFirebaseAppCheckProvider`](#reactnativefirebaseappcheckprovider)
+
+#### Methods
+
+##### getToken()
+
+> **getToken**(): `Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+Defined in: [types/appcheck.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L31)
+
+Returns an AppCheck token.
+
+###### Returns
+
+`Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+***
+
+### AppCheckToken
+
+Defined in: [types/appcheck.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L78)
+
+The token returned from an `AppCheckProvider`.
+
+#### Properties
+
+##### expireTimeMillis
+
+> `readonly` **expireTimeMillis**: `number`
+
+Defined in: [types/appcheck.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L86)
+
+The local timestamp after which the token will expire.
+
+##### token
+
+> `readonly` **token**: `string`
+
+Defined in: [types/appcheck.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L82)
+
+The token string in JWT format.
+
+***
+
+### AppCheckTokenResult
+
+Defined in: [types/appcheck.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L92)
+
+Result returned by `getToken()`.
+
+#### Properties
+
+##### token
+
+> `readonly` **token**: `string`
+
+Defined in: [types/appcheck.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L96)
+
+The token string in JWT format.
+
+***
+
+### CustomProviderOptions
+
+Defined in: [types/appcheck.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L37)
+
+Function to get an App Check token through a custom provider service.
+
+#### Properties
+
+##### getToken
+
+> **getToken**: () => `Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+Defined in: [types/appcheck.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L38)
+
+###### Returns
+
+`Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+***
+
+### Observer
+
+Defined in: [types/appcheck.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L110)
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Properties
+
+##### complete
+
+> **complete**: [`CompleteFn`](#completefn)
+
+Defined in: [types/appcheck.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L113)
+
+##### error
+
+> **error**: [`ErrorFn`](#errorfn)
+
+Defined in: [types/appcheck.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L112)
+
+##### next
+
+> **next**: [`NextFn`](#nextfn)\<`T`\>
+
+Defined in: [types/appcheck.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L111)
+
+***
+
+### ReactNativeFirebaseAppCheckProvider
+
+Defined in: [types/appcheck.ts:180](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L180)
+
+An App Check provider. This can be either the built-in reCAPTCHA provider
+or a custom provider. For more on custom providers, see
+https://firebase.google.com/docs/app-check/web-custom-provider
+
+#### Extends
+
+- [`AppCheckProvider`](#appcheckprovider)
+
+#### Methods
+
+##### configure()
+
+> **configure**(`options`): `void`
+
+Defined in: [types/appcheck.ts:195](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L195)
+
+Specify how the app check provider should be configured. The new configuration is
+in effect when this call returns. You must call `getToken()`
+after this call to get a token using the new configuration.
+This custom provider allows for delayed configuration and re-configuration on all platforms
+so AppCheck has the same experience across all platforms, with the only difference being the native
+providers you choose to use on each platform.
+
+###### Parameters
+
+###### options
+
+`ReactNativeFirebaseAppCheckProviderOptionsMap`
+
+###### Returns
+
+`void`
+
+##### getToken()
+
+> **getToken**(): `Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+Defined in: [types/appcheck.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L31)
+
+Returns an AppCheck token.
+
+###### Returns
+
+`Promise`\<[`AppCheckToken`](#appchecktoken)\>
+
+###### Inherited from
+
+[`AppCheckProvider`](#appcheckprovider).[`getToken`](#gettoken-2)
+
+#### Properties
+
+##### providerOptions?
+
+> `optional` **providerOptions?**: `ReactNativeFirebaseAppCheckProviderOptionsMap`
+
+Defined in: [types/appcheck.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L185)
+
+Provider options for platform-specific configuration.
+This is set when configure() is called.
+
+***
+
+### ReactNativeFirebaseAppCheckProviderAndroidOptions
+
+Defined in: [types/appcheck.ts:153](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L153)
+
+#### Extends
+
+- [`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions)
+
+#### Properties
+
+##### debugToken?
+
+> `optional` **debugToken?**: `string`
+
+Defined in: [types/appcheck.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L129)
+
+debug token to use, if any. Defaults to undefined, pre-configure tokens in firebase web console if needed
+
+###### Inherited from
+
+[`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions).[`debugToken`](#debugtoken-2)
+
+##### provider?
+
+> `optional` **provider?**: `"debug"` \| `"playIntegrity"`
+
+Defined in: [types/appcheck.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L157)
+
+The android provider to use, either `debug` or `playIntegrity`. default is `playIntegrity`.
+
+***
+
+### ReactNativeFirebaseAppCheckProviderAppleOptions
+
+Defined in: [types/appcheck.ts:144](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L144)
+
+#### Extends
+
+- [`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions)
+
+#### Properties
+
+##### debugToken?
+
+> `optional` **debugToken?**: `string`
+
+Defined in: [types/appcheck.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L129)
+
+debug token to use, if any. Defaults to undefined, pre-configure tokens in firebase web console if needed
+
+###### Inherited from
+
+[`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions).[`debugToken`](#debugtoken-2)
+
+##### provider?
+
+> `optional` **provider?**: `"debug"` \| `"deviceCheck"` \| `"appAttest"` \| `"appAttestWithDeviceCheckFallback"`
+
+Defined in: [types/appcheck.ts:150](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L150)
+
+The apple provider to use, either `deviceCheck` or `appAttest`, or `appAttestWithDeviceCheckFallback`,
+defaults to `DeviceCheck`. `appAttest` requires iOS 14+ or will fail, `appAttestWithDeviceCheckFallback`
+will use `appAttest` for iOS14+ and fallback to `deviceCheck` on devices with ios13 and lower
+
+***
+
+### ReactNativeFirebaseAppCheckProviderOptions
+
+Defined in: [types/appcheck.ts:125](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L125)
+
+#### Extended by
+
+- [`ReactNativeFirebaseAppCheckProviderWebOptions`](#reactnativefirebaseappcheckproviderweboptions)
+- [`ReactNativeFirebaseAppCheckProviderAppleOptions`](#reactnativefirebaseappcheckproviderappleoptions)
+- [`ReactNativeFirebaseAppCheckProviderAndroidOptions`](#reactnativefirebaseappcheckproviderandroidoptions)
+
+#### Properties
+
+##### debugToken?
+
+> `optional` **debugToken?**: `string`
+
+Defined in: [types/appcheck.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L129)
+
+debug token to use, if any. Defaults to undefined, pre-configure tokens in firebase web console if needed
+
+***
+
+### ReactNativeFirebaseAppCheckProviderWebOptions
+
+Defined in: [types/appcheck.ts:132](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L132)
+
+#### Extends
+
+- [`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions)
+
+#### Properties
+
+##### debugToken?
+
+> `optional` **debugToken?**: `string`
+
+Defined in: [types/appcheck.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L129)
+
+debug token to use, if any. Defaults to undefined, pre-configure tokens in firebase web console if needed
+
+###### Inherited from
+
+[`ReactNativeFirebaseAppCheckProviderOptions`](#reactnativefirebaseappcheckprovideroptions).[`debugToken`](#debugtoken-2)
+
+##### provider?
+
+> `optional` **provider?**: `"debug"` \| `"reCaptchaV3"` \| `"reCaptchaEnterprise"`
+
+Defined in: [types/appcheck.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L136)
+
+The web provider to use, either `reCaptchaV3` or `reCaptchaEnterprise`, defaults to `reCaptchaV3`
+
+##### siteKey?
+
+> `optional` **siteKey?**: `string`
+
+Defined in: [types/appcheck.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L141)
+
+siteKey for use in web queries, defaults to `none`
+
+## Namespaces
+
+- [~~FirebaseAppCheckTypes~~](namespaces/FirebaseAppCheckTypes.mdx)
+
+## Type Aliases
+
+### AppCheckListenerResult
+
+> **AppCheckListenerResult** = [`AppCheckToken`](#appchecktoken) & `object`
+
+Defined in: [types/appcheck.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L102)
+
+The result return from `onTokenChanged`
+
+#### Type Declaration
+
+##### appName
+
+> `readonly` **appName**: `string`
+
+***
+
+### CompleteFn
+
+> **CompleteFn** = () => `void`
+
+Defined in: [types/appcheck.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L108)
+
+#### Returns
+
+`void`
+
+***
+
+### ErrorFn
+
+> **ErrorFn** = (`error`) => `void`
+
+Defined in: [types/appcheck.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L107)
+
+#### Parameters
+
+##### error
+
+`Error`
+
+#### Returns
+
+`void`
+
+***
+
+### NextFn
+
+> **NextFn**\<`T`\> = (`value`) => `void`
+
+Defined in: [types/appcheck.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L106)
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+#### Parameters
+
+##### value
+
+`T`
+
+#### Returns
+
+`void`
+
+***
+
+### PartialObserver
+
+> **PartialObserver**\<`T`\> = `Partial`\<[`Observer`](#observer)\<`T`\>\>
+
+Defined in: [types/appcheck.ts:116](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L116)
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+***
+
+### Unsubscribe
+
+> **Unsubscribe** = () => `void`
+
+Defined in: [types/appcheck.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L121)
+
+A function that unsubscribes from token changes.
+
+#### Returns
+
+`void`
+
+## Variables
+
+### default
+
+> **default**: `AppCheckNamespace`
+
+Defined in: [namespaced.ts:291](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L291)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`FirebaseNamespacedExport`](../app/namespaces/ReactNativeFirebase.mdx#firebasenamespacedexport)\<`"appCheck"`, [`AppCheck`](#appcheck), `AppCheckStatics`, `false`\>
+
+Defined in: [namespaced.ts:296](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L296)
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"24.0.0"` = `version`
+
+Defined in: [namespaced.ts:267](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/namespaced.ts#L267)
diff --git a/docs/reference/@react-native-firebase/app-check/namespaces/FirebaseAppCheckTypes.mdx b/docs/reference/@react-native-firebase/app-check/namespaces/FirebaseAppCheckTypes.mdx
new file mode 100644
index 0000000000..bec9d8b44f
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app-check/namespaces/FirebaseAppCheckTypes.mdx
@@ -0,0 +1,140 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/app-check](../README.mdx) / FirebaseAppCheckTypes
+
+# ~~FirebaseAppCheckTypes~~
+
+## Deprecated
+
+Use the exported types directly instead.
+FirebaseAppCheckTypes namespace is kept for backwards compatibility.
+
+## Type Aliases
+
+### ~~AppCheck~~
+
+> **AppCheck** = `_AppCheck`
+
+Defined in: [types/appcheck.ts:383](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L383)
+
+***
+
+### ~~AppCheckListenerResult~~
+
+> **AppCheckListenerResult** = `_AppCheckListenerResult`
+
+Defined in: [types/appcheck.ts:382](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L382)
+
+***
+
+### ~~AppCheckOptions~~
+
+> **AppCheckOptions** = `_AppCheckOptions`
+
+Defined in: [types/appcheck.ts:379](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L379)
+
+***
+
+### ~~AppCheckProvider~~
+
+> **AppCheckProvider** = `_AppCheckProvider`
+
+Defined in: [types/appcheck.ts:377](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L377)
+
+***
+
+### ~~AppCheckStatics~~
+
+> **AppCheckStatics** = `_AppCheckStatics`
+
+Defined in: [types/appcheck.ts:384](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L384)
+
+***
+
+### ~~AppCheckToken~~
+
+> **AppCheckToken** = `_AppCheckToken`
+
+Defined in: [types/appcheck.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L380)
+
+***
+
+### ~~AppCheckTokenResult~~
+
+> **AppCheckTokenResult** = `_AppCheckTokenResult`
+
+Defined in: [types/appcheck.ts:381](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L381)
+
+***
+
+### ~~CustomProviderOptions~~
+
+> **CustomProviderOptions** = `_CustomProviderOptions`
+
+Defined in: [types/appcheck.ts:378](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L378)
+
+***
+
+### ~~ListenerResult~~
+
+> **ListenerResult** = [`AppCheckListenerResult`](#appchecklistenerresult)
+
+Defined in: [types/appcheck.ts:371](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L371)
+
+***
+
+### ~~Module~~
+
+> **Module** = [`AppCheck`](#appcheck)
+
+Defined in: [types/appcheck.ts:373](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L373)
+
+***
+
+### ~~Options~~
+
+> **Options** = [`AppCheckOptions`](#appcheckoptions)
+
+Defined in: [types/appcheck.ts:368](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L368)
+
+***
+
+### ~~Provider~~
+
+> **Provider** = [`AppCheckProvider`](#appcheckprovider)
+
+Defined in: [types/appcheck.ts:366](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L366)
+
+***
+
+### ~~ProviderOptions~~
+
+> **ProviderOptions** = [`CustomProviderOptions`](#customprovideroptions)
+
+Defined in: [types/appcheck.ts:367](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L367)
+
+***
+
+### ~~Statics~~
+
+> **Statics** = [`AppCheckStatics`](#appcheckstatics)
+
+Defined in: [types/appcheck.ts:372](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L372)
+
+***
+
+### ~~Token~~
+
+> **Token** = [`AppCheckToken`](#appchecktoken)
+
+Defined in: [types/appcheck.ts:369](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L369)
+
+***
+
+### ~~TokenResult~~
+
+> **TokenResult** = [`AppCheckTokenResult`](#appchecktokenresult)
+
+Defined in: [types/appcheck.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/app-check/lib/types/appcheck.ts#L370)
diff --git a/docs/reference/@react-native-firebase/app-distribution.mdx b/docs/reference/@react-native-firebase/app-distribution.mdx
new file mode 100644
index 0000000000..b67a0cd221
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app-distribution.mdx
@@ -0,0 +1,7 @@
+[**React Native Firebase**](../README.mdx)
+
+***
+
+[React Native Firebase](../packages.mdx) / @react-native-firebase/app-distribution
+
+# @react-native-firebase/app-distribution
diff --git a/docs/reference/@react-native-firebase/app/README.mdx b/docs/reference/@react-native-firebase/app/README.mdx
new file mode 100644
index 0000000000..bd915016dc
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app/README.mdx
@@ -0,0 +1,445 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/app
+
+# @react-native-firebase/app
+
+## Functions
+
+### deleteApp()
+
+> **deleteApp**(`app`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L38)
+
+Renders this app unusable and frees the resources of all associated services.
+
+#### Parameters
+
+##### app
+
+[`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The app to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### getApp()
+
+> **getApp**(`name?`): [`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [modular.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L109)
+
+Retrieves an instance of a Firebase app.
+
+#### Parameters
+
+##### name?
+
+`string`
+
+The optional name of the app to return ('[DEFAULT]' if omitted).
+
+#### Returns
+
+[`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The requested Firebase app instance.
+
+***
+
+### getApps()
+
+> **getApps**(): [`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)[]
+
+Defined in: [modular.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L77)
+
+Gets the list of all initialized apps.
+
+#### Returns
+
+[`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)[]
+
+An array of all initialized Firebase apps.
+
+***
+
+### initializeApp()
+
+> **initializeApp**(`options`, `configOrName?`): `Promise`\<[`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)\>
+
+Defined in: [modular.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L91)
+
+Initializes a Firebase app with the provided options and name.
+
+#### Parameters
+
+##### options
+
+[`FirebaseAppOptions`](namespaces/ReactNativeFirebase.mdx#firebaseappoptions-1)
+
+Options to configure the services used in the app.
+
+##### configOrName?
+
+`string` \| [`FirebaseAppConfig`](namespaces/ReactNativeFirebase.mdx#firebaseappconfig)
+
+The optional name of the app, or config for the app to initialize (a name of '[DEFAULT]' will be used if omitted).
+
+#### Returns
+
+`Promise`\<[`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)\>
+
+The initialized Firebase app.
+
+***
+
+### jsonGetAll()
+
+> **jsonGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [modular.ts:164](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L164)
+
+Gets react-native-firebase specific "firebase.json" data
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native firebase.json constants
+
+***
+
+### metaGetAll()
+
+> **metaGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [modular.ts:153](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L153)
+
+Gets react-native-firebase specific "meta" data from native Info.plist / AndroidManifest.xml
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native meta data
+
+***
+
+### onLog()
+
+> **onLog**(`logCallback`, `options?`): `void`
+
+Defined in: [modular.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L69)
+
+Sets log handler for VertexAI only currently.
+
+#### Parameters
+
+##### logCallback
+
+[`LogCallback`](#logcallback) \| `null`
+
+The callback function to handle logs.
+
+##### options?
+
+[`LogOptions`](#logoptions)
+
+Optional settings for log handling.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### preferencesClearAll()
+
+> **preferencesClearAll**(): `Promise`\<`void`\>
+
+Defined in: [modular.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L175)
+
+Clears react-native-firebase specific native preferences
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### preferencesGetAll()
+
+> **preferencesGetAll**(): `Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+Defined in: [modular.ts:186](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L186)
+
+Gets react-native-firebase specific native preferences
+
+#### Returns
+
+`Promise`\<\{\[`key`: `string`\]: `string` \| `boolean`; \}\>
+
+map of key / value pairs containing native preferences data
+
+***
+
+### preferencesSetBool()
+
+> **preferencesSetBool**(`key`, `value`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:199](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L199)
+
+Sets react-native-firebase specific native boolean preference
+
+#### Parameters
+
+##### key
+
+`string`
+
+the name of the native preference to set
+
+##### value
+
+`boolean`
+
+the value of the native preference to set
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### preferencesSetString()
+
+> **preferencesSetString**(`key`, `value`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L212)
+
+Sets react-native-firebase specific native string preference
+
+#### Parameters
+
+##### key
+
+`string`
+
+the name of the native preference to set
+
+##### value
+
+`string`
+
+the value of the native preference to set
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### registerVersion()
+
+> **registerVersion**(`_libraryKeyOrName`, `_version`, `_variant?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L55)
+
+Registers a library's name and version for platform logging purposes.
+
+#### Parameters
+
+##### \_libraryKeyOrName
+
+`string`
+
+library name or key.
+
+##### \_version
+
+`string`
+
+library version.
+
+##### \_variant?
+
+`string`
+
+library variant. Optional.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### setLogLevel()
+
+> **setLogLevel**(`logLevel`): `void`
+
+Defined in: [modular.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L123)
+
+Sets the log level across all Firebase SDKs.
+
+#### Parameters
+
+##### logLevel
+
+[`LogLevelString`](namespaces/ReactNativeFirebase.mdx#loglevelstring)
+
+The log level to set ('debug', 'verbose', 'info', 'warn', 'error', 'silent').
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### setReactNativeAsyncStorage()
+
+> **setReactNativeAsyncStorage**(`asyncStorage`): `void`
+
+Defined in: [modular.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L138)
+
+The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
+If not specified, in memory persistence is used.
+
+This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
+
+#### Parameters
+
+##### asyncStorage
+
+[`ReactNativeAsyncStorage`](namespaces/ReactNativeFirebase.mdx#reactnativeasyncstorage)
+
+#### Returns
+
+`void`
+
+## Interfaces
+
+### LogCallbackParams
+
+Defined in: [types/app.ts:645](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L645)
+
+#### Properties
+
+##### args
+
+> **args**: `unknown`[]
+
+Defined in: [types/app.ts:648](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L648)
+
+##### level
+
+> **level**: [`LogLevelString`](namespaces/ReactNativeFirebase.mdx#loglevelstring)
+
+Defined in: [types/app.ts:646](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L646)
+
+##### message
+
+> **message**: `string`
+
+Defined in: [types/app.ts:647](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L647)
+
+##### type
+
+> **type**: `string`
+
+Defined in: [types/app.ts:649](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L649)
+
+***
+
+### LogOptions
+
+Defined in: [types/app.ts:654](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L654)
+
+#### Properties
+
+##### level?
+
+> `optional` **level?**: [`LogLevelString`](namespaces/ReactNativeFirebase.mdx#loglevelstring)
+
+Defined in: [types/app.ts:655](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L655)
+
+## Namespaces
+
+- [ReactNativeFirebase](namespaces/ReactNativeFirebase.mdx)
+- [Utils](namespaces/Utils.mdx)
+
+## References
+
+### default
+
+Renames and re-exports [firebase](#firebase)
+
+## Type Aliases
+
+### FirebaseApp
+
+> **FirebaseApp** = [`FirebaseApp`](namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/app.ts:659](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L659)
+
+***
+
+### LogCallback
+
+> **LogCallback** = (`callbackParams`) => `void`
+
+Defined in: [types/app.ts:652](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L652)
+
+#### Parameters
+
+##### callbackParams
+
+[`LogCallbackParams`](#logcallbackparams)
+
+#### Returns
+
+`void`
+
+## Variables
+
+### firebase
+
+> `const` **firebase**: `FirebaseRoot`
+
+Defined in: [namespaced.ts:21](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/namespaced.ts#L21)
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"24.0.0"` = `sdkVersion`
+
+Defined in: [modular.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/modular.ts#L219)
+
+***
+
+### utils
+
+> **utils**: [`Statics`](namespaces/Utils.mdx#statics) & () => [`Module`](namespaces/Utils.mdx#abstract-module)
+
+Defined in: [utils/index.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/utils/index.ts#L85)
diff --git a/docs/reference/@react-native-firebase/app/namespaces/ReactNativeFirebase.mdx b/docs/reference/@react-native-firebase/app/namespaces/ReactNativeFirebase.mdx
new file mode 100644
index 0000000000..e755d27fd0
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app/namespaces/ReactNativeFirebase.mdx
@@ -0,0 +1,721 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/app](../README.mdx) / ReactNativeFirebase
+
+# ReactNativeFirebase
+
+Core React Native Firebase package types.
+
+## Firebase
+
+app
+
+## Classes
+
+### `abstract` FirebaseModule
+
+Defined in: [types/app.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L275)
+
+A class that all React Native Firebase modules extend from to provide default behaviour.
+
+#### Extended by
+
+- [`Module`](Utils.mdx#abstract-module)
+- [`Analytics`](../../analytics/README.mdx#analytics)
+- [`AppCheck`](../../app-check/README.mdx#appcheck)
+- [`Crashlytics`](../../crashlytics/README.mdx#crashlytics)
+- [`Functions`](../../functions/README.mdx#functions)
+- [`Messaging`](../../messaging/README.mdx#messaging)
+- [`Module`](../../ml/namespaces/FirebaseMLTypes.mdx#module)
+- [`Module`](../../perf/namespaces/FirebasePerformanceTypes.mdx#module)
+- [`Module`](../../remote-config/namespaces/FirebaseRemoteConfigTypes.mdx#module)
+- [`Module`](../../storage/namespaces/FirebaseStorageTypes.mdx#module)
+
+#### Constructors
+
+##### Constructor
+
+> **new FirebaseModule**(): [`FirebaseModule`](#abstract-firebasemodule)
+
+###### Returns
+
+[`FirebaseModule`](#abstract-firebasemodule)
+
+#### Properties
+
+##### app
+
+> `abstract` **app**: [`FirebaseApp`](#firebaseapp)
+
+Defined in: [types/app.ts:279](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L279)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+## Interfaces
+
+### FirebaseApp
+
+Defined in: [types/app.ts:166](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L166)
+
+Full FirebaseApp interface that extends the base interface.
+Module-specific methods (auth(), analytics(), etc.) are added here via declaration merging
+from individual package .d.ts files.
+
+#### Extends
+
+- [`FirebaseAppBase`](#firebaseappbase)
+
+#### Methods
+
+##### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+Defined in: [types/app.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L156)
+
+Make this app unusable and free up resources.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Inherited from
+
+[`FirebaseAppBase`](#firebaseappbase).[`delete`](#delete-1)
+
+##### utils()
+
+> **utils**(): [`Module`](Utils.mdx#abstract-module)
+
+Defined in: [types/app.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L158)
+
+###### Returns
+
+[`Module`](Utils.mdx#abstract-module)
+
+###### Inherited from
+
+[`FirebaseAppBase`](#firebaseappbase).[`utils`](#utils-1)
+
+#### Properties
+
+##### automaticDataCollectionEnabled
+
+> **automaticDataCollectionEnabled**: `boolean`
+
+Defined in: [types/app.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L151)
+
+The settable config flag for GDPR opt-in/opt-out
+
+###### Inherited from
+
+[`FirebaseAppBase`](#firebaseappbase).[`automaticDataCollectionEnabled`](#automaticdatacollectionenabled-1)
+
+##### name
+
+> `readonly` **name**: `string`
+
+Defined in: [types/app.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L141)
+
+The name (identifier) for this App. '[DEFAULT]' is the default App.
+
+###### Inherited from
+
+[`FirebaseAppBase`](#firebaseappbase).[`name`](#name-1)
+
+##### options
+
+> `readonly` **options**: [`FirebaseAppOptions`](#firebaseappoptions-1)
+
+Defined in: [types/app.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L146)
+
+The (read-only) configuration options from the app initialization.
+
+###### Inherited from
+
+[`FirebaseAppBase`](#firebaseappbase).[`options`](#options-1)
+
+***
+
+### FirebaseAppBase
+
+Defined in: [types/app.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L137)
+
+Base interface for FirebaseApp containing core properties and methods.
+The concrete FirebaseApp class implements this interface.
+Module-specific methods (auth(), analytics(), etc.) are added to FirebaseApp via declaration merging.
+
+#### Extended by
+
+- [`FirebaseApp`](#firebaseapp)
+
+#### Methods
+
+##### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+Defined in: [types/app.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L156)
+
+Make this app unusable and free up resources.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### utils()
+
+> **utils**(): [`Module`](Utils.mdx#abstract-module)
+
+Defined in: [types/app.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L158)
+
+###### Returns
+
+[`Module`](Utils.mdx#abstract-module)
+
+#### Properties
+
+##### automaticDataCollectionEnabled
+
+> **automaticDataCollectionEnabled**: `boolean`
+
+Defined in: [types/app.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L151)
+
+The settable config flag for GDPR opt-in/opt-out
+
+##### name
+
+> `readonly` **name**: `string`
+
+Defined in: [types/app.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L141)
+
+The name (identifier) for this App. '[DEFAULT]' is the default App.
+
+##### options
+
+> `readonly` **options**: [`FirebaseAppOptions`](#firebaseappoptions-1)
+
+Defined in: [types/app.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L146)
+
+The (read-only) configuration options from the app initialization.
+
+***
+
+### FirebaseAppConfig
+
+Defined in: [types/app.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L111)
+
+#### Properties
+
+##### automaticDataCollectionEnabled?
+
+> `optional` **automaticDataCollectionEnabled?**: `boolean`
+
+Defined in: [types/app.ts:123](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L123)
+
+Default setting for data collection on startup that affects all Firebase module startup data collection settings,
+in the absence of module-specific overrides. This will start as false if you set "app_data_collection_default_enabled"
+to false in firebase.json and may be used in opt-in flows, for example a GDPR-compliant app.
+If configured false initially, set to true after obtaining consent, then enable module-specific settings as needed afterwards.
+
+##### automaticResourceManagement?
+
+> `optional` **automaticResourceManagement?**: `boolean`
+
+Defined in: [types/app.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L129)
+
+If set to true it indicates that Firebase should close database connections
+automatically when the app is in the background. Disabled by default.
+
+##### name?
+
+> `optional` **name?**: `string`
+
+Defined in: [types/app.ts:115](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L115)
+
+The Firebase App name, defaults to [DEFAULT] if none provided.
+
+***
+
+### FirebaseAppOptions
+
+Defined in: [types/app.ts:54](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L54)
+
+#### Indexable
+
+> \[`name`: `string`\]: `any`
+
+#### Properties
+
+##### androidClientId?
+
+> `optional` **androidClientId?**: `string`
+
+Defined in: [types/app.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L102)
+
+iOS only - The Android client ID used in Google AppInvite when an iOS app has its Android version, for
+example "12345.apps.googleusercontent.com".
+
+##### apiKey?
+
+> `optional` **apiKey?**: `string`
+
+Defined in: [types/app.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L64)
+
+An API key used for authenticating requests from your app, e.g.
+"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers.
+
+##### appId
+
+> **appId**: `string`
+
+Defined in: [types/app.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L58)
+
+The Google App ID that is used to uniquely identify an instance of an app.
+
+##### clientId?
+
+> `optional` **clientId?**: `string`
+
+Defined in: [types/app.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L96)
+
+iOS only - The OAuth2 client ID for iOS application used to authenticate Google users, for example
+"12345.apps.googleusercontent.com", used for signing in with Google.
+
+##### databaseURL?
+
+> `optional` **databaseURL?**: `string`
+
+Defined in: [types/app.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L69)
+
+The database root URL, e.g. "http://abc-xyz-123.firebaseio.com".
+
+##### deepLinkURLScheme?
+
+> `optional` **deepLinkURLScheme?**: `string`
+
+Defined in: [types/app.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L107)
+
+iOS only - The URL scheme used to set up Durable Deep Link service.
+
+##### measurementId?
+
+> `optional` **measurementId?**: `string`
+
+Defined in: [types/app.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L79)
+
+The tracking ID for Google Analytics, e.g. "UA-12345678-1", used to configure Google Analytics.
+
+##### messagingSenderId?
+
+> `optional` **messagingSenderId?**: `string`
+
+Defined in: [types/app.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L90)
+
+The Project Number from the Google Developer's console, for example "012345678901", used to
+configure Google Cloud Messaging.
+
+##### projectId
+
+> **projectId**: `string`
+
+Defined in: [types/app.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L74)
+
+The Project ID from the Firebase console, for example "abc-xyz-123".
+
+##### storageBucket?
+
+> `optional` **storageBucket?**: `string`
+
+Defined in: [types/app.ts:84](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L84)
+
+The Google Cloud Storage bucket name, e.g. "abc-xyz-123.storage.firebase.com".
+
+***
+
+### Module
+
+Defined in: [types/app.ts:203](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L203)
+
+#### Methods
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](#firebaseapp)
+
+Defined in: [types/app.ts:231](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L231)
+
+Retrieve an instance of a FirebaseApp.
+
+###### Parameters
+
+###### name?
+
+`string`
+
+The optional name of the app to return ('[DEFAULT]' if omitted)
+
+###### Returns
+
+[`FirebaseApp`](#firebaseapp)
+
+###### Example
+
+```js
+const app = firebase.app('foo');
+```
+
+##### initializeApp()
+
+###### Call Signature
+
+> **initializeApp**(`options`, `config?`): `Promise`\<[`FirebaseApp`](#firebaseapp)\>
+
+Defined in: [types/app.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L210)
+
+Create (and initialize) a FirebaseApp.
+
+###### Parameters
+
+###### options
+
+[`FirebaseAppOptions`](#firebaseappoptions-1)
+
+Options to configure the services used in the App.
+
+###### config?
+
+[`FirebaseAppConfig`](#firebaseappconfig)
+
+The optional config for your firebase app
+
+###### Returns
+
+`Promise`\<[`FirebaseApp`](#firebaseapp)\>
+
+###### Call Signature
+
+> **initializeApp**(`options`, `name?`): `Promise`\<[`FirebaseApp`](#firebaseapp)\>
+
+Defined in: [types/app.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L219)
+
+Create (and initialize) a FirebaseApp.
+
+###### Parameters
+
+###### options
+
+[`FirebaseAppOptions`](#firebaseappoptions-1)
+
+Options to configure the services used in the App.
+
+###### name?
+
+`string`
+
+The optional name of the app to initialize ('[DEFAULT]' if
+omitted)
+
+###### Returns
+
+`Promise`\<[`FirebaseApp`](#firebaseapp)\>
+
+##### setLogLevel()
+
+> **setLogLevel**(`logLevel`): `void`
+
+Defined in: [types/app.ts:244](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L244)
+
+Set the log level across all modules. Only applies to iOS currently, has no effect on Android.
+Should be one of 'error', 'warn', 'info', or 'debug'.
+Logs messages at the configured level or lower (less verbose / more important).
+Note that if an app is running from AppStore, it will never log above info even if
+level is set to a higher (more verbose) setting.
+Note that iOS is missing firebase-js-sdk log levels 'verbose' and 'silent'.
+'verbose' if used will map to 'debug', 'silent' has no valid mapping and will return an error if used.
+
+###### Parameters
+
+###### logLevel
+
+[`LogLevelString`](#loglevelstring)
+
+###### Returns
+
+`void`
+
+###### Ios
+
+##### setReactNativeAsyncStorage()
+
+> **setReactNativeAsyncStorage**(`asyncStorage`): `void`
+
+Defined in: [types/app.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L252)
+
+The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
+If not specified, in memory persistence is used.
+
+This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
+
+###### Parameters
+
+###### asyncStorage
+
+[`ReactNativeAsyncStorage`](#reactnativeasyncstorage)
+
+###### Returns
+
+`void`
+
+#### Properties
+
+##### apps
+
+> **apps**: [`FirebaseApp`](#firebaseapp)[]
+
+Defined in: [types/app.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L257)
+
+A (read-only) array of all the initialized Apps.
+
+##### SDK\_VERSION
+
+> `readonly` **SDK\_VERSION**: `string`
+
+Defined in: [types/app.ts:262](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L262)
+
+The current React Native Firebase version.
+
+##### utils
+
+> **utils**: [`Module`](Utils.mdx#abstract-module)
+
+Defined in: [types/app.ts:269](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L269)
+
+Utils provides a collection of utilities to aid in using Firebase
+and related services inside React Native, e.g. Test Lab helpers
+and Google Play Services version helpers.
+
+***
+
+### NativeFirebaseError
+
+Defined in: [types/app.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L25)
+
+#### Extends
+
+- `Error`
+
+#### Properties
+
+##### code
+
+> `readonly` **code**: `string`
+
+Defined in: [types/app.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L29)
+
+Firebase error code, e.g. `auth/invalid-email`
+
+##### message
+
+> `readonly` **message**: `string`
+
+Defined in: [types/app.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L34)
+
+Firebase error message
+
+###### Overrides
+
+`Error.message`
+
+##### namespace
+
+> `readonly` **namespace**: `string`
+
+Defined in: [types/app.ts:39](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L39)
+
+The firebase module namespace that this error originated from, e.g. 'analytics'
+
+##### nativeErrorCode
+
+> `readonly` **nativeErrorCode**: `string` \| `number`
+
+Defined in: [types/app.ts:44](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L44)
+
+The native sdks returned error code, different per platform
+
+##### nativeErrorMessage
+
+> `readonly` **nativeErrorMessage**: `string`
+
+Defined in: [types/app.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L49)
+
+The native sdks returned error message, different per platform
+
+***
+
+### ReactNativeAsyncStorage
+
+Defined in: [types/app.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L176)
+
+Interface for a supplied `AsyncStorage`.
+
+#### Indexable
+
+> \[`key`: `string`\]: `any`
+
+#### Properties
+
+##### getItem
+
+> **getItem**: `Function`
+
+Defined in: [types/app.ts:191](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L191)
+
+Retrieve an item from storage.
+
+###### Param
+
+storage key.
+
+##### removeItem
+
+> **removeItem**: `Function`
+
+Defined in: [types/app.ts:198](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L198)
+
+Remove an item from storage.
+
+###### Param
+
+storage key.
+
+##### setItem
+
+> **setItem**: `Function`
+
+Defined in: [types/app.ts:184](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L184)
+
+Persist an item in storage.
+
+###### Param
+
+storage key.
+
+###### Param
+
+storage value.
+
+## Type Aliases
+
+### FirebaseModuleWithStatics
+
+> **FirebaseModuleWithStatics**\<`M`, `S`\> = \{(): `M`; `SDK_VERSION`: `string`; \} & `S`
+
+Defined in: [types/app.ts:282](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L282)
+
+#### Type Parameters
+
+##### M
+
+`M`
+
+##### S
+
+`S` = \{ \}
+
+***
+
+### FirebaseModuleWithStaticsAndApp
+
+> **FirebaseModuleWithStaticsAndApp**\<`M`, `S`\> = \{(`app?`): `M`; `SDK_VERSION`: `string`; \} & `S`
+
+Defined in: [types/app.ts:291](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L291)
+
+#### Type Parameters
+
+##### M
+
+`M`
+
+##### S
+
+`S` = \{ \}
+
+***
+
+### FirebaseNamespacedExport
+
+> **FirebaseNamespacedExport**\<`Namespace`, `M`, `S`, `HasCustomArg`\> = [`Module`](#module) & `Record`\<`Namespace`, [`FirebaseModuleWithStaticsAndApp`](#firebasemodulewithstaticsandapp)\<`M`, `S`\>\> & `object`
+
+Defined in: [types/app.ts:322](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L322)
+
+Type for the `firebase` named export from module packages.
+Provides complete typing for:
+- Root level access: `firebase.functions(app?)`
+- App level access: `firebase.app().functions(region?)`
+- Statics: `firebase.functions.HttpsErrorCode`
+- Root properties: `firebase.SDK_VERSION`, `firebase.app()`, etc.
+
+#### Type Declaration
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](#firebaseapp) & `Record`\<`Namespace`, `HasCustomArg` *extends* `true` ? (`arg?`) => `M` : () => `M`\>
+
+###### Parameters
+
+###### name?
+
+`string`
+
+###### Returns
+
+[`FirebaseApp`](#firebaseapp) & `Record`\<`Namespace`, `HasCustomArg` *extends* `true` ? (`arg?`) => `M` : () => `M`\>
+
+#### Type Parameters
+
+##### Namespace
+
+`Namespace` *extends* `string`
+
+The module namespace (e.g., 'functions', 'auth', 'firestore')
+
+##### M
+
+`M` *extends* [`FirebaseModule`](#abstract-firebasemodule)
+
+The module instance type (must extend FirebaseModule with `app` property)
+
+##### S
+
+`S` *extends* `object` = `object`
+
+The module statics type
+
+##### HasCustomArg
+
+`HasCustomArg` *extends* `boolean` = `false`
+
+true if app-level accessor takes optional string (region/url/databaseId)
+
+#### Example
+
+```ts
+// In functions package:
+export const firebase = getFirebaseRoot() as ReactNativeFirebase.FirebaseNamespacedExport<
+ 'functions',
+ FunctionsModule,
+ FunctionsStatics,
+ true // functions() takes regionOrCustomDomain
+>;
+```
+
+***
+
+### LogLevelString
+
+> **LogLevelString** = `"debug"` \| `"verbose"` \| `"info"` \| `"warn"` \| `"error"` \| `"silent"`
+
+Defined in: [types/app.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L52)
diff --git a/docs/reference/@react-native-firebase/app/namespaces/Utils.mdx b/docs/reference/@react-native-firebase/app/namespaces/Utils.mdx
new file mode 100644
index 0000000000..67ceceee40
--- /dev/null
+++ b/docs/reference/@react-native-firebase/app/namespaces/Utils.mdx
@@ -0,0 +1,596 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/app](../README.mdx) / Utils
+
+# Utils
+
+## Firebase
+
+utils
+
+## Classes
+
+### `abstract` Module
+
+Defined in: [types/app.ts:568](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L568)
+
+The React Native Firebase Utils service interface.
+
+> This module is available for the default app only.
+
+#### Example
+
+Get the Utils service for the default app:
+
+```js
+const defaultAppUtils = firebase.utils();
+```
+
+#### Extends
+
+- [`FirebaseModule`](ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Constructors
+
+##### Constructor
+
+> **new Module**(): [`Module`](#abstract-module)
+
+###### Returns
+
+[`Module`](#abstract-module)
+
+###### Inherited from
+
+[`FirebaseModule`](ReactNativeFirebase.mdx#abstract-firebasemodule).[`constructor`](ReactNativeFirebase.mdx#constructor)
+
+#### Methods
+
+##### getPlayServicesStatus()
+
+> `abstract` **getPlayServicesStatus**(): `Promise`\<[`PlayServicesAvailability`](#playservicesavailability-1)\>
+
+Defined in: [types/app.ts:604](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L604)
+
+Returns PlayServicesAvailability properties
+
+#### Example
+
+```js
+const PlayServicesAvailability = await firebase.utils().getPlayServicesStatus();
+```
+
+###### Returns
+
+`Promise`\<[`PlayServicesAvailability`](#playservicesavailability-1)\>
+
+###### Android
+
+Android only - iOS always returns { isAvailable: true, status: 0 }
+
+##### makePlayServicesAvailable()
+
+> `abstract` **makePlayServicesAvailable**(): `Promise`\<`void`\>
+
+Defined in: [types/app.ts:629](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L629)
+
+Attempts to make Google Play services available on this device
+
+#### Example
+
+```js
+await firebase.utils().makePlayServicesAvailable();
+```
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Android
+
+Android only - iOS returns undefined
+
+##### promptForPlayServices()
+
+> `abstract` **promptForPlayServices**(): `Promise`\<`void`\>
+
+Defined in: [types/app.ts:617](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L617)
+
+A prompt appears on the device to ask the user to update play services
+
+#### Example
+
+```js
+await firebase.utils().promptForPlayServices();
+```
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Android
+
+Android only - iOS returns undefined
+
+##### resolutionForPlayServices()
+
+> `abstract` **resolutionForPlayServices**(): `Promise`\<`void`\>
+
+Defined in: [types/app.ts:641](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L641)
+
+Resolves an error by starting any intents requiring user interaction.
+
+#### Example
+
+```js
+await firebase.utils().resolutionForPlayServices();
+```
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Android
+
+Android only - iOS returns undefined
+
+#### Properties
+
+##### app
+
+> `abstract` **app**: [`FirebaseApp`](ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/app.ts:279](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L279)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+###### Inherited from
+
+[`FirebaseModule`](ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](ReactNativeFirebase.mdx#app)
+
+##### isRunningInTestLab
+
+> `abstract` **isRunningInTestLab**: `boolean`
+
+Defined in: [types/app.ts:579](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L579)
+
+Returns true if this app is running inside a Firebase Test Lab environment.
+
+#### Example
+
+```js
+const isRunningInTestLab = await firebase.utils().isRunningInTestLab;
+```
+
+###### Android
+
+Android only - iOS returns false
+
+##### playServicesAvailability
+
+> `abstract` **playServicesAvailability**: [`PlayServicesAvailability`](#playservicesavailability-1)
+
+Defined in: [types/app.ts:591](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L591)
+
+Returns PlayServicesAvailability properties
+
+#### Example
+
+```js
+const PlayServicesAvailability = await firebase.utils().playServicesAvailability;
+```
+
+###### Android
+
+Android only - iOS always returns { isAvailable: true, status: 0 }
+
+## Enumerations
+
+### PlayServicesAvailabilityStatusCodes
+
+Defined in: [types/app.ts:474](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L474)
+
+For further information on the status codes available & what they represent, please head over
+to ConnectionResult documentation:
+https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult
+
+#### Enumeration Members
+
+##### API\_UNAVAILABLE
+
+> **API\_UNAVAILABLE**: `16`
+
+Defined in: [types/app.ts:475](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L475)
+
+##### CANCELED
+
+> **CANCELED**: `13`
+
+Defined in: [types/app.ts:476](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L476)
+
+##### DEVELOPER\_ERROR
+
+> **DEVELOPER\_ERROR**: `10`
+
+Defined in: [types/app.ts:477](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L477)
+
+##### DRIVE\_EXTERNAL\_STORAGE\_REQUIRED
+
+> **DRIVE\_EXTERNAL\_STORAGE\_REQUIRED**: `1500`
+
+Defined in: [types/app.ts:478](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L478)
+
+##### INTERNAL\_ERROR
+
+> **INTERNAL\_ERROR**: `8`
+
+Defined in: [types/app.ts:479](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L479)
+
+##### INTERRUPTED
+
+> **INTERRUPTED**: `15`
+
+Defined in: [types/app.ts:480](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L480)
+
+##### INVALID\_ACCOUNT
+
+> **INVALID\_ACCOUNT**: `5`
+
+Defined in: [types/app.ts:481](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L481)
+
+##### LICENSE\_CHECK\_FAILED
+
+> **LICENSE\_CHECK\_FAILED**: `11`
+
+Defined in: [types/app.ts:482](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L482)
+
+##### NETWORK\_ERROR
+
+> **NETWORK\_ERROR**: `7`
+
+Defined in: [types/app.ts:483](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L483)
+
+##### RESOLUTION\_REQUIRED
+
+> **RESOLUTION\_REQUIRED**: `6`
+
+Defined in: [types/app.ts:484](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L484)
+
+##### RESTRICTED\_PROFILE
+
+> **RESTRICTED\_PROFILE**: `20`
+
+Defined in: [types/app.ts:485](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L485)
+
+##### SERVICE\_DISABLED
+
+> **SERVICE\_DISABLED**: `3`
+
+Defined in: [types/app.ts:486](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L486)
+
+##### SERVICE\_INVALID
+
+> **SERVICE\_INVALID**: `9`
+
+Defined in: [types/app.ts:487](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L487)
+
+##### SERVICE\_MISSING
+
+> **SERVICE\_MISSING**: `1`
+
+Defined in: [types/app.ts:488](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L488)
+
+##### SERVICE\_MISSING\_PERMISSION
+
+> **SERVICE\_MISSING\_PERMISSION**: `19`
+
+Defined in: [types/app.ts:489](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L489)
+
+##### SERVICE\_UPDATING
+
+> **SERVICE\_UPDATING**: `18`
+
+Defined in: [types/app.ts:490](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L490)
+
+##### SERVICE\_VERSION\_UPDATE\_REQUIRED
+
+> **SERVICE\_VERSION\_UPDATE\_REQUIRED**: `2`
+
+Defined in: [types/app.ts:491](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L491)
+
+##### SIGN\_IN\_FAILED
+
+> **SIGN\_IN\_FAILED**: `17`
+
+Defined in: [types/app.ts:492](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L492)
+
+##### SIGN\_IN\_REQUIRED
+
+> **SIGN\_IN\_REQUIRED**: `4`
+
+Defined in: [types/app.ts:493](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L493)
+
+##### SUCCESS
+
+> **SUCCESS**: `0`
+
+Defined in: [types/app.ts:494](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L494)
+
+##### TIMEOUT
+
+> **TIMEOUT**: `14`
+
+Defined in: [types/app.ts:495](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L495)
+
+## Interfaces
+
+### FilePath
+
+Defined in: [types/app.ts:351](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L351)
+
+A collection of native device file paths to aid in the usage of file path based methods.
+
+Concatenate a file path with your target file name when using with Storage `putFile` or `writeToFile`.
+
+```js
+firebase.utils.FilePath;
+```
+
+#### Properties
+
+##### CACHES\_DIRECTORY
+
+> **CACHES\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:372](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L372)
+
+Returns an absolute path to the application specific cache directory on the filesystem.
+
+The system will automatically delete files in this directory when disk space is needed elsewhere on the device, starting with the oldest files first.
+
+```js
+firebase.utils.FilePath.CACHES_DIRECTORY;
+```
+
+##### DOCUMENT\_DIRECTORY
+
+> **DOCUMENT\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:388](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L388)
+
+Returns an absolute path to the users Documents directory.
+
+Use this directory to place documents that have been created by the user.
+
+Normally this is the external files directory on Android but if no external storage directory found,
+e.g. removable media has been ejected by the user, it will fall back to internal storage. This may
+under rare circumstances where device storage environment changes cause the directory to be different
+between runs of the application
+
+```js
+firebase.utils.FilePath.DOCUMENT_DIRECTORY;
+```
+
+##### EXTERNAL\_DIRECTORY
+
+> **EXTERNAL\_DIRECTORY**: `string` \| `null`
+
+Defined in: [types/app.ts:425](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L425)
+
+Returns an absolute path to the directory on the primary shared/external storage device.
+
+Here your application can place persistent files it owns. These files are internal to the application, and not typically visible to the user as media.
+
+Returns null if no external storage directory found, e.g. removable media has been ejected by the user.
+
+```js
+firebase.utils.FilePath.EXTERNAL_DIRECTORY;
+```
+
+###### Android
+
+Android only - iOS returns null
+
+##### EXTERNAL\_STORAGE\_DIRECTORY
+
+> **EXTERNAL\_STORAGE\_DIRECTORY**: `string` \| `null`
+
+Defined in: [types/app.ts:441](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L441)
+
+Returns an absolute path to the primary shared/external storage directory.
+
+Traditionally this is an SD card, but it may also be implemented as built-in storage on a device.
+
+Returns null if no external storage directory found, e.g. removable media has been ejected by the user.
+Requires special permission granted by Play Store review team on Android, is unlikely to be a valid path.
+
+```js
+firebase.utils.FilePath.EXTERNAL_STORAGE_DIRECTORY;
+```
+
+###### Android
+
+Android only - iOS returns null
+
+##### LIBRARY\_DIRECTORY
+
+> **LIBRARY\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:410](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L410)
+
+Returns an absolute path to the apps library/resources directory.
+
+E.g. this can be used for things like documentation, support files, and configuration files and generic resources.
+
+```js
+firebase.utils.FilePath.LIBRARY_DIRECTORY;
+```
+
+##### MAIN\_BUNDLE
+
+> **MAIN\_BUNDLE**: `string`
+
+Defined in: [types/app.ts:361](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L361)
+
+Returns an absolute path to the applications main bundle.
+
+```js
+firebase.utils.FilePath.MAIN_BUNDLE;
+```
+
+###### Ios
+
+iOS only
+
+##### MOVIES\_DIRECTORY
+
+> **MOVIES\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:461](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L461)
+
+Returns an absolute path to a directory in which to place movies that are available to the user.
+Requires special permission granted by Play Store review team on Android, is unlikely to be a valid path.
+
+```js
+firebase.utils.FilePath.MOVIES_DIRECTORY;
+```
+
+##### PICTURES\_DIRECTORY
+
+> **PICTURES\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:451](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L451)
+
+Returns an absolute path to a directory in which to place pictures that are available to the user.
+Requires special permission granted by Play Store review team on Android, is unlikely to be a valid path.
+
+```js
+firebase.utils.FilePath.PICTURES_DIRECTORY;
+```
+
+##### TEMP\_DIRECTORY
+
+> **TEMP\_DIRECTORY**: `string`
+
+Defined in: [types/app.ts:399](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L399)
+
+Returns an absolute path to a temporary directory.
+
+Use this directory to create temporary files. The system will automatically delete files in this directory when disk space is needed elsewhere on the device, starting with the oldest files first.
+
+```js
+firebase.utils.FilePath.TEMP_DIRECTORY;
+```
+
+***
+
+### PlayServicesAvailability
+
+Defined in: [types/app.ts:498](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L498)
+
+#### Properties
+
+##### error
+
+> **error**: `string` \| `undefined`
+
+Defined in: [types/app.ts:552](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L552)
+
+A human readable error string
+
+```js
+firebase.utils().playServicesAvailability.error;
+```
+
+###### Android
+
+Android only - iOS returns undefined
+
+##### hasResolution
+
+> **hasResolution**: `boolean` \| `undefined`
+
+Defined in: [types/app.ts:532](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L532)
+
+If Play Services is not available on the device, hasResolution indicates
+whether it is possible to do something about it (e.g. install Play Services).
+
+```js
+firebase.utils().playServicesAvailability.hasResolution;
+```
+
+###### Android
+
+Android only - iOS returns undefined
+
+##### isAvailable
+
+> **isAvailable**: `boolean`
+
+Defined in: [types/app.ts:521](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L521)
+
+Returns a boolean indicating whether Play Store is available on the device
+
+```js
+firebase.utils().playServicesAvailability.isAvailable;
+```
+
+###### Android
+
+Android only - iOS returns true
+
+##### isUserResolvableError
+
+> **isUserResolvableError**: `boolean` \| `undefined`
+
+Defined in: [types/app.ts:542](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L542)
+
+If an error was received, this indicates whether the error is resolvable
+
+```js
+firebase.utils().playServicesAvailability.isUserResolvableError;
+```
+
+###### Android
+
+Android only - iOS returns undefined
+
+##### status
+
+> **status**: [`PlayServicesAvailabilityStatusCodes`](#playservicesavailabilitystatuscodes)
+
+Defined in: [types/app.ts:510](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L510)
+
+Returns a numeric status code. Please refer to Android documentation
+for further information:
+https://developers.google.com/android/reference/com/google/android/gms/common/ConnectionResult
+
+```js
+firebase.utils().playServicesAvailability.status;
+```
+
+###### Android
+
+Android only - iOS returns 0
+
+***
+
+### Statics
+
+Defined in: [types/app.ts:464](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L464)
+
+#### Properties
+
+##### FilePath
+
+> **FilePath**: [`FilePath`](#filepath)
+
+Defined in: [types/app.ts:466](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L466)
+
+##### SDK\_VERSION
+
+> **SDK\_VERSION**: `string`
+
+Defined in: [types/app.ts:465](https://github.com/invertase/react-native-firebase/blob/main/packages/app/lib/types/app.ts#L465)
diff --git a/docs/reference/@react-native-firebase/auth.mdx b/docs/reference/@react-native-firebase/auth.mdx
new file mode 100644
index 0000000000..5d5c66f552
--- /dev/null
+++ b/docs/reference/@react-native-firebase/auth.mdx
@@ -0,0 +1,7 @@
+[**React Native Firebase**](../README.mdx)
+
+***
+
+[React Native Firebase](../packages.mdx) / @react-native-firebase/auth
+
+# @react-native-firebase/auth
diff --git a/docs/reference/@react-native-firebase/crashlytics/README.mdx b/docs/reference/@react-native-firebase/crashlytics/README.mdx
new file mode 100644
index 0000000000..c48e5bd607
--- /dev/null
+++ b/docs/reference/@react-native-firebase/crashlytics/README.mdx
@@ -0,0 +1,701 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/crashlytics
+
+# @react-native-firebase/crashlytics
+
+## Functions
+
+### checkForUnsentReports()
+
+> **checkForUnsentReports**(`crashlytics`): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L34)
+
+Determines whether there are any unsent crash reports cached on the device. The callback only executes
+if automatic data collection is disabled.
+
+#### Example
+
+```js
+async checkReports() {
+// returns boolean value
+ const crashlytics = getCrashlytics();
+ const unsentReports = await checkForUnsentReports(crashlytics);
+}
+
+checkReports();
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves to a boolean indicating if there are unsent reports.
+
+***
+
+### crash()
+
+> **crash**(`crashlytics`): `void`
+
+Defined in: [modular.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L91)
+
+Cause your app to crash for testing purposes. This is a native crash and will not contain a javascript stack trace.
+Note that crashes are intercepted by debuggers on iOS so no report will be seen under those conditions. Additionally
+if it is a debug build you will need to ensure your firebase.json is configured to enable crashlytics even in debug mode.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+crash(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+#### Returns
+
+`void`
+
+***
+
+### deleteUnsentReports()
+
+> **deleteUnsentReports**(`crashlytics`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L51)
+
+Deletes any unsent reports on the device. This method only applies if automatic data collection is
+disabled.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+deleteUnsentReports(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### didCrashOnPreviousExecution()
+
+> **didCrashOnPreviousExecution**(`crashlytics`): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L73)
+
+Returns a boolean value indicating whether the app crashed during the previous execution.
+
+#### Example
+
+```js
+async didCrashPreviously() {
+// returns boolean value
+const crashlytics = getCrashlytics();
+const didCrash = await didCrashOnPreviousExecution(crashlytics);
+}
+
+didCrashPreviously();
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves to a boolean indicating if the app crashed previously.
+
+***
+
+### getCrashlytics()
+
+> **getCrashlytics**(): [`Crashlytics`](#crashlytics)
+
+Defined in: [modular.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L12)
+
+Returns Crashlytics instance.
+#### Example
+```js
+const crashlytics = getCrashlytics();
+```
+
+#### Returns
+
+[`Crashlytics`](#crashlytics)
+
+***
+
+### log()
+
+> **log**(`crashlytics`, `message`): `void`
+
+Defined in: [modular.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L109)
+
+Log a message that will appear in any subsequent Crash or Non-fatal error reports.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+log(crashlytics, 'Testing a crash');
+crash(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### message
+
+`string`
+
+The message to log.
+
+#### Returns
+
+`void`
+
+***
+
+### recordError()
+
+> **recordError**(`crashlytics`, `error`, `jsErrorName?`): `void`
+
+Defined in: [modular.ts:134](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L134)
+
+Record a JavaScript Error.
+
+The JavaScript stack trace is converted into a mock native iOS or Android exception before submission.
+The line numbers in the stack trace (if available) will be relative to the javascript bundle built by your packager,
+after whatever transpilation or minimization steps happen. You will need to maintain sourcemaps to decode them if desired.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+recordError(
+ crashlytics,
+ new Error('An error was caught')
+);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### error
+
+`Error`
+
+Expects an instance of Error; e.g. classes that extend Error will also be supported.
+
+##### jsErrorName?
+
+`string`
+
+Optional string containing Javascript error name
+
+#### Returns
+
+`void`
+
+***
+
+### sendUnsentReports()
+
+> **sendUnsentReports**(`crashlytics`): `void`
+
+Defined in: [modular.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L151)
+
+Enqueues any unsent reports on the device to upload to Crashlytics. This method only applies if
+automatic data collection is disabled.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+sendUnsentReports(crashlytics);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+#### Returns
+
+`void`
+
+***
+
+### setAttribute()
+
+> **setAttribute**(`crashlytics`, `name`, `value`): `Promise`\<`null`\>
+
+Defined in: [modular.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L196)
+
+Sets a string value to be associated with the given attribute name which will be visible in the Firebase Crashlytics console.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+await setAttribute(crashlytics, 'role', 'admin');
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### name
+
+`string`
+
+The name of the attribute to set.
+
+##### value
+
+`string`
+
+A string value for the given attribute.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setAttributes()
+
+> **setAttributes**(`crashlytics`, `attributes`): `Promise`\<`null`\>
+
+Defined in: [modular.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L216)
+
+Like `setAttribute` but for multiple attributes.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+await setAttributes(crashlytics, {
+ role: 'admin',
+ followers: '13',
+});
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### attributes
+
+An object of key/value attribute name and values.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setCrashlyticsCollectionEnabled()
+
+> **setCrashlyticsCollectionEnabled**(`crashlytics`, `enabled`): `Promise`\<`null`\>
+
+Defined in: [modular.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L239)
+
+Enable/disable Crashlytics reporting.
+
+Use this for opt-in first user data collection flows combined with `firebase.json` settings to disable auto collection.
+
+#### Example
+
+```js
+const crashlytics = getCrashlytics();
+// Disable crash reporting
+await setCrashlyticsCollectionEnabled(crashlytics, false);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value representing whether to enable Crashlytics error collection.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### setUserId()
+
+> **setUserId**(`crashlytics`, `userId`): `Promise`\<`null`\>
+
+Defined in: [modular.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/modular.ts#L178)
+
+Specify a user identifier which will be visible in the Firebase Crashlytics console.
+
+It is recommended for privacy purposes that this value be a value that's meaningless to a third-party
+observer; such as an arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+#### Example
+
+```js
+const auth = getAuth();
+const crashlytics = getCrashlytics();
+// Custom user id
+await setUserId(crashlytics, '123456789');
+// Firebase auth uid
+await setUserId(
+ crashlytics,
+ auth.currentUser.uid
+);
+```
+
+#### Parameters
+
+##### crashlytics
+
+[`Crashlytics`](#crashlytics)
+
+A crashlytics instance.
+
+##### userId
+
+`string`
+
+An arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+#### Returns
+
+`Promise`\<`null`\>
+
+## Interfaces
+
+### Crashlytics
+
+Defined in: [types/crashlytics.ts:25](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L25)
+
+Crashlytics module instance - returned from firebase.crashlytics() or firebase.app().crashlytics()
+
+#### Extends
+
+- [`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Methods
+
+##### checkForUnsentReports()
+
+> **checkForUnsentReports**(): `Promise`\<`boolean`\>
+
+Defined in: [types/crashlytics.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L40)
+
+Determines whether there are any unsent crash reports cached on the device.
+The callback only executes if automatic data collection is disabled.
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+###### Throws
+
+Error if Crashlytics collection is enabled (reports are automatically sent)
+
+##### crash()
+
+> **crash**(): `void`
+
+Defined in: [types/crashlytics.ts:46](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L46)
+
+Cause your app to crash for testing purposes. This is a native crash and will not contain a javascript stack trace.
+Note that crashes are intercepted by debuggers on iOS so no report will be seen under those conditions.
+
+###### Returns
+
+`void`
+
+##### deleteUnsentReports()
+
+> **deleteUnsentReports**(): `Promise`\<`void`\>
+
+Defined in: [types/crashlytics.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L51)
+
+Deletes any unsent reports on the device. This method only applies if automatic data collection is disabled.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### didCrashOnPreviousExecution()
+
+> **didCrashOnPreviousExecution**(): `Promise`\<`boolean`\>
+
+Defined in: [types/crashlytics.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L56)
+
+Returns a boolean value indicating whether the app crashed during the previous execution.
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+##### log()
+
+> **log**(`message`): `void`
+
+Defined in: [types/crashlytics.ts:63](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L63)
+
+Log a message that will appear in any subsequent Crash or Non-fatal error reports.
+
+###### Parameters
+
+###### message
+
+`string`
+
+The message to log.
+
+###### Returns
+
+`void`
+
+##### recordError()
+
+> **recordError**(`error`, `jsErrorName?`): `void`
+
+Defined in: [types/crashlytics.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L73)
+
+Record a JavaScript Error.
+
+The JavaScript stack trace is converted into a mock native iOS or Android exception before submission.
+
+###### Parameters
+
+###### error
+
+`Error`
+
+Expects an instance of Error; e.g. classes that extend Error will also be supported.
+
+###### jsErrorName?
+
+`string`
+
+Optional string containing Javascript error name
+
+###### Returns
+
+`void`
+
+##### sendUnsentReports()
+
+> **sendUnsentReports**(): `void`
+
+Defined in: [types/crashlytics.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L79)
+
+Enqueues any unsent reports on the device to upload to Crashlytics. This method only applies if
+automatic data collection is disabled.
+
+###### Returns
+
+`void`
+
+##### setAttribute()
+
+> **setAttribute**(`name`, `value`): `Promise`\<`null`\>
+
+Defined in: [types/crashlytics.ts:87](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L87)
+
+Sets a string value to be associated with the given attribute name which will be visible in the Firebase Crashlytics console.
+
+###### Parameters
+
+###### name
+
+`string`
+
+The name of the attribute to set.
+
+###### value
+
+`string`
+
+A string value for the given attribute.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### setAttributes()
+
+> **setAttributes**(`attributes`): `Promise`\<`null`\>
+
+Defined in: [types/crashlytics.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L94)
+
+Like `setAttribute` but for multiple attributes.
+
+###### Parameters
+
+###### attributes
+
+An object of key/value attribute name and values.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### setCrashlyticsCollectionEnabled()
+
+> **setCrashlyticsCollectionEnabled**(`enabled`): `Promise`\<`null`\>
+
+Defined in: [types/crashlytics.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L113)
+
+Enable/disable Crashlytics reporting.
+
+Use this for opt-in first user data collection flows combined with `firebase.json` settings to disable auto collection.
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+A boolean value representing whether to enable Crashlytics error collection.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### setUserId()
+
+> **setUserId**(`userId`): `Promise`\<`null`\>
+
+Defined in: [types/crashlytics.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L104)
+
+Specify a user identifier which will be visible in the Firebase Crashlytics console.
+
+It is recommended for privacy purposes that this value be a value that's meaningless to a third-party
+observer; such as an arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+###### Parameters
+
+###### userId
+
+`string`
+
+An arbitrary string that ties an end-user to a record in your system e.g. a database record id.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/crashlytics.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L27)
+
+The FirebaseApp this module is associated with
+
+###### Overrides
+
+[`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../app/namespaces/ReactNativeFirebase.mdx#app)
+
+##### isCrashlyticsCollectionEnabled
+
+> `readonly` **isCrashlyticsCollectionEnabled**: `boolean`
+
+Defined in: [types/crashlytics.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L32)
+
+Whether Crashlytics reporting is enabled.
+
+## Namespaces
+
+- [~~FirebaseCrashlyticsTypes~~](namespaces/FirebaseCrashlyticsTypes.mdx)
+
+## Variables
+
+### default
+
+> **default**: `CrashlyticsNamespace`
+
+Defined in: [namespaced.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/namespaced.ts#L185)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`FirebaseNamespacedExport`](../app/namespaces/ReactNativeFirebase.mdx#firebasenamespacedexport)\<`"crashlytics"`, [`Crashlytics`](#crashlytics), `Statics`, `false`\>
+
+Defined in: [namespaced.ts:190](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/namespaced.ts#L190)
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"24.0.0"` = `version`
+
+Defined in: [namespaced.ts:161](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/namespaced.ts#L161)
diff --git a/docs/reference/@react-native-firebase/crashlytics/namespaces/FirebaseCrashlyticsTypes.mdx b/docs/reference/@react-native-firebase/crashlytics/namespaces/FirebaseCrashlyticsTypes.mdx
new file mode 100644
index 0000000000..19de75c36e
--- /dev/null
+++ b/docs/reference/@react-native-firebase/crashlytics/namespaces/FirebaseCrashlyticsTypes.mdx
@@ -0,0 +1,28 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/crashlytics](../README.mdx) / FirebaseCrashlyticsTypes
+
+# ~~FirebaseCrashlyticsTypes~~
+
+## Deprecated
+
+Use the exported types directly instead.
+FirebaseCrashlyticsTypes namespace is kept for backwards compatibility.
+
+## Type Aliases
+
+### ~~Module~~
+
+> **Module** = [`Crashlytics`](../README.mdx#crashlytics)
+
+Defined in: [types/crashlytics.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L156)
+
+***
+
+### ~~Statics~~
+
+> **Statics** = `_Statics`
+
+Defined in: [types/crashlytics.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/crashlytics/lib/types/crashlytics.ts#L157)
diff --git a/docs/reference/@react-native-firebase/database.mdx b/docs/reference/@react-native-firebase/database.mdx
new file mode 100644
index 0000000000..ef4474a518
--- /dev/null
+++ b/docs/reference/@react-native-firebase/database.mdx
@@ -0,0 +1,7 @@
+[**React Native Firebase**](../README.mdx)
+
+***
+
+[React Native Firebase](../packages.mdx) / @react-native-firebase/database
+
+# @react-native-firebase/database
diff --git a/docs/reference/@react-native-firebase/firestore/README.mdx b/docs/reference/@react-native-firebase/firestore/README.mdx
new file mode 100644
index 0000000000..d32189c7e5
--- /dev/null
+++ b/docs/reference/@react-native-firebase/firestore/README.mdx
@@ -0,0 +1,12 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/firestore
+
+# @react-native-firebase/firestore
+
+## Modules
+
+- [index](../../index/@react-native-firebase/firestore/index.mdx)
+- [pipelines](pipelines.mdx)
diff --git a/docs/reference/@react-native-firebase/firestore/pipelines.mdx b/docs/reference/@react-native-firebase/firestore/pipelines.mdx
new file mode 100644
index 0000000000..3cb27a7a67
--- /dev/null
+++ b/docs/reference/@react-native-firebase/firestore/pipelines.mdx
@@ -0,0 +1,8722 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / [@react-native-firebase/firestore](README.mdx) / pipelines
+
+# pipelines
+
+## Functions
+
+### abs()
+
+#### Call Signature
+
+> **abs**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1297](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1297)
+
+**`Beta`**
+
+Absolute value of a numeric expression.
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **abs**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1302](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1302)
+
+**`Beta`**
+
+Absolute value of a field.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### add()
+
+#### Call Signature
+
+> **add**(`_first`, `_second`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1139](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1139)
+
+**`Beta`**
+
+Creates an expression that adds two or more expressions together.
+
+##### Parameters
+
+###### \_first
+
+[`Expression`](#expression)
+
+###### \_second
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+A new Expression representing the addition operation.
+
+#### Call Signature
+
+> **add**(`_fieldName`, `_second`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1148](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1148)
+
+**`Beta`**
+
+Creates an expression that adds a field's value to an expression.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_second
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+A new Expression representing the addition operation.
+
+***
+
+### and()
+
+> **and**(`first`, `second`, ...`more`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:846](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L846)
+
+**`Beta`**
+
+Logical AND of boolean expressions.
+
+#### Parameters
+
+##### first
+
+[`BooleanExpression`](#booleanexpression)
+
+##### second
+
+[`BooleanExpression`](#booleanexpression)
+
+##### more
+
+...[`BooleanExpression`](#booleanexpression)[]
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### array()
+
+> **array**(`_elements`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1091](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1091)
+
+**`Beta`**
+
+Array expression.
+
+#### Parameters
+
+##### \_elements
+
+`unknown`[]
+
+#### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### arrayAgg()
+
+#### Call Signature
+
+> **arrayAgg**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1410](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1410)
+
+**`Beta`**
+
+Collects all values of an expression across stage inputs into an array (aggregate).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **arrayAgg**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1411](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1411)
+
+**`Beta`**
+
+Collects all values of an expression across stage inputs into an array (aggregate).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### arrayAggDistinct()
+
+#### Call Signature
+
+> **arrayAggDistinct**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1569](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1569)
+
+**`Beta`**
+
+Collects distinct values of an expression across stage inputs into an array (aggregate).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **arrayAggDistinct**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1570](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1570)
+
+**`Beta`**
+
+Collects distinct values of an expression across stage inputs into an array (aggregate).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### arrayConcat()
+
+#### Call Signature
+
+> **arrayConcat**(`_firstArray`, `_secondArray`, ...`_otherArrays`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1579](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1579)
+
+**`Beta`**
+
+Concatenates two or more arrays.
+
+##### Parameters
+
+###### \_firstArray
+
+[`Expression`](#expression)
+
+###### \_secondArray
+
+`unknown`[] \| [`Expression`](#expression)
+
+###### \_otherArrays
+
+...(`unknown`[] \| [`Expression`](#expression))[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arrayConcat**(`_firstArrayField`, `_secondArray`, ...`_otherArrays`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1584](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1584)
+
+**`Beta`**
+
+Concatenates two or more arrays.
+
+##### Parameters
+
+###### \_firstArrayField
+
+`string`
+
+###### \_secondArray
+
+`unknown`[] \| [`Expression`](#expression)
+
+###### \_otherArrays
+
+...(`unknown`[] \| [`Expression`](#expression))[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### arrayContains()
+
+> **arrayContains**(`_arrayOrFieldName`, `_element`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:972](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L972)
+
+**`Beta`**
+
+Checks if an array contains an element.
+
+#### Parameters
+
+##### \_arrayOrFieldName
+
+[`Expression`](#expression)
+
+##### \_element
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### arrayContainsAll()
+
+> **arrayContainsAll**(`_arrayOrFieldName`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:994](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L994)
+
+**`Beta`**
+
+Checks if an array contains all of the given values.
+
+#### Parameters
+
+##### \_arrayOrFieldName
+
+[`Expression`](#expression)
+
+##### \_values
+
+`unknown`[]
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### arrayContainsAny()
+
+> **arrayContainsAny**(`_arrayOrFieldName`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:983](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L983)
+
+**`Beta`**
+
+Checks if an array contains any of the given values.
+
+#### Parameters
+
+##### \_arrayOrFieldName
+
+[`Expression`](#expression)
+
+##### \_values
+
+`unknown`[]
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### arrayGet()
+
+#### Call Signature
+
+> **arrayGet**(`_arrayField`, `_offset`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1601](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1601)
+
+**`Beta`**
+
+Gets element at offset in an array field or expression.
+
+##### Parameters
+
+###### \_arrayField
+
+`string`
+
+###### \_offset
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arrayGet**(`_arrayField`, `_offsetExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1602](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1602)
+
+**`Beta`**
+
+Gets element at offset in an array field or expression.
+
+##### Parameters
+
+###### \_arrayField
+
+`string`
+
+###### \_offsetExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arrayGet**(`_arrayExpression`, `_offset`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1603](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1603)
+
+**`Beta`**
+
+Gets element at offset in an array field or expression.
+
+##### Parameters
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+###### \_offset
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arrayGet**(`_arrayExpression`, `_offsetExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1604](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1604)
+
+**`Beta`**
+
+Gets element at offset in an array field or expression.
+
+##### Parameters
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+###### \_offsetExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### arrayLength()
+
+#### Call Signature
+
+> **arrayLength**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1616](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1616)
+
+**`Beta`**
+
+Length of an array (field or expression).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arrayLength**(`_array`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1617](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1617)
+
+**`Beta`**
+
+Length of an array (field or expression).
+
+##### Parameters
+
+###### \_array
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### arraySum()
+
+#### Call Signature
+
+> **arraySum**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1626](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1626)
+
+**`Beta`**
+
+Sum of numeric values in an array (aggregate-like for arrays).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **arraySum**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1627](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1627)
+
+**`Beta`**
+
+Sum of numeric values in an array (aggregate-like for arrays).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### ascending()
+
+> **ascending**(`_expr`): `Ordering`
+
+Defined in: [pipelines/expressions.ts:1051](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1051)
+
+**`Beta`**
+
+Ascending ordering (standalone). Use in sort().
+
+#### Parameters
+
+##### \_expr
+
+[`Expression`](#expression)
+
+#### Returns
+
+`Ordering`
+
+***
+
+### average()
+
+#### Call Signature
+
+> **average**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1281](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1281)
+
+**`Beta`**
+
+Creates an aggregation that calculates the average (mean) of values from an expression.
+SDK name: average (avg is RN alias).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **average**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1286](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1286)
+
+**`Beta`**
+
+Creates an aggregation that calculates the average (mean) of a field's values.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### byteLength()
+
+#### Call Signature
+
+> **byteLength**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1634](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1634)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **byteLength**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1635](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1635)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### ceil()
+
+#### Call Signature
+
+> **ceil**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1311](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1311)
+
+**`Beta`**
+
+Rounds up to the nearest integer.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **ceil**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1312](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1312)
+
+**`Beta`**
+
+Rounds up to the nearest integer.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### charLength()
+
+#### Call Signature
+
+> **charLength**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1640](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1640)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **charLength**(`_stringExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1641](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1641)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### collectionId()
+
+#### Call Signature
+
+> **collectionId**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1646](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1646)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **collectionId**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1647](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1647)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### concat()
+
+#### Call Signature
+
+> **concat**(`_first`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1420](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1420)
+
+**`Beta`**
+
+Concatenates two or more expressions (e.g. strings or arrays).
+
+##### Parameters
+
+###### \_first
+
+[`Expression`](#expression)
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **concat**(`_fieldName`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1425](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1425)
+
+**`Beta`**
+
+Concatenates two or more expressions (e.g. strings or arrays).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### conditional()
+
+> **conditional**(`_condition`, `_thenExpr`, `_elseExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1368](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1368)
+
+**`Beta`**
+
+Conditional expression: if condition then thenExpr else elseExpr.
+
+#### Parameters
+
+##### \_condition
+
+[`BooleanExpression`](#booleanexpression)
+
+##### \_thenExpr
+
+[`Expression`](#expression)
+
+##### \_elseExpr
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### constant()
+
+#### Call Signature
+
+> **constant**(`_value`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1104](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1104)
+
+**`Beta`**
+
+Creates a constant expression for a number value.
+
+##### Parameters
+
+###### \_value
+
+`number`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **constant**(`_value`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1109](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1109)
+
+**`Beta`**
+
+Creates a constant expression for a string value.
+
+##### Parameters
+
+###### \_value
+
+`string`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **constant**(`_value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1114](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1114)
+
+**`Beta`**
+
+Creates a constant boolean expression.
+
+##### Parameters
+
+###### \_value
+
+`boolean`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **constant**(`_value`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1119](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1119)
+
+**`Beta`**
+
+Creates a constant expression for null.
+
+##### Parameters
+
+###### \_value
+
+`null`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **constant**(`_value`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1124](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1124)
+
+**`Beta`**
+
+Creates a constant expression for a value (e.g. GeoPoint, Timestamp, Date, Bytes, DocumentReference, VectorValue).
+
+##### Parameters
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`Expression`](#expression)
+
+***
+
+### cosineDistance()
+
+#### Call Signature
+
+> **cosineDistance**(`_fieldName`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1749](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1749)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **cosineDistance**(`_fieldName`, `_vectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1753](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1753)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **cosineDistance**(`_vectorExpression`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1757](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1757)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **cosineDistance**(`_vectorExpression`, `_otherVectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1761](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1761)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_otherVectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### count()
+
+#### Call Signature
+
+> **count**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1266](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1266)
+
+**`Beta`**
+
+Creates an aggregation that counts stage inputs with valid evaluations of the expression.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **count**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1271](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1271)
+
+**`Beta`**
+
+Creates an aggregation that counts stage inputs where the field exists.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### countAll()
+
+> **countAll**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1075](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1075)
+
+**`Beta`**
+
+Count-all aggregation (e.g. countAll().as('total')).
+
+#### Returns
+
+`Accumulator`
+
+***
+
+### countDistinct()
+
+> **countDistinct**(`_expr`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1380](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1380)
+
+**`Beta`**
+
+Count distinct values of an expression or field.
+
+#### Parameters
+
+##### \_expr
+
+[`Expression`](#expression)
+
+#### Returns
+
+`Accumulator`
+
+***
+
+### countIf()
+
+> **countIf**(`_booleanExpr`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1652](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1652)
+
+#### Parameters
+
+##### \_booleanExpr
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Returns
+
+`Accumulator`
+
+***
+
+### currentTimestamp()
+
+> **currentTimestamp**(): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1452](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1452)
+
+**`Beta`**
+
+Server timestamp at execution time.
+
+#### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### descending()
+
+> **descending**(`_expr`): `Ordering`
+
+Defined in: [pipelines/expressions.ts:1059](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1059)
+
+**`Beta`**
+
+Descending ordering (standalone). Use in sort().
+
+#### Parameters
+
+##### \_expr
+
+[`Expression`](#expression)
+
+#### Returns
+
+`Ordering`
+
+***
+
+### divide()
+
+#### Call Signature
+
+> **divide**(`_left`, `_right`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1189](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1189)
+
+**`Beta`**
+
+Creates an expression that divides the first by the second.
+
+##### Parameters
+
+###### \_left
+
+[`Expression`](#expression)
+
+###### \_right
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **divide**(`_expression`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1194](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1194)
+
+**`Beta`**
+
+Creates an expression that divides an expression by a constant value.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **divide**(`_fieldName`, `_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1199](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1199)
+
+**`Beta`**
+
+Creates an expression that divides a field's value by an expression.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **divide**(`_fieldName`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1204](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1204)
+
+**`Beta`**
+
+Creates an expression that divides a field's value by a constant.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### documentId()
+
+#### Call Signature
+
+> **documentId**(`_documentPath`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1236](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1236)
+
+**`Beta`**
+
+Creates an expression that evaluates to the document ID (and optionally path).
+
+##### Parameters
+
+###### \_documentPath
+
+`string` \| [`DocumentReference`](../../index/@react-native-firebase/firestore/index.mdx#documentreference)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata), [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+A new Expression representing the document ID.
+
+#### Call Signature
+
+> **documentId**(`_documentPathExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1241](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1241)
+
+**`Beta`**
+
+Creates an expression that evaluates to the document ID from a path expression.
+
+##### Parameters
+
+###### \_documentPathExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### dotProduct()
+
+#### Call Signature
+
+> **dotProduct**(`_fieldName`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1772](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1772)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **dotProduct**(`_fieldName`, `_vectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1773](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1773)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **dotProduct**(`_vectorExpression`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1774](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1774)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **dotProduct**(`_vectorExpression`, `_otherVectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1778](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1778)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_otherVectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### endsWith()
+
+#### Call Signature
+
+> **endsWith**(`_stringOrFieldName`, `_suffix`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1021](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1021)
+
+**`Beta`**
+
+Checks if a string ends with a suffix.
+
+##### Parameters
+
+###### \_stringOrFieldName
+
+`string`
+
+###### \_suffix
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **endsWith**(`_stringOrFieldName`, `_suffix`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1022](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1022)
+
+**`Beta`**
+
+Checks if a string ends with a suffix.
+
+##### Parameters
+
+###### \_stringOrFieldName
+
+[`Expression`](#expression)
+
+###### \_suffix
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### equal()
+
+> **equal**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:900](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L900)
+
+**`Beta`**
+
+Equality comparison (alias for eq).
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### equalAny()
+
+#### Call Signature
+
+> **equalAny**(`_expression`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1789](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1789)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_values
+
+`unknown`[]
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **equalAny**(`_expression`, `_arrayExpression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1793](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1793)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **equalAny**(`_fieldName`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1794](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1794)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_values
+
+`unknown`[]
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **equalAny**(`_fieldName`, `_arrayExpression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1798](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1798)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### euclideanDistance()
+
+#### Call Signature
+
+> **euclideanDistance**(`_fieldName`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1806](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1806)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **euclideanDistance**(`_fieldName`, `_vectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1810](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1810)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **euclideanDistance**(`_vectorExpression`, `_vector`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1814](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1814)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_vector
+
+`number`[] \| [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **euclideanDistance**(`_vectorExpression`, `_otherVectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1818](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1818)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+###### \_otherVectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### execute()
+
+#### Call Signature
+
+> **execute**(`pipeline`): `Promise`\<[`PipelineSnapshot`](#pipelinesnapshot)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>\>
+
+Defined in: [pipelines/pipeline\_impl.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_impl.ts#L34)
+
+**`Beta`**
+
+Executes a pipeline and returns a Promise that resolves to the pipeline snapshot.
+
+##### Parameters
+
+###### pipeline
+
+[`Pipeline`](#pipeline)
+
+##### Returns
+
+`Promise`\<[`PipelineSnapshot`](#pipelinesnapshot)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>\>
+
+##### Example
+
+```
+const snapshot = await execute(
+ firestore.pipeline().collection('books').where(gt(field('rating'), 4.5)).select('title', 'author', 'rating')
+);
+```
+
+#### Call Signature
+
+> **execute**(`options`): `Promise`\<[`PipelineSnapshot`](#pipelinesnapshot)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>\>
+
+Defined in: [pipelines/pipeline\_impl.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_impl.ts#L40)
+
+**`Beta`**
+
+Executes a pipeline with options.
+
+##### Parameters
+
+###### options
+
+[`PipelineExecuteOptions`](#pipelineexecuteoptions)
+
+##### Returns
+
+`Promise`\<[`PipelineSnapshot`](#pipelinesnapshot)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>\>
+
+***
+
+### exists()
+
+> **exists**(`_valueOrFieldName`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:964](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L964)
+
+**`Beta`**
+
+Checks if a field exists (or expression evaluates to a value).
+
+#### Parameters
+
+##### \_valueOrFieldName
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### exp()
+
+#### Call Signature
+
+> **exp**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1656](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1656)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **exp**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1657](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1657)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### field()
+
+> **field**(`_path`): [`Field`](#field)
+
+Defined in: [pipelines/expressions.ts:838](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L838)
+
+**`Beta`**
+
+Returns a Field reference for use in pipeline expressions.
+
+#### Parameters
+
+##### \_path
+
+`string`
+
+#### Returns
+
+[`Field`](#field)
+
+***
+
+### first()
+
+#### Call Signature
+
+> **first**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1388](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1388)
+
+**`Beta`**
+
+First value of the expression in each group (aggregate).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **first**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1389](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1389)
+
+**`Beta`**
+
+First value of the expression in each group (aggregate).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### floor()
+
+#### Call Signature
+
+> **floor**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1321](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1321)
+
+**`Beta`**
+
+Rounds down to the nearest integer.
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **floor**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1322](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1322)
+
+**`Beta`**
+
+Rounds down to the nearest integer.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### greaterThan()
+
+> **greaterThan**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:884](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L884)
+
+**`Beta`**
+
+Greater-than comparison (alias for gt).
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### greaterThanOrEqual()
+
+> **greaterThanOrEqual**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:956](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L956)
+
+**`Beta`**
+
+Greater-than-or-equal comparison (alias for gte).
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### ifAbsent()
+
+#### Call Signature
+
+> **ifAbsent**(`_ifExpr`, `_elseExpr`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1468](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1468)
+
+**`Beta`**
+
+If ifExpr is present use it, else use elseExpr/elseValue.
+
+##### Parameters
+
+###### \_ifExpr
+
+[`Expression`](#expression)
+
+###### \_elseExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **ifAbsent**(`_ifExpr`, `_elseValue`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1469](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1469)
+
+**`Beta`**
+
+If ifExpr is present use it, else use elseExpr/elseValue.
+
+##### Parameters
+
+###### \_ifExpr
+
+[`Expression`](#expression)
+
+###### \_elseValue
+
+`unknown`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **ifAbsent**(`_ifFieldName`, `_elseExpr`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1470](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1470)
+
+**`Beta`**
+
+If ifExpr is present use it, else use elseExpr/elseValue.
+
+##### Parameters
+
+###### \_ifFieldName
+
+`string`
+
+###### \_elseExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **ifAbsent**(`_ifFieldName`, `_elseValue`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1471](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1471)
+
+**`Beta`**
+
+If ifExpr is present use it, else use elseExpr/elseValue.
+
+##### Parameters
+
+###### \_ifFieldName
+
+[`Expression`](#expression)
+
+###### \_elseValue
+
+`unknown`
+
+##### Returns
+
+[`Expression`](#expression)
+
+***
+
+### ifError()
+
+#### Call Signature
+
+> **ifError**(`_tryExpr`, `_catchExpr`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1486](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1486)
+
+**`Beta`**
+
+If tryExpr errors, return catchExpr/catchValue (error handling expression).
+
+##### Parameters
+
+###### \_tryExpr
+
+[`BooleanExpression`](#booleanexpression)
+
+###### \_catchExpr
+
+[`BooleanExpression`](#booleanexpression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **ifError**(`_tryExpr`, `_catchExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1490](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1490)
+
+**`Beta`**
+
+If tryExpr errors, return catchExpr/catchValue (error handling expression).
+
+##### Parameters
+
+###### \_tryExpr
+
+[`Expression`](#expression)
+
+###### \_catchExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **ifError**(`_tryExpr`, `_catchValue`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1491](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1491)
+
+**`Beta`**
+
+If tryExpr errors, return catchExpr/catchValue (error handling expression).
+
+##### Parameters
+
+###### \_tryExpr
+
+[`Expression`](#expression)
+
+###### \_catchValue
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### isAbsent()
+
+#### Call Signature
+
+> **isAbsent**(`_value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1829](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1829)
+
+##### Parameters
+
+###### \_value
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **isAbsent**(`_field`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1830](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1830)
+
+##### Parameters
+
+###### \_field
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### isError()
+
+> **isError**(`_value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1835](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1835)
+
+#### Parameters
+
+##### \_value
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### isType()
+
+#### Call Signature
+
+> **isType**(`_fieldName`, `_type`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1839](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1839)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_type
+
+[`Type`](#type)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **isType**(`_expression`, `_type`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1840](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1840)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_type
+
+[`Type`](#type)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### join()
+
+#### Call Signature
+
+> **join**(`_arrayFieldName`, `_delimiter`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1662](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1662)
+
+##### Parameters
+
+###### \_arrayFieldName
+
+`string`
+
+###### \_delimiter
+
+`string`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **join**(`_arrayExpression`, `_delimiterExpression`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1663](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1663)
+
+##### Parameters
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+###### \_delimiterExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **join**(`_arrayExpression`, `_delimiter`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1664](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1664)
+
+##### Parameters
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+###### \_delimiter
+
+`string`
+
+##### Returns
+
+[`Expression`](#expression)
+
+#### Call Signature
+
+> **join**(`_arrayFieldName`, `_delimiterExpression`): [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:1665](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1665)
+
+##### Parameters
+
+###### \_arrayFieldName
+
+`string`
+
+###### \_delimiterExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`Expression`](#expression)
+
+***
+
+### last()
+
+#### Call Signature
+
+> **last**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1398](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1398)
+
+**`Beta`**
+
+Last value of the expression in each group (aggregate).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **last**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1399](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1399)
+
+**`Beta`**
+
+Last value of the expression in each group (aggregate).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### length()
+
+#### Call Signature
+
+> **length**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2317](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2317)
+
+**`Beta`**
+
+Length of string, array, map, vector, or bytes (field or expression).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **length**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2318](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2318)
+
+**`Beta`**
+
+Length of string, array, map, vector, or bytes (field or expression).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### lessThan()
+
+> **lessThan**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:932](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L932)
+
+**`Beta`**
+
+Less-than comparison (alias for lt).
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### lessThanOrEqual()
+
+> **lessThanOrEqual**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:948](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L948)
+
+**`Beta`**
+
+Less-than-or-equal comparison (alias for lte).
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### like()
+
+#### Call Signature
+
+> **like**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1673](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1673)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **like**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1674](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1674)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **like**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1675](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1675)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **like**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1676](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1676)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### ln()
+
+#### Call Signature
+
+> **ln**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1684](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1684)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **ln**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1685](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1685)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### log()
+
+#### Call Signature
+
+> **log**(`_expression`, `_base`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1690](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1690)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_base
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **log**(`_expression`, `_base`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1691](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1691)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_base
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **log**(`_fieldName`, `_base`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1692](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1692)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_base
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **log**(`_fieldName`, `_base`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1693](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1693)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_base
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### log10()
+
+#### Call Signature
+
+> **log10**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1701](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1701)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **log10**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1702](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1702)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### logicalMaximum()
+
+#### Call Signature
+
+> **logicalMaximum**(`_first`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1845](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1845)
+
+##### Parameters
+
+###### \_first
+
+[`Expression`](#expression)
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **logicalMaximum**(`_fieldName`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1850](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1850)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### logicalMinimum()
+
+#### Call Signature
+
+> **logicalMinimum**(`_first`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1863](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1863)
+
+##### Parameters
+
+###### \_first
+
+[`Expression`](#expression)
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **logicalMinimum**(`_fieldName`, `_second`, ...`_others`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1868](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1868)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_second
+
+`unknown`
+
+###### \_others
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### ltrim()
+
+#### Call Signature
+
+> **ltrim**(`_fieldName`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1881](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1881)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_valueToTrim?
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **ltrim**(`_expression`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1885](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1885)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_valueToTrim?
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### map()
+
+> **map**(`_entries`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1083](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1083)
+
+**`Beta`**
+
+Map expression for replaceWith etc.
+
+#### Parameters
+
+##### \_entries
+
+`Record`\<`string`, `unknown`\>
+
+#### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapEntries()
+
+#### Call Signature
+
+> **mapEntries**(`_mapField`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1952](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1952)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapEntries**(`_mapExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1953](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1953)
+
+##### Parameters
+
+###### \_mapExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapGet()
+
+#### Call Signature
+
+> **mapGet**(`_fieldName`, `_subField`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1958](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1958)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_subField
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapGet**(`_mapExpression`, `_subField`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1959](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1959)
+
+##### Parameters
+
+###### \_mapExpression
+
+[`Expression`](#expression)
+
+###### \_subField
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapKeys()
+
+#### Call Signature
+
+> **mapKeys**(`_mapField`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1964](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1964)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapKeys**(`_mapExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1965](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1965)
+
+##### Parameters
+
+###### \_mapExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapMerge()
+
+#### Call Signature
+
+> **mapMerge**(`_mapField`, `_secondMap`, ...`_otherMaps`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1970](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1970)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+###### \_secondMap
+
+`Record`\<`string`, `unknown`\> \| [`Expression`](#expression)
+
+###### \_otherMaps
+
+...(`Record`\<`string`, `unknown`\> \| [`Expression`](#expression))[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapMerge**(`_firstMap`, `_secondMap`, ...`_otherMaps`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1975](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1975)
+
+##### Parameters
+
+###### \_firstMap
+
+`Record`\<`string`, `unknown`\> \| [`Expression`](#expression)
+
+###### \_secondMap
+
+`Record`\<`string`, `unknown`\> \| [`Expression`](#expression)
+
+###### \_otherMaps
+
+...(`Record`\<`string`, `unknown`\> \| [`Expression`](#expression))[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapRemove()
+
+#### Call Signature
+
+> **mapRemove**(`_mapField`, `_key`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1988](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1988)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+###### \_key
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapRemove**(`_mapExpr`, `_key`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1989](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1989)
+
+##### Parameters
+
+###### \_mapExpr
+
+[`Expression`](#expression)
+
+###### \_key
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapRemove**(`_mapField`, `_keyExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1990](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1990)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+###### \_keyExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapRemove**(`_mapExpr`, `_keyExpr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1991](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1991)
+
+##### Parameters
+
+###### \_mapExpr
+
+[`Expression`](#expression)
+
+###### \_keyExpr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapSet()
+
+#### Call Signature
+
+> **mapSet**(`_mapField`, `_key`, `_value`, ...`_moreKeyValues`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1999](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1999)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+###### \_key
+
+[`Expression`](#expression)
+
+###### \_value
+
+`unknown`
+
+###### \_moreKeyValues
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapSet**(`_mapExpression`, `_key`, `_value`, ...`_moreKeyValues`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2005](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2005)
+
+##### Parameters
+
+###### \_mapExpression
+
+[`Expression`](#expression)
+
+###### \_key
+
+[`Expression`](#expression)
+
+###### \_value
+
+`unknown`
+
+###### \_moreKeyValues
+
+...`unknown`[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### mapValues()
+
+#### Call Signature
+
+> **mapValues**(`_mapField`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2020](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2020)
+
+##### Parameters
+
+###### \_mapField
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mapValues**(`_mapExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2021](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2021)
+
+##### Parameters
+
+###### \_mapExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### maximum()
+
+#### Call Signature
+
+> **maximum**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1707](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1707)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **maximum**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1708](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1708)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### minimum()
+
+#### Call Signature
+
+> **minimum**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1713](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1713)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **minimum**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1714](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1714)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### mod()
+
+#### Call Signature
+
+> **mod**(`_left`, `_right`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1331](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1331)
+
+**`Beta`**
+
+Remainder (modulo) of left divided by right.
+
+##### Parameters
+
+###### \_left
+
+[`Expression`](#expression)
+
+###### \_right
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mod**(`_expression`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1332](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1332)
+
+**`Beta`**
+
+Remainder (modulo) of left divided by right.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mod**(`_fieldName`, `_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1333](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1333)
+
+**`Beta`**
+
+Remainder (modulo) of left divided by right.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **mod**(`_fieldName`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1334](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1334)
+
+**`Beta`**
+
+Remainder (modulo) of left divided by right.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### multiply()
+
+#### Call Signature
+
+> **multiply**(`_first`, `_second`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1216](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1216)
+
+**`Beta`**
+
+Creates an expression that multiplies two or more expressions.
+
+##### Parameters
+
+###### \_first
+
+[`Expression`](#expression)
+
+###### \_second
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **multiply**(`_fieldName`, `_second`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1221](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1221)
+
+**`Beta`**
+
+Creates an expression that multiplies a field's value by an expression or literal.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_second
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### not()
+
+> **not**(`_booleanExpr`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1460](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1460)
+
+**`Beta`**
+
+Logical NOT of a boolean expression.
+
+#### Parameters
+
+##### \_booleanExpr
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### notEqual()
+
+> **notEqual**(`_left`, `_right`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:908](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L908)
+
+**`Beta`**
+
+Inequality comparison.
+
+#### Parameters
+
+##### \_left
+
+[`Expression`](#expression)
+
+##### \_right
+
+[`Expression`](#expression)
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### notEqualAny()
+
+#### Call Signature
+
+> **notEqualAny**(`_element`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1896](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1896)
+
+##### Parameters
+
+###### \_element
+
+[`Expression`](#expression)
+
+###### \_values
+
+`unknown`[]
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **notEqualAny**(`_fieldName`, `_values`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1900](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1900)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_values
+
+`unknown`[]
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **notEqualAny**(`_element`, `_arrayExpression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1904](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1904)
+
+##### Parameters
+
+###### \_element
+
+[`Expression`](#expression)
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **notEqualAny**(`_fieldName`, `_arrayExpression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1905](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1905)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_arrayExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### or()
+
+> **or**(`first`, `second`, ...`more`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:861](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L861)
+
+**`Beta`**
+
+Logical OR of boolean expressions.
+
+#### Parameters
+
+##### first
+
+[`BooleanExpression`](#booleanexpression)
+
+##### second
+
+[`BooleanExpression`](#booleanexpression)
+
+##### more
+
+...[`BooleanExpression`](#booleanexpression)[]
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### pipelineResultEqual()
+
+> **pipelineResultEqual**(`left`, `right`): `boolean`
+
+Defined in: [pipelines/pipeline-result.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L49)
+
+**`Beta`**
+
+Compares two pipeline results for equality.
+
+#### Parameters
+
+##### left
+
+[`PipelineResult`](#pipelineresult)
+
+##### right
+
+[`PipelineResult`](#pipelineresult)
+
+#### Returns
+
+`boolean`
+
+***
+
+### pow()
+
+#### Call Signature
+
+> **pow**(`_base`, `_exponent`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1719](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1719)
+
+##### Parameters
+
+###### \_base
+
+[`Expression`](#expression)
+
+###### \_exponent
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **pow**(`_base`, `_exponent`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1720](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1720)
+
+##### Parameters
+
+###### \_base
+
+[`Expression`](#expression)
+
+###### \_exponent
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **pow**(`_base`, `_exponent`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1721](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1721)
+
+##### Parameters
+
+###### \_base
+
+`string`
+
+###### \_exponent
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **pow**(`_base`, `_exponent`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1722](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1722)
+
+##### Parameters
+
+###### \_base
+
+`string`
+
+###### \_exponent
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### rand()
+
+> **rand**(): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1913](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1913)
+
+#### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### regexContains()
+
+#### Call Signature
+
+> **regexContains**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2026](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2026)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexContains**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2027](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2027)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexContains**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2028](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2028)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexContains**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2029](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2029)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### regexFind()
+
+#### Call Signature
+
+> **regexFind**(`_fieldName`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2040](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2040)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFind**(`_fieldName`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2041](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2041)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFind**(`_stringExpression`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2042](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2042)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFind**(`_stringExpression`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2043](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2043)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### regexFindAll()
+
+#### Call Signature
+
+> **regexFindAll**(`_fieldName`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2051](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2051)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFindAll**(`_fieldName`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2052](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2052)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFindAll**(`_stringExpression`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2053](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2053)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **regexFindAll**(`_stringExpression`, `_pattern`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2054](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2054)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### regexMatch()
+
+#### Call Signature
+
+> **regexMatch**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2065](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2065)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexMatch**(`_fieldName`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2066](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2066)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexMatch**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2067](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2067)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **regexMatch**(`_stringExpression`, `_pattern`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2068](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2068)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_pattern
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### reverse()
+
+#### Call Signature
+
+> **reverse**(`_stringExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1730](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1730)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **reverse**(`_field`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1731](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1731)
+
+##### Parameters
+
+###### \_field
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### round()
+
+#### Call Signature
+
+> **round**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1346](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1346)
+
+**`Beta`**
+
+Rounds to the nearest integer (or to decimalPlaces when provided).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **round**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1347](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1347)
+
+**`Beta`**
+
+Rounds to the nearest integer (or to decimalPlaces when provided).
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **round**(`_expression`, `_decimalPlaces`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1352](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1352)
+
+**`Beta`**
+
+Rounds to the given number of decimal places.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_decimalPlaces
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **round**(`_fieldName`, `_decimalPlaces`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1356](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1356)
+
+**`Beta`**
+
+Rounds to the nearest integer (or to decimalPlaces when provided).
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_decimalPlaces
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### rtrim()
+
+#### Call Signature
+
+> **rtrim**(`_fieldName`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1917](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1917)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_valueToTrim?
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **rtrim**(`_expression`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1921](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1921)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_valueToTrim?
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### split()
+
+#### Call Signature
+
+> **split**(`_fieldName`, `_delimiter`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1736](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1736)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_delimiter
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **split**(`_fieldName`, `_delimiter`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1737](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1737)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_delimiter
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **split**(`_expression`, `_delimiter`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1738](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1738)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_delimiter
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **split**(`_expression`, `_delimiter`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1739](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1739)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_delimiter
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### sqrt()
+
+#### Call Signature
+
+> **sqrt**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1442](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1442)
+
+**`Beta`**
+
+Square root of a numeric expression.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **sqrt**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1443](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1443)
+
+**`Beta`**
+
+Square root of a numeric expression.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### startsWith()
+
+#### Call Signature
+
+> **startsWith**(`_stringOrFieldName`, `_prefix`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1005](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1005)
+
+**`Beta`**
+
+Checks if a string starts with a prefix.
+
+##### Parameters
+
+###### \_stringOrFieldName
+
+`string`
+
+###### \_prefix
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **startsWith**(`_stringOrFieldName`, `_prefix`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:1006](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1006)
+
+**`Beta`**
+
+Checks if a string starts with a prefix.
+
+##### Parameters
+
+###### \_stringOrFieldName
+
+[`Expression`](#expression)
+
+###### \_prefix
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### stringConcat()
+
+#### Call Signature
+
+> **stringConcat**(`_fieldName`, `_secondString`, ...`_otherStrings`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1932](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1932)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_secondString
+
+[`Expression`](#expression)
+
+###### \_otherStrings
+
+...[`Expression`](#expression)[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringConcat**(`_firstString`, `_secondString`, ...`_otherStrings`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1937](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1937)
+
+##### Parameters
+
+###### \_firstString
+
+[`Expression`](#expression)
+
+###### \_secondString
+
+[`Expression`](#expression)
+
+###### \_otherStrings
+
+...[`Expression`](#expression)[]
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### stringContains()
+
+#### Call Signature
+
+> **stringContains**(`_fieldName`, `_substring`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2076](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2076)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_substring
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **stringContains**(`_fieldName`, `_substring`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2077](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2077)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_substring
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **stringContains**(`_stringExpression`, `_substring`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2078](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2078)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_substring
+
+`string`
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+#### Call Signature
+
+> **stringContains**(`_stringExpression`, `_substring`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2082](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2082)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_substring
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+***
+
+### stringIndexOf()
+
+#### Call Signature
+
+> **stringIndexOf**(`_fieldName`, `_search`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2093](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2093)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_search
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringIndexOf**(`_expression`, `_search`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2097](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2097)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_search
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### stringRepeat()
+
+#### Call Signature
+
+> **stringRepeat**(`_fieldName`, `_repetitions`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2108)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_repetitions
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringRepeat**(`_expression`, `_repetitions`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2112](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2112)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_repetitions
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### stringReplaceAll()
+
+#### Call Signature
+
+> **stringReplaceAll**(`_fieldName`, `_find`, `_replacement`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2123](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2123)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_find
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+###### \_replacement
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringReplaceAll**(`_expression`, `_find`, `_replacement`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2128](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2128)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_find
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+###### \_replacement
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### stringReplaceOne()
+
+#### Call Signature
+
+> **stringReplaceOne**(`_fieldName`, `_find`, `_replacement`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2145](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2145)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_find
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+###### \_replacement
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringReplaceOne**(`_expression`, `_find`, `_replacement`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2150](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2150)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_find
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+###### \_replacement
+
+[`Bytes`](../../index/@react-native-firebase/firestore/index.mdx#bytes) \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### stringReverse()
+
+#### Call Signature
+
+> **stringReverse**(`_stringExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2163](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2163)
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **stringReverse**(`_field`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2164](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2164)
+
+##### Parameters
+
+###### \_field
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### substring()
+
+#### Call Signature
+
+> **substring**(`_field`, `_position`, `_length?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1539](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1539)
+
+**`Beta`**
+
+Substring from position with optional length.
+
+##### Parameters
+
+###### \_field
+
+`string`
+
+###### \_position
+
+`number`
+
+###### \_length?
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **substring**(`_input`, `_position`, `_length?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1540](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1540)
+
+**`Beta`**
+
+Substring from position with optional length.
+
+##### Parameters
+
+###### \_input
+
+[`Expression`](#expression)
+
+###### \_position
+
+`number`
+
+###### \_length?
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **substring**(`_field`, `_position`, `_length?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1545](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1545)
+
+**`Beta`**
+
+Substring from position with optional length.
+
+##### Parameters
+
+###### \_field
+
+`string`
+
+###### \_position
+
+[`Expression`](#expression)
+
+###### \_length?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **substring**(`_input`, `_position`, `_length?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1550](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1550)
+
+**`Beta`**
+
+Substring from position with optional length.
+
+##### Parameters
+
+###### \_input
+
+[`Expression`](#expression)
+
+###### \_position
+
+[`Expression`](#expression)
+
+###### \_length?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### subtract()
+
+#### Call Signature
+
+> **subtract**(`_left`, `_right`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1160](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1160)
+
+**`Beta`**
+
+Creates an expression that subtracts the second from the first.
+
+##### Parameters
+
+###### \_left
+
+[`Expression`](#expression)
+
+###### \_right
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **subtract**(`_expression`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1165](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1165)
+
+**`Beta`**
+
+Creates an expression that subtracts a constant value from an expression.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **subtract**(`_fieldName`, `_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1170](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1170)
+
+**`Beta`**
+
+Creates an expression that subtracts an expression from a field's value.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **subtract**(`_fieldName`, `_value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1175](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1175)
+
+**`Beta`**
+
+Creates an expression that subtracts a constant value from a field's value.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_value
+
+`unknown`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### sum()
+
+#### Call Signature
+
+> **sum**(`_expression`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1252](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1252)
+
+**`Beta`**
+
+Creates an aggregation that sums values from an expression across stage inputs.
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+`Accumulator`
+
+#### Call Signature
+
+> **sum**(`_fieldName`): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:1257](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1257)
+
+**`Beta`**
+
+Creates an aggregation that sums a field's values across stage inputs.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+`Accumulator`
+
+***
+
+### timestampAdd()
+
+#### Call Signature
+
+> **timestampAdd**(`_timestamp`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2169](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2169)
+
+##### Parameters
+
+###### \_timestamp
+
+[`Expression`](#expression)
+
+###### \_unit
+
+[`Expression`](#expression)
+
+###### \_amount
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampAdd**(`_timestamp`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2174](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2174)
+
+##### Parameters
+
+###### \_timestamp
+
+[`Expression`](#expression)
+
+###### \_unit
+
+`TimestampUnit`
+
+###### \_amount
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampAdd**(`_fieldName`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2179](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2179)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_unit
+
+`TimestampUnit`
+
+###### \_amount
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### timestampSubtract()
+
+#### Call Signature
+
+> **timestampSubtract**(`_timestamp`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2192](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2192)
+
+##### Parameters
+
+###### \_timestamp
+
+[`Expression`](#expression)
+
+###### \_unit
+
+[`Expression`](#expression)
+
+###### \_amount
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampSubtract**(`_timestamp`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2197](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2197)
+
+##### Parameters
+
+###### \_timestamp
+
+[`Expression`](#expression)
+
+###### \_unit
+
+`TimestampUnit`
+
+###### \_amount
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampSubtract**(`_fieldName`, `_unit`, `_amount`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2202](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2202)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_unit
+
+`TimestampUnit`
+
+###### \_amount
+
+`number`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### timestampToUnixMicros()
+
+#### Call Signature
+
+> **timestampToUnixMicros**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2215](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2215)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampToUnixMicros**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2216](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2216)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### timestampToUnixMillis()
+
+#### Call Signature
+
+> **timestampToUnixMillis**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2221](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2221)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampToUnixMillis**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2222](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2222)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### timestampToUnixSeconds()
+
+#### Call Signature
+
+> **timestampToUnixSeconds**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2227](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2227)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampToUnixSeconds**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2228](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2228)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### timestampTruncate()
+
+#### Call Signature
+
+> **timestampTruncate**(`_fieldName`, `_granularity`, `_timezone?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2233](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2233)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_granularity
+
+[`TimeGranularity`](#timegranularity)
+
+###### \_timezone?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampTruncate**(`_fieldName`, `_granularity`, `_timezone?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2238](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2238)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_granularity
+
+[`Expression`](#expression)
+
+###### \_timezone?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampTruncate**(`_timestampExpression`, `_granularity`, `_timezone?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2243](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2243)
+
+##### Parameters
+
+###### \_timestampExpression
+
+[`Expression`](#expression)
+
+###### \_granularity
+
+[`TimeGranularity`](#timegranularity)
+
+###### \_timezone?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **timestampTruncate**(`_timestampExpression`, `_granularity`, `_timezone?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2248](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2248)
+
+##### Parameters
+
+###### \_timestampExpression
+
+[`Expression`](#expression)
+
+###### \_granularity
+
+[`Expression`](#expression)
+
+###### \_timezone?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### toLower()
+
+#### Call Signature
+
+> **toLower**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1503](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1503)
+
+**`Beta`**
+
+Converts string to lower case.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **toLower**(`_stringExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1504](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1504)
+
+**`Beta`**
+
+Converts string to lower case.
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### toUpper()
+
+#### Call Signature
+
+> **toUpper**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1513](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1513)
+
+**`Beta`**
+
+Converts string to upper case.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **toUpper**(`_stringExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1514](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1514)
+
+**`Beta`**
+
+Converts string to upper case.
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### trim()
+
+#### Call Signature
+
+> **trim**(`_fieldName`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1523](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1523)
+
+**`Beta`**
+
+Trims whitespace (or optional valueToTrim) from string.
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_valueToTrim?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **trim**(`_stringExpression`, `_valueToTrim?`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:1524](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1524)
+
+**`Beta`**
+
+Trims whitespace (or optional valueToTrim) from string.
+
+##### Parameters
+
+###### \_stringExpression
+
+[`Expression`](#expression)
+
+###### \_valueToTrim?
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### trunc()
+
+#### Call Signature
+
+> **trunc**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2261](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2261)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **trunc**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2262](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2262)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **trunc**(`_fieldName`, `_decimalPlaces`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2263](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2263)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+###### \_decimalPlaces
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **trunc**(`_expression`, `_decimalPlaces`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2264](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2264)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+###### \_decimalPlaces
+
+`number` \| [`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### type()
+
+#### Call Signature
+
+> **type**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2275](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2275)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **type**(`_expression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2276](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2276)
+
+##### Parameters
+
+###### \_expression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### unixMicrosToTimestamp()
+
+#### Call Signature
+
+> **unixMicrosToTimestamp**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2281](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2281)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **unixMicrosToTimestamp**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2282](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2282)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### unixMillisToTimestamp()
+
+#### Call Signature
+
+> **unixMillisToTimestamp**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2287](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2287)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **unixMillisToTimestamp**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2288](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2288)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### unixSecondsToTimestamp()
+
+#### Call Signature
+
+> **unixSecondsToTimestamp**(`_expr`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2293](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2293)
+
+##### Parameters
+
+###### \_expr
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **unixSecondsToTimestamp**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2294](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2294)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### vectorLength()
+
+#### Call Signature
+
+> **vectorLength**(`_vectorExpression`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2299](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2299)
+
+##### Parameters
+
+###### \_vectorExpression
+
+[`Expression`](#expression)
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+#### Call Signature
+
+> **vectorLength**(`_fieldName`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:2300](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2300)
+
+##### Parameters
+
+###### \_fieldName
+
+`string`
+
+##### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+***
+
+### xor()
+
+> **xor**(`_first`, `_second`, ...`_additionalConditions`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:2305](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L2305)
+
+#### Parameters
+
+##### \_first
+
+[`BooleanExpression`](#booleanexpression)
+
+##### \_second
+
+[`BooleanExpression`](#booleanexpression)
+
+##### \_additionalConditions
+
+...[`BooleanExpression`](#booleanexpression)[]
+
+#### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+## Interfaces
+
+### AliasedAggregate
+
+Defined in: [pipelines/expressions.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L185)
+
+**`Beta`**
+
+An aggregate function with an output alias.
+
+#### Properties
+
+##### aggregate
+
+> `readonly` **aggregate**: `Accumulator`
+
+Defined in: [pipelines/expressions.ts:186](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L186)
+
+**`Beta`**
+
+##### alias
+
+> `readonly` **alias**: `string`
+
+Defined in: [pipelines/expressions.ts:187](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L187)
+
+**`Beta`**
+
+***
+
+### AliasedExpression
+
+Defined in: [pipelines/expressions.ts:194](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L194)
+
+**`Beta`**
+
+An expression with an output alias (implements Selectable).
+
+#### Extends
+
+- [`Selectable`](#selectable-4)
+
+#### Properties
+
+##### alias
+
+> `readonly` **alias**: `string`
+
+Defined in: [pipelines/expressions.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L196)
+
+**`Beta`**
+
+##### expr
+
+> `readonly` **expr**: [`Expression`](#expression)
+
+Defined in: [pipelines/expressions.ts:195](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L195)
+
+**`Beta`**
+
+##### exprType?
+
+> `optional` **exprType?**: [`ExpressionType`](#expressiontype)
+
+Defined in: [pipelines/expressions.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L197)
+
+**`Beta`**
+
+##### selectable
+
+> **selectable**: `true`
+
+Defined in: [pipelines/expressions.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L122)
+
+**`Beta`**
+
+###### Inherited from
+
+[`Selectable`](#selectable-4).[`selectable`](#selectable-5)
+
+***
+
+### BooleanExpression
+
+Defined in: [pipelines/expressions.ts:113](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L113)
+
+**`Beta`**
+
+Selectable for pipeline field selection/expressions (e.g. field('a').as('b'), expressions).
+
+#### Extends
+
+- [`Selectable`](#selectable-4).`FluentExpressionMethods`
+
+#### Methods
+
+##### add()
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L93)
+
+###### Parameters
+
+###### value
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L94)
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+##### arrayAgg()
+
+> **arrayAgg**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L109)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAgg`
+
+##### arrayAggDistinct()
+
+> **arrayAggDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L110)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAggDistinct`
+
+##### as()
+
+> **as**(`name`): [`AliasedExpression`](#aliasedexpression)
+
+Defined in: [pipelines/expressions.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L90)
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### Returns
+
+[`AliasedExpression`](#aliasedexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.as`
+
+##### ascending()
+
+> **ascending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L91)
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.ascending`
+
+##### average()
+
+> **average**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L95)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.average`
+
+##### count()
+
+> **count**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L96)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.count`
+
+##### countDistinct()
+
+> **countDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L97)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.countDistinct`
+
+##### descending()
+
+> **descending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L92)
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.descending`
+
+##### equal()
+
+###### Call Signature
+
+> **equal**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L98)
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+###### Call Signature
+
+> **equal**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L99)
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+##### first()
+
+> **first**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L100)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.first`
+
+##### greaterThan()
+
+###### Call Signature
+
+> **greaterThan**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L101)
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+###### Call Signature
+
+> **greaterThan**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L102)
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+##### greaterThanOrEqual()
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L103)
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L104)
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+##### last()
+
+> **last**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L105)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.last`
+
+##### maximum()
+
+> **maximum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L106)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.maximum`
+
+##### minimum()
+
+> **minimum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L107)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.minimum`
+
+##### sum()
+
+> **sum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L108)
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.sum`
+
+#### Properties
+
+##### \_brand?
+
+> `readonly` `optional` **\_brand?**: `"BooleanExpression"`
+
+Defined in: [pipelines/expressions.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L114)
+
+##### selectable
+
+> **selectable**: `true`
+
+Defined in: [pipelines/expressions.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L122)
+
+**`Beta`**
+
+###### Inherited from
+
+[`Selectable`](#selectable-4).[`selectable`](#selectable-5)
+
+***
+
+### Field
+
+Defined in: [pipelines/expressions.ts:129](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L129)
+
+**`Beta`**
+
+Field reference for pipeline stages.
+
+#### Extends
+
+- [`Selectable`](#selectable-4).`FluentExpressionMethods`
+
+#### Methods
+
+##### add()
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L93)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L94)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+##### arrayAgg()
+
+> **arrayAgg**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L109)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAgg`
+
+##### arrayAggDistinct()
+
+> **arrayAggDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L110)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAggDistinct`
+
+##### as()
+
+> **as**(`name`): [`AliasedExpression`](#aliasedexpression)
+
+Defined in: [pipelines/expressions.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L90)
+
+**`Beta`**
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### Returns
+
+[`AliasedExpression`](#aliasedexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.as`
+
+##### ascending()
+
+> **ascending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L91)
+
+**`Beta`**
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.ascending`
+
+##### average()
+
+> **average**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L95)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.average`
+
+##### count()
+
+> **count**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L96)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.count`
+
+##### countDistinct()
+
+> **countDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L97)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.countDistinct`
+
+##### descending()
+
+> **descending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L92)
+
+**`Beta`**
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.descending`
+
+##### equal()
+
+###### Call Signature
+
+> **equal**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L98)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+###### Call Signature
+
+> **equal**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L99)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+##### first()
+
+> **first**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L100)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.first`
+
+##### greaterThan()
+
+###### Call Signature
+
+> **greaterThan**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L101)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+###### Call Signature
+
+> **greaterThan**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L102)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+##### greaterThanOrEqual()
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L103)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L104)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+##### last()
+
+> **last**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L105)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.last`
+
+##### maximum()
+
+> **maximum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L106)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.maximum`
+
+##### minimum()
+
+> **minimum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L107)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.minimum`
+
+##### sum()
+
+> **sum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L108)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.sum`
+
+#### Properties
+
+##### \_brand?
+
+> `readonly` `optional` **\_brand?**: `"Field"`
+
+Defined in: [pipelines/expressions.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L130)
+
+**`Beta`**
+
+##### selectable
+
+> **selectable**: `true`
+
+Defined in: [pipelines/expressions.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L122)
+
+**`Beta`**
+
+###### Inherited from
+
+[`Selectable`](#selectable-4).[`selectable`](#selectable-5)
+
+***
+
+### FunctionExpression
+
+Defined in: [pipelines/expressions.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L137)
+
+**`Beta`**
+
+Function expression (e.g. map(...), array(...)). Used as return type and in Expression union.
+
+#### Extends
+
+- [`Selectable`](#selectable-4).`FluentExpressionMethods`
+
+#### Methods
+
+##### add()
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:93](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L93)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+###### Call Signature
+
+> **add**(`value`): [`FunctionExpression`](#functionexpression)
+
+Defined in: [pipelines/expressions.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L94)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`FunctionExpression`](#functionexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.add`
+
+##### arrayAgg()
+
+> **arrayAgg**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L109)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAgg`
+
+##### arrayAggDistinct()
+
+> **arrayAggDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L110)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.arrayAggDistinct`
+
+##### as()
+
+> **as**(`name`): [`AliasedExpression`](#aliasedexpression)
+
+Defined in: [pipelines/expressions.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L90)
+
+**`Beta`**
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### Returns
+
+[`AliasedExpression`](#aliasedexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.as`
+
+##### ascending()
+
+> **ascending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L91)
+
+**`Beta`**
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.ascending`
+
+##### average()
+
+> **average**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:95](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L95)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.average`
+
+##### count()
+
+> **count**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L96)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.count`
+
+##### countDistinct()
+
+> **countDistinct**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L97)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.countDistinct`
+
+##### descending()
+
+> **descending**(): `Ordering`
+
+Defined in: [pipelines/expressions.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L92)
+
+**`Beta`**
+
+###### Returns
+
+`Ordering`
+
+###### Inherited from
+
+`FluentExpressionMethods.descending`
+
+##### equal()
+
+###### Call Signature
+
+> **equal**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L98)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+###### Call Signature
+
+> **equal**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L99)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.equal`
+
+##### first()
+
+> **first**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:100](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L100)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.first`
+
+##### greaterThan()
+
+###### Call Signature
+
+> **greaterThan**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:101](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L101)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+###### Call Signature
+
+> **greaterThan**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:102](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L102)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThan`
+
+##### greaterThanOrEqual()
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`expression`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L103)
+
+**`Beta`**
+
+###### Parameters
+
+###### expression
+
+[`Expression`](#expression)
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+###### Call Signature
+
+> **greaterThanOrEqual**(`value`): [`BooleanExpression`](#booleanexpression)
+
+Defined in: [pipelines/expressions.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L104)
+
+**`Beta`**
+
+###### Parameters
+
+###### value
+
+`unknown`
+
+###### Returns
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Inherited from
+
+`FluentExpressionMethods.greaterThanOrEqual`
+
+##### last()
+
+> **last**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:105](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L105)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.last`
+
+##### maximum()
+
+> **maximum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L106)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.maximum`
+
+##### minimum()
+
+> **minimum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:107](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L107)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.minimum`
+
+##### sum()
+
+> **sum**(): `Accumulator`
+
+Defined in: [pipelines/expressions.ts:108](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L108)
+
+**`Beta`**
+
+###### Returns
+
+`Accumulator`
+
+###### Inherited from
+
+`FluentExpressionMethods.sum`
+
+#### Properties
+
+##### \_brand?
+
+> `readonly` `optional` **\_brand?**: `"FunctionExpression"`
+
+Defined in: [pipelines/expressions.ts:139](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L139)
+
+**`Beta`**
+
+##### selectable
+
+> **selectable**: `true`
+
+Defined in: [pipelines/expressions.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L138)
+
+**`Beta`**
+
+###### Overrides
+
+[`Selectable`](#selectable-4).[`selectable`](#selectable-5)
+
+***
+
+### Pipeline
+
+Defined in: [pipelines/pipeline.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L45)
+
+**`Beta`**
+
+Pipeline with chained stages. Each stage returns a new Pipeline (immutable chain).
+
+#### Type Parameters
+
+##### T
+
+`T` = [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)
+
+#### Methods
+
+##### addFields()
+
+###### Call Signature
+
+> **addFields**(...`field`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L58)
+
+**`Beta`**
+
+###### Parameters
+
+###### field
+
+...[`Selectable`](#selectable-4)[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **addFields**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L59)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### field
+
+[`Selectable`](#selectable-4)[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### aggregate()
+
+###### Call Signature
+
+> **aggregate**(...`accumulator`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:73](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L73)
+
+**`Beta`**
+
+###### Parameters
+
+###### accumulator
+
+...[`AliasedAggregate`](#aliasedaggregate)[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **aggregate**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L74)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineAggregateOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### distinct()
+
+###### Call Signature
+
+> **distinct**(...`group`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:76](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L76)
+
+**`Beta`**
+
+###### Parameters
+
+###### group
+
+...(`string` \| [`Field`](#field))[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **distinct**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L77)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineDistinctOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### findNearest()
+
+> **findNearest**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L79)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineFindNearestOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### limit()
+
+###### Call Signature
+
+> **limit**(`n`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L67)
+
+**`Beta`**
+
+###### Parameters
+
+###### n
+
+`number`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **limit**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L68)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### n
+
+`number`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### offset()
+
+###### Call Signature
+
+> **offset**(`n`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L70)
+
+**`Beta`**
+
+###### Parameters
+
+###### n
+
+`number`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **offset**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L71)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### n
+
+`number`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### rawStage()
+
+> **rawStage**(`name`, `params`, `options?`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:94](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L94)
+
+**`Beta`**
+
+###### Parameters
+
+###### name
+
+`string`
+
+###### params
+
+`Record`\<`string`, `unknown`\>
+
+###### options?
+
+`PipelineRawStageOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### removeFields()
+
+###### Call Signature
+
+> **removeFields**(...`field`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L61)
+
+**`Beta`**
+
+###### Parameters
+
+###### field
+
+...(`string` \| [`Field`](#field))[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **removeFields**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L62)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### field
+
+(`string` \| [`Field`](#field))[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### replaceWith()
+
+###### Call Signature
+
+> **replaceWith**(`fieldName`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L81)
+
+**`Beta`**
+
+###### Parameters
+
+###### fieldName
+
+`string`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **replaceWith**(`expr`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L82)
+
+**`Beta`**
+
+###### Parameters
+
+###### expr
+
+[`Selectable`](#selectable-4)
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **replaceWith**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:83](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L83)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineReplaceWithOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### sample()
+
+###### Call Signature
+
+> **sample**(`n`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L85)
+
+**`Beta`**
+
+###### Parameters
+
+###### n
+
+`number`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **sample**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:86](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L86)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineSampleOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### select()
+
+###### Call Signature
+
+> **select**(...`selection`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L55)
+
+**`Beta`**
+
+###### Parameters
+
+###### selection
+
+...(`string` \| [`Selectable`](#selectable-4))[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **select**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L56)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### selection
+
+(`string` \| [`Selectable`](#selectable-4))[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### serialize()
+
+> **serialize**(): `FirestorePipelineSerializedInternal`
+
+Defined in: [pipelines/pipeline.ts:50](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L50)
+
+**`Internal`**
+
+Serializes the source + stage chain to the wire format.
+
+###### Returns
+
+`FirestorePipelineSerializedInternal`
+
+##### sort()
+
+###### Call Signature
+
+> **sort**(...`ordering`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L64)
+
+**`Beta`**
+
+###### Parameters
+
+###### ordering
+
+...`Ordering`[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **sort**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L65)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### ordering
+
+`Ordering`[]
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### union()
+
+###### Call Signature
+
+> **union**(`otherPipeline`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L88)
+
+**`Beta`**
+
+###### Parameters
+
+###### otherPipeline
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **union**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L89)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineUnionOptions`\<`T`\>
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### unnest()
+
+###### Call Signature
+
+> **unnest**(`selectable`, `indexField?`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:91](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L91)
+
+**`Beta`**
+
+###### Parameters
+
+###### selectable
+
+[`Selectable`](#selectable-4)
+
+###### indexField?
+
+`string`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **unnest**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L92)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineUnnestOptions`
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+##### where()
+
+###### Call Signature
+
+> **where**(`condition`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L52)
+
+**`Beta`**
+
+###### Parameters
+
+###### condition
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+###### Call Signature
+
+> **where**(`options`): [`Pipeline`](#pipeline)\<`T`\>
+
+Defined in: [pipelines/pipeline.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline.ts#L53)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+###### condition
+
+[`BooleanExpression`](#booleanexpression)
+
+###### Returns
+
+[`Pipeline`](#pipeline)\<`T`\>
+
+***
+
+### PipelineExecuteOptions
+
+Defined in: [pipelines/pipeline\_options.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_options.ts#L28)
+
+**`Beta`**
+
+Options for pipeline execute().
+
+Note: `indexMode` and `rawOptions` are currently applied on Android and web only. iOS rejects
+them because the native Firestore pipeline SDK does not yet expose execute options.
+
+#### Extends
+
+- [`StageOptions`](#stageoptions)
+
+#### Properties
+
+##### indexMode?
+
+> `optional` **indexMode?**: `"recommended"`
+
+Defined in: [pipelines/pipeline\_options.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_options.ts#L30)
+
+**`Beta`**
+
+##### pipeline
+
+> **pipeline**: [`Pipeline`](#pipeline)
+
+Defined in: [pipelines/pipeline\_options.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_options.ts#L29)
+
+**`Beta`**
+
+##### rawOptions?
+
+> `optional` **rawOptions?**: `object`
+
+Defined in: [pipelines/pipeline\_options.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline_options.ts#L31)
+
+**`Beta`**
+
+Escape hatch for options not known at build time (e.g. backend-specific snake_case options).
+
+###### Index Signature
+
+\[`name`: `string`\]: `unknown`
+
+###### Overrides
+
+[`StageOptions`](#stageoptions).[`rawOptions`](#rawoptions-1)
+
+***
+
+### PipelineResult
+
+Defined in: [pipelines/pipeline-result.ts:27](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L27)
+
+**`Beta`**
+
+Result of running a pipeline. One per document (or per group with aggregation, or single for global aggregation).
+
+#### Type Parameters
+
+##### T
+
+`T` = [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)
+
+#### Methods
+
+##### data()
+
+> **data**(): `T`
+
+Defined in: [pipelines/pipeline-result.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L28)
+
+**`Beta`**
+
+###### Returns
+
+`T`
+
+##### get()
+
+> **get**(`fieldPath`): `unknown`
+
+Defined in: [pipelines/pipeline-result.ts:29](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L29)
+
+**`Beta`**
+
+###### Parameters
+
+###### fieldPath
+
+`string` \| [`FieldPath`](../../index/@react-native-firebase/firestore/index.mdx#fieldpath) \| [`Field`](#field)
+
+###### Returns
+
+`unknown`
+
+#### Properties
+
+##### createTime?
+
+> `readonly` `optional` **createTime?**: [`Timestamp`](../../index/@react-native-firebase/firestore/index.mdx#timestamp)
+
+Defined in: [pipelines/pipeline-result.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L32)
+
+**`Beta`**
+
+##### id?
+
+> `readonly` `optional` **id?**: `string`
+
+Defined in: [pipelines/pipeline-result.ts:31](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L31)
+
+**`Beta`**
+
+##### ref?
+
+> `readonly` `optional` **ref?**: [`DocumentReference`](../../index/@react-native-firebase/firestore/index.mdx#documentreference)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata), [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>
+
+Defined in: [pipelines/pipeline-result.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L30)
+
+**`Beta`**
+
+##### updateTime?
+
+> `readonly` `optional` **updateTime?**: [`Timestamp`](../../index/@react-native-firebase/firestore/index.mdx#timestamp)
+
+Defined in: [pipelines/pipeline-result.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L33)
+
+**`Beta`**
+
+***
+
+### PipelineSnapshot
+
+Defined in: [pipelines/pipeline-result.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L40)
+
+**`Beta`**
+
+Snapshot returned from `execute(pipeline)`.
+
+#### Type Parameters
+
+##### T
+
+`T` = [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)
+
+#### Properties
+
+##### executionTime
+
+> `readonly` **executionTime**: [`Timestamp`](../../index/@react-native-firebase/firestore/index.mdx#timestamp)
+
+Defined in: [pipelines/pipeline-result.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L42)
+
+**`Beta`**
+
+##### results
+
+> `readonly` **results**: [`PipelineResult`](#pipelineresult)\<`T`\>[]
+
+Defined in: [pipelines/pipeline-result.ts:41](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-result.ts#L41)
+
+**`Beta`**
+
+***
+
+### PipelineSource
+
+Defined in: [pipelines/pipeline-source.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L69)
+
+**`Beta`**
+
+PipelineSource defines the input for a pipeline. Call exactly one of collection, collectionGroup, database, documents, or createFrom.
+
+#### Type Parameters
+
+##### TPipeline
+
+`TPipeline` *extends* [`Pipeline`](#pipeline) = [`Pipeline`](#pipeline)
+
+#### Methods
+
+##### collection()
+
+###### Call Signature
+
+> **collection**(`path`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:70](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L70)
+
+**`Beta`**
+
+###### Parameters
+
+###### path
+
+`string`
+
+###### Returns
+
+`TPipeline`
+
+###### Call Signature
+
+> **collection**(`collectionRef`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L71)
+
+**`Beta`**
+
+###### Parameters
+
+###### collectionRef
+
+[`CollectionReference`](../../index/@react-native-firebase/firestore/index.mdx#collectionreference)
+
+###### Returns
+
+`TPipeline`
+
+###### Call Signature
+
+> **collection**(`options`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L72)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineCollectionSourceOptions`
+
+###### Returns
+
+`TPipeline`
+
+##### collectionGroup()
+
+###### Call Signature
+
+> **collectionGroup**(`collectionId`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L74)
+
+**`Beta`**
+
+###### Parameters
+
+###### collectionId
+
+`string`
+
+###### Returns
+
+`TPipeline`
+
+###### Call Signature
+
+> **collectionGroup**(`options`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L75)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineCollectionGroupSourceOptions`
+
+###### Returns
+
+`TPipeline`
+
+##### createFrom()
+
+> **createFrom**(`query`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L82)
+
+**`Beta`**
+
+###### Parameters
+
+###### query
+
+[`Query`](../../index/@react-native-firebase/firestore/index.mdx#query-2)
+
+###### Returns
+
+`TPipeline`
+
+##### database()
+
+> **database**(`options?`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L77)
+
+**`Beta`**
+
+###### Parameters
+
+###### options?
+
+`PipelineDatabaseSourceOptions`
+
+###### Returns
+
+`TPipeline`
+
+##### documents()
+
+###### Call Signature
+
+> **documents**(`docs`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L79)
+
+**`Beta`**
+
+###### Parameters
+
+###### docs
+
+(`string` \| [`DocumentReference`](../../index/@react-native-firebase/firestore/index.mdx#documentreference)\<[`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata), [`DocumentData`](../../index/@react-native-firebase/firestore/index.mdx#documentdata)\>)[]
+
+###### Returns
+
+`TPipeline`
+
+###### Call Signature
+
+> **documents**(`options`): `TPipeline`
+
+Defined in: [pipelines/pipeline-source.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/pipeline-source.ts#L80)
+
+**`Beta`**
+
+###### Parameters
+
+###### options
+
+`PipelineDocumentsSourceOptions`
+
+###### Returns
+
+`TPipeline`
+
+***
+
+### Selectable
+
+Defined in: [pipelines/expressions.ts:121](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L121)
+
+**`Beta`**
+
+Selectable for pipeline field selection/expressions (e.g. field('a').as('b'), expressions).
+
+#### Extended by
+
+- [`BooleanExpression`](#booleanexpression)
+- [`Field`](#field)
+- [`FunctionExpression`](#functionexpression)
+- [`AliasedExpression`](#aliasedexpression)
+
+#### Properties
+
+##### selectable
+
+> **selectable**: `true`
+
+Defined in: [pipelines/expressions.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L122)
+
+**`Beta`**
+
+***
+
+### StageOptions
+
+Defined in: [pipelines/stage\_options.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L112)
+
+**`Beta`**
+
+Options defining how a Stage is evaluated. Base type for stage option types.
+
+#### Extended by
+
+- [`PipelineExecuteOptions`](#pipelineexecuteoptions)
+
+#### Properties
+
+##### rawOptions?
+
+> `optional` **rawOptions?**: `object`
+
+Defined in: [pipelines/stage\_options.ts:117](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L117)
+
+**`Beta`**
+
+Escape hatch for options not known at build time (e.g. backend-specific snake_case options).
+
+###### Index Signature
+
+\[`name`: `string`\]: `unknown`
+
+## Type Aliases
+
+### AddFieldsStageOptions
+
+> **AddFieldsStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:126](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L126)
+
+**`Beta`**
+
+Options for AddFields stage. At least one field required.
+
+#### Type Declaration
+
+##### fields
+
+> **fields**: [`Selectable`](#selectable-4)[]
+
+**`Beta`**
+
+The fields to add to each document, specified as a Selectable. At least one field is required.
+
+***
+
+### AggregateFunction
+
+> **AggregateFunction** = `Accumulator`
+
+Defined in: [pipelines/expressions.ts:179](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L179)
+
+**`Beta`**
+
+Aggregate function (e.g. countAll()). Alias for Accumulator.
+
+***
+
+### AggregateStageOptions
+
+> **AggregateStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L138)
+
+**`Beta`**
+
+Options for Aggregate stage.
+
+#### Type Declaration
+
+##### accumulators
+
+> **accumulators**: [`AliasedAggregate`](#aliasedaggregate)[]
+
+**`Beta`**
+
+The AliasedAggregate values specifying aggregate operations to perform on the input documents.
+
+##### groups?
+
+> `optional` **groups?**: (`string` \| [`Selectable`](#selectable-4))[]
+
+**`Beta`**
+
+The Selectable expressions or field names to consider when determining distinct value combinations (groups), which will be aggregated over.
+
+***
+
+### CollectionGroupStageOptions
+
+> **CollectionGroupStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:155](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L155)
+
+**`Beta`**
+
+Options for CollectionGroup stage.
+
+#### Type Declaration
+
+##### collectionId
+
+> **collectionId**: `string`
+
+**`Beta`**
+
+ID of the collection group to use as the Pipeline source.
+
+##### forceIndex?
+
+> `optional` **forceIndex?**: `string`
+
+**`Beta`**
+
+Specifies the name of an index to be used for a query, overriding the query optimizer's default choice. This can be useful for performance tuning in specific scenarios where the default index selection does not yield optimal performance. This property is optional. When provided, it should be the exact name of the index to force.
+
+***
+
+### CollectionStageOptions
+
+> **CollectionStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L172)
+
+**`Beta`**
+
+Options for Collection stage.
+
+#### Type Declaration
+
+##### collection
+
+> **collection**: `string` \| [`Query`](../../index/@react-native-firebase/firestore/index.mdx#query-2)
+
+**`Beta`**
+
+Name or reference to the collection that will be used as the Pipeline source.
+
+##### forceIndex?
+
+> `optional` **forceIndex?**: `string`
+
+**`Beta`**
+
+Specifies the name of an index to be used for a query, overriding the query optimizer's default choice. This can be useful for performance tuning in specific scenarios where the default index selection does not yield optimal performance. This property is optional. When provided, it should be the exact name of the index to force.
+
+***
+
+### DatabaseStageOptions
+
+> **DatabaseStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L189)
+
+**`Beta`**
+
+Options for Database stage.
+
+***
+
+### DistinctStageOptions
+
+> **DistinctStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:195](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L195)
+
+**`Beta`**
+
+Options for Distinct stage.
+
+#### Type Declaration
+
+##### groups
+
+> **groups**: (`string` \| [`Selectable`](#selectable-4))[]
+
+**`Beta`**
+
+The Selectable expressions or field names to consider when determining distinct value combinations (groups).
+
+***
+
+### DocumentsStageOptions
+
+> **DocumentsStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:207](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L207)
+
+**`Beta`**
+
+Options for Documents stage.
+
+#### Type Declaration
+
+##### docs
+
+> **docs**: (`string` \| [`DocumentReference`](../../index/@react-native-firebase/firestore/index.mdx#documentreference))[]
+
+**`Beta`**
+
+An array of paths and DocumentReferences specifying the individual documents that will be the source of this pipeline. The converters for these DocumentReferences will be ignored and not have an effect on this pipeline. There must be at least one document specified in the array.
+
+***
+
+### Expression
+
+> **Expression** = [`Field`](#field) \| [`FunctionExpression`](#functionexpression) \| `ConstantExpression` \| [`Selectable`](#selectable-4) \| `string`
+
+Defined in: [pipelines/expressions.ts:154](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L154)
+
+**`Beta`**
+
+Expression type for pipeline parameters (field refs, literals, function results).
+
+***
+
+### ExpressionType
+
+> **ExpressionType** = `"Field"` \| `"Constant"` \| `"Function"` \| `"AggregateFunction"` \| `"ListOfExpressions"` \| `"AliasedExpression"`
+
+Defined in: [pipelines/expressions.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L26)
+
+**`Beta`**
+
+Expression type kind (for internal/backend use).
+
+***
+
+### FindNearestStageOptions
+
+> **FindNearestStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:219](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L219)
+
+**`Beta`**
+
+Options for FindNearest stage (vector search).
+
+#### Type Declaration
+
+##### distanceField?
+
+> `optional` **distanceField?**: `string`
+
+**`Beta`**
+
+If set, specifies the field on the output documents that will contain the computed vector distance for the document. If not set, the computed vector distance will not be returned.
+
+##### distanceMeasure
+
+> **distanceMeasure**: `"euclidean"` \| `"cosine"` \| `"dot_product"`
+
+**`Beta`**
+
+Specifies the method used to compute the distance between vectors. Possible values are: 'euclidean', 'cosine', 'dot_product'.
+
+##### field
+
+> **field**: [`Field`](#field) \| `string`
+
+**`Beta`**
+
+Specifies the field to be used. This can be a string representing the field path (e.g., 'fieldName', 'nested.fieldName') or an object of type Field representing a more complex field expression.
+
+##### limit?
+
+> `optional` **limit?**: `number`
+
+**`Beta`**
+
+The maximum number of documents to return from the FindNearest stage.
+
+##### vectorValue
+
+> **vectorValue**: [`VectorValue`](../../index/@react-native-firebase/firestore/index.mdx#vectorvalue) \| `number`[]
+
+**`Beta`**
+
+Specifies the query vector value, to which the vector distance will be computed.
+
+***
+
+### LimitStageOptions
+
+> **LimitStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L251)
+
+**`Beta`**
+
+Options for Limit stage.
+
+#### Type Declaration
+
+##### limit
+
+> **limit**: `number`
+
+**`Beta`**
+
+The maximum number of documents to return.
+
+***
+
+### OffsetStageOptions
+
+> **OffsetStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:263](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L263)
+
+**`Beta`**
+
+Options for Offset stage.
+
+#### Type Declaration
+
+##### offset
+
+> **offset**: `number`
+
+**`Beta`**
+
+The number of documents to skip.
+
+***
+
+### OneOf
+
+> **OneOf**\<`T`\> = `{ [K in keyof T]: Pick & { [P in Exclude]?: undefined } }`\[keyof `T`\]
+
+Defined in: [pipelines/types.ts:22](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/types.ts#L22)
+
+**`Beta`**
+
+Utility type: only one property of T may be set.
+
+#### Type Parameters
+
+##### T
+
+`T`
+
+***
+
+### RemoveFieldsStageOptions
+
+> **RemoveFieldsStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:275](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L275)
+
+**`Beta`**
+
+Options for RemoveFields stage.
+
+#### Type Declaration
+
+##### fields
+
+> **fields**: ([`Field`](#field) \| `string`)[]
+
+**`Beta`**
+
+The fields to remove from each document.
+
+***
+
+### ReplaceWithStageOptions
+
+> **ReplaceWithStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:287](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L287)
+
+**`Beta`**
+
+Options for ReplaceWith stage.
+
+#### Type Declaration
+
+##### map
+
+> **map**: [`Expression`](#expression) \| `string`
+
+**`Beta`**
+
+The name of a field that contains a map or an Expression that evaluates to a map.
+
+***
+
+### SampleStageOptions
+
+> **SampleStageOptions** = [`StageOptions`](#stageoptions) & [`OneOf`](#oneof)\<\{ `documents`: `number`; `percentage`: `number`; \}\>
+
+Defined in: [pipelines/stage\_options.ts:299](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L299)
+
+**`Beta`**
+
+Options for Sample stage (documents or percentage, one of).
+
+***
+
+### SelectStageOptions
+
+> **SelectStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L317)
+
+**`Beta`**
+
+Options for Select stage.
+
+#### Type Declaration
+
+##### selections
+
+> **selections**: ([`Selectable`](#selectable-4) \| `string`)[]
+
+**`Beta`**
+
+The fields to include in the output documents, specified as Selectable expression or as a string value indicating the field name.
+
+***
+
+### SortStageOptions
+
+> **SortStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:329](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L329)
+
+**`Beta`**
+
+Options for Sort stage.
+
+#### Type Declaration
+
+##### orderings
+
+> **orderings**: `Ordering`[]
+
+**`Beta`**
+
+Orderings specify how the input documents are sorted. One or more ordering are required.
+
+***
+
+### TimeGranularity
+
+> **TimeGranularity** = `"microsecond"` \| `"millisecond"` \| `"second"` \| `"minute"` \| `"hour"` \| `"day"` \| `"week"` \| `"week(monday)"` \| `"week(tuesday)"` \| `"week(wednesday)"` \| `"week(thursday)"` \| `"week(friday)"` \| `"week(saturday)"` \| `"week(sunday)"` \| `"isoWeek"` \| `"month"` \| `"quarter"` \| `"year"` \| `"isoYear"`
+
+Defined in: [pipelines/expressions.ts:64](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L64)
+
+**`Beta`**
+
+Time granularity for timestampTruncate.
+
+***
+
+### Type
+
+> **Type** = `"null"` \| `"array"` \| `"boolean"` \| `"bytes"` \| `"timestamp"` \| `"geo_point"` \| `"number"` \| `"int32"` \| `"int64"` \| `"float64"` \| `"decimal128"` \| `"map"` \| `"reference"` \| `"string"` \| `"vector"` \| `"max_key"` \| `"min_key"` \| `"object_id"` \| `"regex"` \| `"request_timestamp"`
+
+Defined in: [pipelines/expressions.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L38)
+
+**`Beta`**
+
+Firestore value type for isType() checks.
+
+***
+
+### UnionStageOptions
+
+> **UnionStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:341](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L341)
+
+**`Beta`**
+
+Options for Union stage.
+
+#### Type Declaration
+
+##### other
+
+> **other**: [`Pipeline`](#pipeline)
+
+**`Beta`**
+
+Specifies the other Pipeline to union with.
+
+***
+
+### UnnestStageOptions
+
+> **UnnestStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:353](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L353)
+
+**`Beta`**
+
+Options for Unnest stage.
+
+#### Type Declaration
+
+##### indexField?
+
+> `optional` **indexField?**: `string`
+
+**`Beta`**
+
+If set, specifies the field on the output documents that will contain the offset (starting at zero) that the element is from the original array.
+
+##### selectable
+
+> **selectable**: [`Selectable`](#selectable-4)
+
+**`Beta`**
+
+A Selectable object that defines an array expression to be un-nested and the alias for the un-nested field.
+
+***
+
+### WhereStageOptions
+
+> **WhereStageOptions** = [`StageOptions`](#stageoptions) & `object`
+
+Defined in: [pipelines/stage\_options.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/stage_options.ts#L370)
+
+**`Beta`**
+
+Options for Where stage.
+
+#### Type Declaration
+
+##### condition
+
+> **condition**: [`BooleanExpression`](#booleanexpression)
+
+**`Beta`**
+
+The BooleanExpression to apply as a filter for each input document to this stage.
+
+## Variables
+
+### Ordering
+
+> `const` **Ordering**: `object`
+
+Defined in: [pipelines/expressions.ts:1037](https://github.com/invertase/react-native-firebase/blob/main/packages/firestore/lib/pipelines/expressions.ts#L1037)
+
+**`Beta`**
+
+Ordering helper (e.g. Ordering.of(field('rating')).descending()).
+
+#### Type Declaration
+
+##### of()
+
+> **of**(`_fieldOrOrdering`): `Ordering`
+
+###### Parameters
+
+###### \_fieldOrOrdering
+
+[`Field`](#field) \| `Ordering`
+
+###### Returns
+
+`Ordering`
diff --git a/docs/reference/@react-native-firebase/functions/README.mdx b/docs/reference/@react-native-firebase/functions/README.mdx
new file mode 100644
index 0000000000..356bab733c
--- /dev/null
+++ b/docs/reference/@react-native-firebase/functions/README.mdx
@@ -0,0 +1,621 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/functions
+
+# @react-native-firebase/functions
+
+## Functions
+
+### connectFunctionsEmulator()
+
+> **connectFunctionsEmulator**(`functionsInstance`, `host`, `port`): `void`
+
+Defined in: [modular.ts:43](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L43)
+
+Modify this instance to communicate with the Cloud Functions emulator.
+Note: this must be called before this instance has been used to do any operations.
+
+#### Parameters
+
+##### functionsInstance
+
+[`Functions`](#functions)
+
+A functions instance.
+
+##### host
+
+`string`
+
+The emulator host. (ex: localhost)
+
+##### port
+
+`number`
+
+The emulator port. (ex: 5001)
+
+#### Returns
+
+`void`
+
+***
+
+### getFunctions()
+
+> **getFunctions**(`app?`, `regionOrCustomDomain?`): [`Functions`](#functions)
+
+Defined in: [modular.ts:28](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L28)
+
+Returns a Functions instance for the given app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The FirebaseApp to use. Optional.
+
+##### regionOrCustomDomain?
+
+`string`
+
+One of: a) The region the callable functions are located in (ex: us-central1) b) A custom domain hosting the callable functions (ex: https://mydomain.com). Optional.
+
+#### Returns
+
+[`Functions`](#functions)
+
+Functions instance for the given app.
+
+***
+
+### httpsCallable()
+
+> **httpsCallable**\<`RequestData`, `ResponseData`, `StreamData`\>(`functionsInstance`, `name`, `options?`): [`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [modular.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L59)
+
+Returns a reference to the callable HTTPS trigger with the given name.
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+#### Parameters
+
+##### functionsInstance
+
+[`Functions`](#functions)
+
+A functions instance.
+
+##### name
+
+`string`
+
+The name of the trigger.
+
+##### options?
+
+[`HttpsCallableOptions`](#httpscallableoptions)
+
+An interface for metadata about how calls should be executed.
+
+#### Returns
+
+[`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+HttpsCallable instance
+
+***
+
+### httpsCallableFromUrl()
+
+> **httpsCallableFromUrl**\<`RequestData`, `ResponseData`, `StreamData`\>(`functionsInstance`, `url`, `options?`): [`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [modular.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/modular.ts#L80)
+
+Returns a reference to the callable HTTPS trigger with the specified url.
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+#### Parameters
+
+##### functionsInstance
+
+[`Functions`](#functions)
+
+A functions instance.
+
+##### url
+
+`string`
+
+The url of the trigger.
+
+##### options?
+
+[`HttpsCallableOptions`](#httpscallableoptions)
+
+An instance of HttpsCallableOptions containing metadata about how calls should be executed.
+
+#### Returns
+
+[`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+HttpsCallable instance
+
+## Interfaces
+
+### Functions
+
+Defined in: [types/functions.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L136)
+
+Functions module instance - returned from firebase.functions() or firebase.app().functions()
+
+#### Extends
+
+- [`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Methods
+
+##### httpsCallable()
+
+> **httpsCallable**\<`RequestData`, `ResponseData`, `StreamData`\>(`name`, `options?`): [`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L146)
+
+Returns a reference to the callable HTTPS trigger with the given name.
+
+###### Type Parameters
+
+###### RequestData
+
+`RequestData` = `unknown`
+
+###### ResponseData
+
+`ResponseData` = `unknown`
+
+###### StreamData
+
+`StreamData` = `unknown`
+
+###### Parameters
+
+###### name
+
+`string`
+
+The name of the trigger.
+
+###### options?
+
+[`HttpsCallableOptions`](#httpscallableoptions)
+
+Optional settings for the callable function.
+
+###### Returns
+
+[`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+##### httpsCallableFromUrl()
+
+> **httpsCallableFromUrl**\<`RequestData`, `ResponseData`, `StreamData`\>(`url`, `options?`): [`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:157](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L157)
+
+Returns a reference to the callable HTTPS trigger with the given URL.
+
+###### Type Parameters
+
+###### RequestData
+
+`RequestData` = `unknown`
+
+###### ResponseData
+
+`ResponseData` = `unknown`
+
+###### StreamData
+
+`StreamData` = `unknown`
+
+###### Parameters
+
+###### url
+
+`string`
+
+The URL of the trigger.
+
+###### options?
+
+[`HttpsCallableOptions`](#httpscallableoptions)
+
+Optional settings for the callable function.
+
+###### Returns
+
+[`HttpsCallable`](#httpscallable-1)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+##### useEmulator()
+
+> **useEmulator**(`host`, `port`): `void`
+
+Defined in: [types/functions.ts:176](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L176)
+
+Changes this instance to point to a Cloud Functions emulator running locally.
+
+###### Parameters
+
+###### host
+
+`string`
+
+The host of the emulator, e.g. "localhost" or "10.0.2.2" for Android.
+
+###### port
+
+`number`
+
+The port of the emulator, e.g. 5001.
+
+###### Returns
+
+`void`
+
+##### ~~useFunctionsEmulator()~~
+
+> **useFunctionsEmulator**(`origin`): `void`
+
+Defined in: [types/functions.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L168)
+
+Changes this instance to point to a Cloud Functions emulator running locally.
+
+###### Parameters
+
+###### origin
+
+`string`
+
+The origin of the local emulator, e.g. "http://localhost:5001".
+
+###### Returns
+
+`void`
+
+###### Deprecated
+
+Use useEmulator(host, port) instead.
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/functions.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L138)
+
+The FirebaseApp this module is associated with
+
+###### Overrides
+
+[`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../app/namespaces/ReactNativeFirebase.mdx#app)
+
+***
+
+### HttpsCallable()
+
+Defined in: [types/functions.ts:69](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L69)
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+> **HttpsCallable**(`data?`): `Promise`\<[`HttpsCallableResult`](#httpscallableresult)\<`ResponseData`\>\>
+
+Defined in: [types/functions.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L74)
+
+#### Parameters
+
+##### data?
+
+`RequestData` \| `null`
+
+#### Returns
+
+`Promise`\<[`HttpsCallableResult`](#httpscallableresult)\<`ResponseData`\>\>
+
+#### Properties
+
+##### stream
+
+> **stream**: (`data?`, `options?`) => `Promise`\<`HttpsCallableStreamResult`\<`ResponseData`, `StreamData`\>\>
+
+Defined in: [types/functions.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L75)
+
+###### Parameters
+
+###### data?
+
+`RequestData` \| `null`
+
+###### options?
+
+`HttpsCallableStreamOptions`
+
+###### Returns
+
+`Promise`\<`HttpsCallableStreamResult`\<`ResponseData`, `StreamData`\>\>
+
+***
+
+### HttpsCallableOptions
+
+Defined in: [types/functions.ts:26](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L26)
+
+Use for iOS, Android and web for https callable only. For streaming, this is for android and iOS only.
+For web streaming, use `HttpsCallableStreamOptions` instead.
+
+#### Properties
+
+##### limitedUseAppCheckTokens?
+
+> `optional` **limitedUseAppCheckTokens?**: `boolean`
+
+Defined in: [types/functions.ts:40](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L40)
+
+Use for iOS, Android and web for https callable only. For streaming, this is for android and iOS only.
+For web streaming, use `HttpsCallableStreamOptions` instead.
+If set to true, uses a limited-use App Check token for callable function or stream requests from this
+instance of [Functions](#functions). You must use limited-use tokens to call functions with
+replay protection enabled. By default, this is false.
+
+##### timeout?
+
+> `optional` **timeout?**: `number`
+
+Defined in: [types/functions.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L32)
+
+Use for iOS, Android and web for https callable only. For streaming, this is for android and iOS only.
+For web streaming, use `HttpsCallableStreamOptions` instead.
+The timeout for the callable function or stream request.
+
+***
+
+### HttpsCallableResult
+
+Defined in: [types/functions.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L60)
+
+#### Type Parameters
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+#### Properties
+
+##### data
+
+> `readonly` **data**: `ResponseData`
+
+Defined in: [types/functions.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L61)
+
+## Namespaces
+
+- [~~FirebaseFunctionsTypes~~](namespaces/FirebaseFunctionsTypes.mdx)
+
+## Variables
+
+### default
+
+> **default**: `FunctionsNamespace`
+
+Defined in: [namespaced.ts:460](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/namespaced.ts#L460)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`FirebaseNamespacedExport`](../app/namespaces/ReactNativeFirebase.mdx#firebasenamespacedexport)\<`"functions"`, [`Functions`](#functions), `FunctionsStatics`, `true`\>
+
+Defined in: [namespaced.ts:465](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/namespaced.ts#L465)
+
+***
+
+### HttpsErrorCode
+
+> `const` **HttpsErrorCode**: `object`
+
+Defined in: [namespaced.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/namespaced.ts#L42)
+
+#### Type Declaration
+
+##### aborted
+
+> `readonly` **aborted**: `"aborted"` = `'aborted'`
+
+##### ABORTED
+
+> `readonly` **ABORTED**: `"aborted"` = `'aborted'`
+
+##### ALREADY\_EXISTS
+
+> `readonly` **ALREADY\_EXISTS**: `"already-exists"` = `'already-exists'`
+
+##### already-exists
+
+> `readonly` **already-exists**: `"already-exists"` = `'already-exists'`
+
+##### cancelled
+
+> `readonly` **cancelled**: `"cancelled"` = `'cancelled'`
+
+##### CANCELLED
+
+> `readonly` **CANCELLED**: `"cancelled"` = `'cancelled'`
+
+##### DATA\_LOSS
+
+> `readonly` **DATA\_LOSS**: `"data-loss"` = `'data-loss'`
+
+##### data-loss
+
+> `readonly` **data-loss**: `"data-loss"` = `'data-loss'`
+
+##### DEADLINE\_EXCEEDED
+
+> `readonly` **DEADLINE\_EXCEEDED**: `"deadline-exceeded"` = `'deadline-exceeded'`
+
+##### deadline-exceeded
+
+> `readonly` **deadline-exceeded**: `"deadline-exceeded"` = `'deadline-exceeded'`
+
+##### FAILED\_PRECONDITION
+
+> `readonly` **FAILED\_PRECONDITION**: `"failed-precondition"` = `'failed-precondition'`
+
+##### FAILED\_TO\_PARSE\_WRAPPED\_NUMBER
+
+> `readonly` **FAILED\_TO\_PARSE\_WRAPPED\_NUMBER**: `"failed-to-parse-wrapped-number"` = `'failed-to-parse-wrapped-number'`
+
+##### failed-precondition
+
+> `readonly` **failed-precondition**: `"failed-precondition"` = `'failed-precondition'`
+
+##### internal
+
+> `readonly` **internal**: `"internal"` = `'internal'`
+
+##### INTERNAL
+
+> `readonly` **INTERNAL**: `"internal"` = `'internal'`
+
+##### INVALID\_ARGUMENT
+
+> `readonly` **INVALID\_ARGUMENT**: `"invalid-argument"` = `'invalid-argument'`
+
+##### invalid-argument
+
+> `readonly` **invalid-argument**: `"invalid-argument"` = `'invalid-argument'`
+
+##### NOT\_FOUND
+
+> `readonly` **NOT\_FOUND**: `"not-found"` = `'not-found'`
+
+##### not-found
+
+> `readonly` **not-found**: `"not-found"` = `'not-found'`
+
+##### ok
+
+> `readonly` **ok**: `"ok"` = `'ok'`
+
+##### OK
+
+> `readonly` **OK**: `"ok"` = `'ok'`
+
+##### OUT\_OF\_RANGE
+
+> `readonly` **OUT\_OF\_RANGE**: `"out-of-range"` = `'out-of-range'`
+
+##### out-of-range
+
+> `readonly` **out-of-range**: `"out-of-range"` = `'out-of-range'`
+
+##### PERMISSION\_DENIED
+
+> `readonly` **PERMISSION\_DENIED**: `"permission-denied"` = `'permission-denied'`
+
+##### permission-denied
+
+> `readonly` **permission-denied**: `"permission-denied"` = `'permission-denied'`
+
+##### RESOURCE\_EXHAUSTED
+
+> `readonly` **RESOURCE\_EXHAUSTED**: `"resource-exhausted"` = `'resource-exhausted'`
+
+##### resource-exhausted
+
+> `readonly` **resource-exhausted**: `"resource-exhausted"` = `'resource-exhausted'`
+
+##### unauthenticated
+
+> `readonly` **unauthenticated**: `"unauthenticated"` = `'unauthenticated'`
+
+##### UNAUTHENTICATED
+
+> `readonly` **UNAUTHENTICATED**: `"unauthenticated"` = `'unauthenticated'`
+
+##### unavailable
+
+> `readonly` **unavailable**: `"unavailable"` = `'unavailable'`
+
+##### UNAVAILABLE
+
+> `readonly` **UNAVAILABLE**: `"unavailable"` = `'unavailable'`
+
+##### unimplemented
+
+> `readonly` **unimplemented**: `"unimplemented"` = `'unimplemented'`
+
+##### UNIMPLEMENTED
+
+> `readonly` **UNIMPLEMENTED**: `"unimplemented"` = `'unimplemented'`
+
+##### unknown
+
+> `readonly` **unknown**: `"unknown"` = `'unknown'`
+
+##### UNKNOWN
+
+> `readonly` **UNKNOWN**: `"unknown"` = `'unknown'`
+
+##### UNSUPPORTED\_TYPE
+
+> `readonly` **UNSUPPORTED\_TYPE**: `"unsupported-type"` = `'unsupported-type'`
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"24.0.0"` = `version`
+
+Defined in: [namespaced.ts:435](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/namespaced.ts#L435)
diff --git a/docs/reference/@react-native-firebase/functions/namespaces/FirebaseFunctionsTypes.mdx b/docs/reference/@react-native-firebase/functions/namespaces/FirebaseFunctionsTypes.mdx
new file mode 100644
index 0000000000..71d168c9b4
--- /dev/null
+++ b/docs/reference/@react-native-firebase/functions/namespaces/FirebaseFunctionsTypes.mdx
@@ -0,0 +1,208 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/functions](../README.mdx) / FirebaseFunctionsTypes
+
+# ~~FirebaseFunctionsTypes~~
+
+## Deprecated
+
+Use the exported types directly instead.
+FirebaseFunctionsTypes namespace is kept for backwards compatibility.
+
+## Type Aliases
+
+### ~~Callable~~
+
+> **Callable**\<`RequestData`, `ResponseData`, `StreamData`\> = [`HttpsCallable`](#httpscallable)\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L242)
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+***
+
+### ~~CallableOptions~~
+
+> **CallableOptions** = [`HttpsCallableOptions`](#httpscallableoptions)
+
+Defined in: [types/functions.ts:247](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L247)
+
+***
+
+### ~~CallableResult~~
+
+> **CallableResult**\<`ResponseData`\> = [`HttpsCallableResult`](#httpscallableresult)\<`ResponseData`\>
+
+Defined in: [types/functions.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L237)
+
+#### Type Parameters
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+***
+
+### ~~CallableStreamOptions~~
+
+> **CallableStreamOptions** = [`HttpsCallableStreamOptions`](#httpscallablestreamoptions)
+
+Defined in: [types/functions.ts:248](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L248)
+
+***
+
+### ~~CallableStreamResult~~
+
+> **CallableStreamResult**\<`ResponseData`, `StreamData`\> = [`HttpsCallableStreamResult`](#httpscallablestreamresult)\<`ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:238](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L238)
+
+#### Type Parameters
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+***
+
+### ~~Error~~
+
+> **Error** = [`HttpsError`](#httpserror)
+
+Defined in: [types/functions.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L249)
+
+***
+
+### ~~ErrorCode~~
+
+> **ErrorCode** = `FunctionsErrorCode`
+
+Defined in: [types/functions.ts:236](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L236)
+
+***
+
+### ~~ErrorCodeMap~~
+
+> **ErrorCodeMap** = [`HttpsErrorCode`](#httpserrorcode)
+
+Defined in: [types/functions.ts:250](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L250)
+
+***
+
+### ~~HttpsCallable~~
+
+> **HttpsCallable**\<`RequestData`, `ResponseData`, `StreamData`\> = `_HttpsCallable`\<`RequestData`, `ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L261)
+
+#### Type Parameters
+
+##### RequestData
+
+`RequestData` = `unknown`
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+***
+
+### ~~HttpsCallableOptions~~
+
+> **HttpsCallableOptions** = `_HttpsCallableOptions`
+
+Defined in: [types/functions.ts:266](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L266)
+
+***
+
+### ~~HttpsCallableResult~~
+
+> **HttpsCallableResult**\<`T`\> = `_HttpsCallableResult`\<`T`\>
+
+Defined in: [types/functions.ts:256](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L256)
+
+#### Type Parameters
+
+##### T
+
+`T` = `unknown`
+
+***
+
+### ~~HttpsCallableStreamOptions~~
+
+> **HttpsCallableStreamOptions** = `_HttpsCallableStreamOptions`
+
+Defined in: [types/functions.ts:267](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L267)
+
+***
+
+### ~~HttpsCallableStreamResult~~
+
+> **HttpsCallableStreamResult**\<`ResponseData`, `StreamData`\> = `_HttpsCallableStreamResult`\<`ResponseData`, `StreamData`\>
+
+Defined in: [types/functions.ts:257](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L257)
+
+#### Type Parameters
+
+##### ResponseData
+
+`ResponseData` = `unknown`
+
+##### StreamData
+
+`StreamData` = `unknown`
+
+***
+
+### ~~HttpsError~~
+
+> **HttpsError** = `_HttpsError`
+
+Defined in: [types/functions.ts:268](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L268)
+
+***
+
+### ~~HttpsErrorCode~~
+
+> **HttpsErrorCode** = `_HttpsErrorCode`
+
+Defined in: [types/functions.ts:269](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L269)
+
+***
+
+### ~~Module~~
+
+> **Module** = [`Functions`](../README.mdx#functions)
+
+Defined in: [types/functions.ts:252](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L252)
+
+***
+
+### ~~Statics~~
+
+> **Statics** = `FunctionsStatics`
+
+Defined in: [types/functions.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/functions/lib/types/functions.ts#L251)
diff --git a/docs/reference/@react-native-firebase/in-app-messaging.mdx b/docs/reference/@react-native-firebase/in-app-messaging.mdx
new file mode 100644
index 0000000000..e911352baa
--- /dev/null
+++ b/docs/reference/@react-native-firebase/in-app-messaging.mdx
@@ -0,0 +1,7 @@
+[**React Native Firebase**](../README.mdx)
+
+***
+
+[React Native Firebase](../packages.mdx) / @react-native-firebase/in-app-messaging
+
+# @react-native-firebase/in-app-messaging
diff --git a/docs/reference/@react-native-firebase/installations.mdx b/docs/reference/@react-native-firebase/installations.mdx
new file mode 100644
index 0000000000..d474d22acb
--- /dev/null
+++ b/docs/reference/@react-native-firebase/installations.mdx
@@ -0,0 +1,7 @@
+[**React Native Firebase**](../README.mdx)
+
+***
+
+[React Native Firebase](../packages.mdx) / @react-native-firebase/installations
+
+# @react-native-firebase/installations
diff --git a/docs/reference/@react-native-firebase/messaging/README.mdx b/docs/reference/@react-native-firebase/messaging/README.mdx
new file mode 100644
index 0000000000..8aac9a0360
--- /dev/null
+++ b/docs/reference/@react-native-firebase/messaging/README.mdx
@@ -0,0 +1,2269 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/messaging
+
+# @react-native-firebase/messaging
+
+## Functions
+
+### deleteToken()
+
+> **deleteToken**(`messaging`, `tokenOptions?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:52](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L52)
+
+Removes access to an FCM token previously authorized by its scope.
+Messages sent by the server to this token will fail.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### tokenOptions?
+
+[`NativeTokenOptions`](#nativetokenoptions)
+
+Options to override senderId (iOS) and projectId (Android).
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the token is deleted.
+
+***
+
+### experimentalSetDeliveryMetricsExportedToBigQueryEnabled()
+
+> **experimentalSetDeliveryMetricsExportedToBigQueryEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:431](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L431)
+
+Sets whether message delivery metrics are exported to BigQuery is enabled or disabled.
+The value is false by default. Set this to true to allow exporting of message delivery metrics to BigQuery.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable exporting of message delivery metrics to BigQuery.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### getAPNSToken()
+
+> **getAPNSToken**(`messaging`): `Promise`\<`string` \| `null`\>
+
+Defined in: [modular.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L223)
+
+On iOS, it is possible to get the users APNs token. This may be required if you want to send messages to your
+iOS devices without using the FCM service.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`string` \| `null`\>
+
+Promise that resolves with the APNs token or null.
+
+***
+
+### getDidOpenSettingsForNotification()
+
+> **getDidOpenSettingsForNotification**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:170](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L170)
+
+When the app is opened from iOS notifications settings from a quit state,
+this method will return `true` or `false` if the app was opened via another method.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the app was opened from settings.
+
+***
+
+### getInitialNotification()
+
+> **getInitialNotification**(`messaging`): `Promise`\<[`RemoteMessage`](#remotemessage) \| `null`\>
+
+Defined in: [modular.ts:159](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L159)
+
+When a notification from FCM has triggered the application to open from a quit state,
+this method will return a `RemoteMessage` containing the notification data, or `null` if
+the app was opened via another method.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<[`RemoteMessage`](#remotemessage) \| `null`\>
+
+Promise that resolves with the initial notification or null.
+
+***
+
+### getIsHeadless()
+
+> **getIsHeadless**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L181)
+
+Returns whether the root view is headless or not
+i.e true if the app was launched in the background (for example, by data-only cloud message)
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the app is headless.
+
+***
+
+### getMessaging()
+
+> **getMessaging**(`app?`): [`Messaging`](#messaging)
+
+Defined in: [modular.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L37)
+
+Returns a Messaging instance for the given app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+FirebaseApp. Optional.
+
+#### Returns
+
+[`Messaging`](#messaging)
+
+Messaging instance
+
+***
+
+### getToken()
+
+> **getToken**(`messaging`, `options?`): `Promise`\<`string`\>
+
+Defined in: [modular.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L66)
+
+Returns an FCM token for this device. Optionally, you can specify custom options for your own use case.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### options?
+
+[`GetTokenOptions`](#gettokenoptions) & [`NativeTokenOptions`](#nativetokenoptions)
+
+Options to override senderId (iOS) and appName.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+Promise that resolves with the FCM token.
+
+***
+
+### hasPermission()
+
+> **hasPermission**(`messaging`): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [modular.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L261)
+
+Returns a `AuthorizationStatus` as to whether the user has messaging permission for this app.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+Promise that resolves with the authorization status.
+
+***
+
+### isAutoInitEnabled()
+
+> **isAutoInitEnabled**(`messaging`): `boolean`
+
+Defined in: [modular.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L137)
+
+Returns whether messaging auto initialization is enabled or disabled for the device.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating whether auto initialization is enabled.
+
+***
+
+### isDeliveryMetricsExportToBigQueryEnabled()
+
+> **isDeliveryMetricsExportToBigQueryEnabled**(`messaging`): `boolean`
+
+Defined in: [modular.ts:380](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L380)
+
+Returns a boolean whether message delivery metrics are exported to BigQuery.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if message delivery metrics are exported to BigQuery.
+
+***
+
+### isDeviceRegisteredForRemoteMessages()
+
+> **isDeviceRegisteredForRemoteMessages**(`messaging`): `boolean`
+
+Defined in: [modular.ts:203](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L203)
+
+Returns a boolean value whether the user has registered for remote notifications via
+`registerDeviceForRemoteMessages()`. For iOS. Android always returns `true`.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if the device is registered for remote messages.
+
+***
+
+### isNotificationDelegationEnabled()
+
+> **isNotificationDelegationEnabled**(`messaging`): `boolean`
+
+Defined in: [modular.ts:390](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L390)
+
+Returns a boolean whether message delegation is enabled. Android only,
+always returns false on iOS
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`boolean`
+
+Boolean indicating if notification delegation is enabled.
+
+***
+
+### isSupported()
+
+> **isSupported**(`messaging`): `Promise`\<`boolean`\>
+
+Defined in: [modular.ts:419](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L419)
+
+Checks if all required APIs exist in the browser.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+Promise that resolves with a boolean indicating if the APIs are supported.
+
+***
+
+### onDeletedMessages()
+
+> **onDeletedMessages**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L272)
+
+Called when the FCM server deletes pending messages.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+() => `void`
+
+Called when the FCM deletes pending messages.
+
+#### Returns
+
+Function to unsubscribe from the deleted messages listener.
+
+() => `void`
+
+***
+
+### onMessage()
+
+> **onMessage**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:81](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L81)
+
+When any FCM payload is received, the listener callback is called with a `RemoteMessage`.
+> This subscriber method is only called when the app is active (in the foreground).
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a new FCM payload is received from the server.
+
+#### Returns
+
+Function to unsubscribe from the message listener.
+
+() => `void`
+
+***
+
+### onMessageSent()
+
+> **onMessageSent**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:283](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L283)
+
+When sending a `RemoteMessage`, this listener is called when the message has been sent to FCM.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+(`messageId`) => `any`
+
+Called when the FCM sends the remote message to FCM.
+
+#### Returns
+
+Function to unsubscribe from the message sent listener.
+
+() => `void`
+
+***
+
+### onNotificationOpenedApp()
+
+> **onNotificationOpenedApp**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L96)
+
+When the user presses a notification displayed via FCM, this listener will be called if the app
+has opened from a background state.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a notification press opens the application.
+
+#### Returns
+
+Function to unsubscribe from the notification opened listener.
+
+() => `void`
+
+***
+
+### onSendError()
+
+> **onSendError**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:298](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L298)
+
+When sending a `RemoteMessage`, this listener is called when an error is thrown and the
+message could not be sent.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+(`evt`) => `any`
+
+Called when the FCM sends the remote message to FCM.
+
+#### Returns
+
+Function to unsubscribe from the send error listener.
+
+() => `void`
+
+***
+
+### onTokenRefresh()
+
+> **onTokenRefresh**(`messaging`, `listener`): () => `void`
+
+Defined in: [modular.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L112)
+
+Called when a new registration token is generated for the device. For example, this event can happen when a
+token expires or when the server invalidates the token.
+> This subscriber method is only called when the app is active (in the foreground).
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### listener
+
+(`token`) => `any`
+
+Called with a FCM token when the token is refreshed.
+
+#### Returns
+
+Function to unsubscribe from the token refresh listener.
+
+() => `void`
+
+***
+
+### registerDeviceForRemoteMessages()
+
+> **registerDeviceForRemoteMessages**(`messaging`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:192](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L192)
+
+On iOS, if your app wants to receive remote messages from FCM (via APNs), you must explicitly register
+with APNs if auto-registration has been disabled.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the device is registered.
+
+***
+
+### requestPermission()
+
+> **requestPermission**(`messaging`, `iosPermissions?`): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [modular.ts:124](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L124)
+
+On iOS, messaging permission must be requested by the current application before messages can
+be received or sent.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### iosPermissions?
+
+[`IOSPermissions`](#iospermissions)
+
+All the available permissions for iOS that can be requested.
+
+#### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+Promise that resolves with the authorization status.
+
+***
+
+### sendMessage()
+
+> **sendMessage**(`messaging`, `message`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L347)
+
+Send a new `RemoteMessage` to the FCM server.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### message
+
+[`RemoteMessage`](#remotemessage)
+
+A `RemoteMessage` interface.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the message is sent.
+
+***
+
+### setAPNSToken()
+
+> **setAPNSToken**(`messaging`, `token`, `type?`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L251)
+
+On iOS, This method is used to set the APNs Token received by the application delegate.
+Note that the token is expected to be a hexadecimal string, as it is an NSData type in
+the underlying native firebase SDK, and raw data may only be passed as a string if it is
+hex encoded. Calling code is responsible for correct encoding, you should verify by comparing
+the results of `getAPNSToken()` with your token parameter to make sure they are equivalent.
+
+Messaging uses method swizzling to ensure that the APNs token is set automatically.
+However, if you have disabled swizzling by setting FirebaseAppDelegateProxyEnabled to NO
+in your app's Info.plist, you should manually set the APNs token in your application
+delegate's application(_:didRegisterForRemoteNotificationsWithDeviceToken:) method.
+
+If you would like to set the type of the APNs token, rather than relying on automatic
+detection, provide a type of either 'prod', 'sandbox'. Omitting the type parameter
+or specifying 'unknown' will rely on automatic type detection based on provisioning profile.
+
+At a native level you may also call objective-c `[FIRMessaging setAPNSToken];` as needed.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### token
+
+`string`
+
+A hexadecimal string representing your APNs token.
+
+##### type?
+
+`string`
+
+Optional. A string specifying 'prod', 'sandbox' or 'unknown' token type.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the APNs token is set.
+
+***
+
+### setAutoInitEnabled()
+
+> **setAutoInitEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:147](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L147)
+
+Sets whether messaging auto initialization is enabled or disabled for the device.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable auto initialization.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### setBackgroundMessageHandler()
+
+> **setBackgroundMessageHandler**(`messaging`, `handler`): `void`
+
+Defined in: [modular.ts:314](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L314)
+
+Set a message handler function which is called when the app is in the background
+or terminated. In Android, a headless task is created, allowing you to access the React Native environment
+to perform tasks such as updating local storage, or sending a network request.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### handler
+
+(`message`) => `Promise`\<`any`\>
+
+Called when a message is sent and the application is in a background or terminated state.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### setNotificationDelegationEnabled()
+
+> **setNotificationDelegationEnabled**(`messaging`, `enabled`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L402)
+
+Sets whether message notification delegation is enabled or disabled.
+The value is false by default. Set this to true to allow delegation of notification to Google Play Services.
+Note if true message handlers will not function on Android, and it has no effect on iOS
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### enabled
+
+`boolean`
+
+A boolean value to enable or disable delegation of messages to Google Play Services.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the setting is updated.
+
+***
+
+### setOpenSettingsForNotificationsHandler()
+
+> **setOpenSettingsForNotificationsHandler**(`messaging`, `handler`): `void`
+
+Defined in: [modular.ts:329](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L329)
+
+Set a handler function which is called when the `${App Name} notifications settings`
+link in iOS settings is clicked.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### handler
+
+(`message`) => `any`
+
+Called when link in iOS settings is clicked.
+
+#### Returns
+
+`void`
+
+void
+
+***
+
+### subscribeToTopic()
+
+> **subscribeToTopic**(`messaging`, `topic`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:359](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L359)
+
+Apps can subscribe to a topic, which allows the FCM server to send targeted messages to only those
+devices subscribed to that topic.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### topic
+
+`string`
+
+The topic name.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the subscription is complete.
+
+***
+
+### unregisterDeviceForRemoteMessages()
+
+> **unregisterDeviceForRemoteMessages**(`messaging`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L212)
+
+Unregisters the app from receiving remote notifications.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the device is unregistered.
+
+***
+
+### unsubscribeFromTopic()
+
+> **unsubscribeFromTopic**(`messaging`, `topic`): `Promise`\<`void`\>
+
+Defined in: [modular.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/modular.ts#L370)
+
+Unsubscribe the device from a topic.
+
+#### Parameters
+
+##### messaging
+
+[`Messaging`](#messaging)
+
+Messaging instance.
+
+##### topic
+
+`string`
+
+The topic name.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+Promise that resolves when the unsubscription is complete.
+
+## Enumerations
+
+### MessagePriority
+
+Defined in: [types/messaging.ts:127](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L127)
+
+Represents the priority of a RemoteMessage
+
+Note: this is an android-specific property of RemoteMessages
+
+#### Enumeration Members
+
+##### PRIORITY\_HIGH
+
+> **PRIORITY\_HIGH**: `1`
+
+Defined in: [types/messaging.ts:136](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L136)
+
+High priority - Activities may start foreground services if they receive high priority messages
+
+##### PRIORITY\_NORMAL
+
+> **PRIORITY\_NORMAL**: `2`
+
+Defined in: [types/messaging.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L141)
+
+Normal priority - Activities have restrictions and may only perform unobtrusive actions on receipt
+
+##### PRIORITY\_UNKNOWN
+
+> **PRIORITY\_UNKNOWN**: `0`
+
+Defined in: [types/messaging.ts:131](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L131)
+
+Unknown priority, this will be returned as the default on non-android platforms
+
+## Interfaces
+
+### FcmOptions
+
+Defined in: [types/messaging.ts:147](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L147)
+
+Options for features provided by the FCM SDK for Web.
+
+#### Properties
+
+##### analyticsLabel?
+
+> `optional` **analyticsLabel?**: `string`
+
+Defined in: [types/messaging.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L156)
+
+The label associated with the message's analytics data.
+
+##### link?
+
+> `optional` **link?**: `string`
+
+Defined in: [types/messaging.ts:151](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L151)
+
+The link to open when the user clicks on the notification.
+
+***
+
+### GetTokenOptions
+
+Defined in: [types/messaging.ts:181](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L181)
+
+Options for `getToken()`
+
+#### Properties
+
+##### serviceWorkerRegistration?
+
+> `optional` **serviceWorkerRegistration?**: `any`
+
+Defined in: [types/messaging.ts:198](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L198)
+
+The service worker registration for receiving push messaging.
+If the registration is not provided explicitly, you need to
+have a firebase-messaging-sw.js at your root location.
+
+###### Platform
+
+web
+
+##### vapidKey?
+
+> `optional` **vapidKey?**: `string`
+
+Defined in: [types/messaging.ts:189](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L189)
+
+The VAPID key used to authenticate the push subscribers
+ to receive push messages only from sending servers
+that hold the corresponding private key.
+
+###### Platform
+
+web
+
+***
+
+### IOSPermissions
+
+Defined in: [types/messaging.ts:398](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L398)
+
+An interface representing all the available permissions that can be requested by your app via
+the `requestPermission` API.
+
+#### Properties
+
+##### alert?
+
+> `optional` **alert?**: `boolean`
+
+Defined in: [types/messaging.ts:404](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L404)
+
+Request permission to display alerts.
+
+Defaults to true.
+
+##### announcement?
+
+> `optional` **announcement?**: `boolean`
+
+Defined in: [types/messaging.ts:413](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L413)
+
+Request permission for Siri to automatically read out notification messages over AirPods.
+
+Defaults to false.
+
+###### Platform
+
+ios iOS >= 13
+
+##### badge?
+
+> `optional` **badge?**: `boolean`
+
+Defined in: [types/messaging.ts:420](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L420)
+
+Request permission to update the application badge.
+
+Defaults to true.
+
+##### carPlay?
+
+> `optional` **carPlay?**: `boolean`
+
+Defined in: [types/messaging.ts:434](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L434)
+
+Request permission to display notifications in a CarPlay environment.
+
+Defaults to true.
+
+##### criticalAlert?
+
+> `optional` **criticalAlert?**: `boolean`
+
+Defined in: [types/messaging.ts:427](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L427)
+
+Request permission for critical alerts.
+
+Defaults to false.
+
+##### providesAppNotificationSettings?
+
+> `optional` **providesAppNotificationSettings?**: `boolean`
+
+Defined in: [types/messaging.ts:459](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L459)
+
+Request permission to display a button for in-app notification settings.
+
+Default to false
+
+###### Platform
+
+ios iOS >= 12
+
+##### provisional?
+
+> `optional` **provisional?**: `boolean`
+
+Defined in: [types/messaging.ts:443](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L443)
+
+Request permission to provisionally create non-interrupting notifications.
+
+Defaults to false.
+
+###### Platform
+
+ios iOS >= 12
+
+##### sound?
+
+> `optional` **sound?**: `boolean`
+
+Defined in: [types/messaging.ts:450](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L450)
+
+Request permission to play sounds.
+
+Defaults to true.
+
+***
+
+### Messaging
+
+Defined in: [types/messaging.ts:497](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L497)
+
+The Firebase Messaging service interface.
+
+> This module is available for the default app only.
+
+#### Extends
+
+- [`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Methods
+
+##### deleteToken()
+
+> **deleteToken**(`options?`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:549](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L549)
+
+Removes access to an FCM token previously authorized by it's scope. Messages sent by the server
+to this token will fail.
+
+###### Parameters
+
+###### options?
+
+[`NativeTokenOptions`](#nativetokenoptions)
+
+Options to override senderId (iOS) and appName (android)
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### getAPNSToken()
+
+> **getAPNSToken**(): `Promise`\<`string` \| `null`\>
+
+Defined in: [types/messaging.ts:639](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L639)
+
+On iOS, it is possible to get the users APNs token. This may be required if you want to send messages to your
+iOS devices without using the FCM service.
+
+> You can safely call this method on Android without platform checks. It's a no-op on Android and will promise resolve `null`.
+
+###### Returns
+
+`Promise`\<`string` \| `null`\>
+
+###### Platform
+
+ios
+
+##### getDidOpenSettingsForNotification()
+
+> **getDidOpenSettingsForNotification**(): `Promise`\<`boolean`\>
+
+Defined in: [types/messaging.ts:526](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L526)
+
+When the app is opened from iOS notifications settings from a quit state,
+this method will return `true` or `false` if the app was opened via another method.
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+###### Ios
+
+iOS >= 12
+
+##### getInitialNotification()
+
+> **getInitialNotification**(): `Promise`\<[`RemoteMessage`](#remotemessage) \| `null`\>
+
+Defined in: [types/messaging.ts:518](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L518)
+
+When a notification from FCM has triggered the application to open from a quit state,
+this method will return a `RemoteMessage` containing the notification data, or `null` if
+the app was opened via another method.
+
+###### Returns
+
+`Promise`\<[`RemoteMessage`](#remotemessage) \| `null`\>
+
+##### getIsHeadless()
+
+> **getIsHeadless**(): `Promise`\<`boolean`\>
+
+Defined in: [types/messaging.ts:534](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L534)
+
+Returns whether the root view is headless or not
+i.e true if the app was launched in the background (for example, by data-only cloud message)
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+###### Platform
+
+ios iOS
+
+##### getToken()
+
+> **getToken**(`options?`): `Promise`\<`string`\>
+
+Defined in: [types/messaging.ts:541](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L541)
+
+Returns an FCM token for this device. Optionally you can specify a custom options to your own use-case.
+
+###### Parameters
+
+###### options?
+
+[`GetTokenOptions`](#gettokenoptions) & [`NativeTokenOptions`](#nativetokenoptions)
+
+Options composite type with all members of `GetTokenOptions` and `NativeTokenOptions`
+
+###### Returns
+
+`Promise`\<`string`\>
+
+##### hasPermission()
+
+> **hasPermission**(): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [types/messaging.ts:655](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L655)
+
+Returns a `AuthorizationStatus` as to whether the user has messaging permission for this app.
+
+###### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+##### isSupported()
+
+> **isSupported**(): `Promise`\<`boolean`\>
+
+Defined in: [types/messaging.ts:750](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L750)
+
+Checks if all required APIs exist in the browser.
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+###### Web
+
+##### onDeletedMessages()
+
+> **onDeletedMessages**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:666](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L666)
+
+Called when the FCM server deletes pending messages.
+
+Returns an unsubscribe function to stop listening for deleted messages.
+
+NOTE: Android only
+
+###### Parameters
+
+###### listener
+
+() => `void`
+
+Called when the FCM deletes pending messages.
+
+###### Returns
+
+() => `void`
+
+##### onMessage()
+
+> **onMessage**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:560](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L560)
+
+When any FCM payload is received, the listener callback is called with a `RemoteMessage`.
+
+Returns an unsubscribe function to stop listening for new messages.
+
+> This subscriber method is only called when the app is active (in the foreground).
+
+###### Parameters
+
+###### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a new FCM payload is received from the server.
+
+###### Returns
+
+() => `void`
+
+##### onMessageSent()
+
+> **onMessageSent**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:677](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L677)
+
+When sending a `RemoteMessage`, this listener is called when the message has been sent to FCM.
+
+Returns an unsubscribe function to stop listening for sent messages.
+
+NOTE: Android only
+
+###### Parameters
+
+###### listener
+
+(`messageId`) => `any`
+
+Called when the FCM sends the remote message to FCM.
+
+###### Returns
+
+() => `void`
+
+##### onNotificationOpenedApp()
+
+> **onNotificationOpenedApp**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:568](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L568)
+
+When the user presses a notification displayed via FCM, this listener will be called if the app
+has opened from a background state.
+
+###### Parameters
+
+###### listener
+
+(`message`) => `any`
+
+Called with a `RemoteMessage` when a notification press opens the application.
+
+###### Returns
+
+() => `void`
+
+##### onSendError()
+
+> **onSendError**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:689](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L689)
+
+When sending a `RemoteMessage`, this listener is called when an error is thrown and the
+message could not be sent.
+
+Returns an unsubscribe function to stop listening for sent errors.
+
+NOTE: Android only
+
+###### Parameters
+
+###### listener
+
+(`evt`) => `any`
+
+###### Returns
+
+() => `void`
+
+##### onTokenRefresh()
+
+> **onTokenRefresh**(`listener`): () => `void`
+
+Defined in: [types/messaging.ts:580](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L580)
+
+Called when a new registration token is generated for the device. For example, this event can happen when a
+token expires or when the server invalidates the token.
+
+Returns an unsubscribe function to stop listening for token refresh events.
+
+> This subscriber method is only called when the app is active (in the foreground).
+
+###### Parameters
+
+###### listener
+
+(`token`) => `any`
+
+Called with a FCM token when the token is refreshed.
+
+###### Returns
+
+() => `void`
+
+##### registerDeviceForRemoteMessages()
+
+> **registerDeviceForRemoteMessages**(): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:598](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L598)
+
+On iOS, if your app wants to receive remote messages from FCM (via APNs), you must explicitly register
+with APNs if auto-registration has been disabled.
+
+> You can safely call this method on Android without platform checks. It's a no-op on Android and will promise resolve `void`.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### requestPermission()
+
+> **requestPermission**(`permissions?`): `Promise`\<`AuthorizationStatus`\>
+
+Defined in: [types/messaging.ts:590](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L590)
+
+On iOS, messaging permission must be requested by the current application before messages can
+be received or sent.
+
+> You can safely call this method on Android without platform checks. It's a no-op on Android and will promise resolve `AuthorizationStatus.AUTHORIZED`.
+
+###### Parameters
+
+###### permissions?
+
+[`IOSPermissions`](#iospermissions)
+
+###### Returns
+
+`Promise`\<`AuthorizationStatus`\>
+
+###### Ios
+
+##### sendMessage()
+
+> **sendMessage**(`message`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:714](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L714)
+
+Send a new `RemoteMessage` to the FCM server.
+
+NOTE: Android only
+
+###### Parameters
+
+###### message
+
+[`RemoteMessage`](#remotemessage)
+
+A `RemoteMessage` interface.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setAPNSToken()
+
+> **setAPNSToken**(`token`, `type?`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:650](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L650)
+
+On iOS, This method is used to set the APNs Token received by the application delegate.
+
+> You can safely call this method on Android without platform checks. It's a no-op on Android and will promise resolve `null`.
+
+###### Parameters
+
+###### token
+
+`string`
+
+a hexadecimal string representing your APNS token
+
+###### type?
+
+`string`
+
+optional string specifying 'prod', 'sandbox' or 'unknown' token type
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Platform
+
+ios
+
+##### setAutoInitEnabled()
+
+> **setAutoInitEnabled**(`enabled`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:511](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L511)
+
+Sets whether auto initialization for messaging is enabled or disabled.
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+A boolean value to enable or disable auto initialization.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setBackgroundMessageHandler()
+
+> **setBackgroundMessageHandler**(`handler`): `void`
+
+Defined in: [types/messaging.ts:697](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L697)
+
+Set a message handler function which is called when the app is in the background
+or terminated.
+
+###### Parameters
+
+###### handler
+
+(`message`) => `Promise`\<`any`\>
+
+called with an argument of type messaging.RemoteMessage that must be async and return a Promise
+
+###### Returns
+
+`void`
+
+##### setDeliveryMetricsExportToBigQuery()
+
+> **setDeliveryMetricsExportToBigQuery**(`enabled`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:736](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L736)
+
+Sets whether message delivery metrics are exported to BigQuery is enabled or disabled.
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+A boolean value to enable or disable exporting of message delivery metrics to BigQuery.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setNotificationDelegationEnabled()
+
+> **setNotificationDelegationEnabled**(`enabled`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:743](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L743)
+
+Sets whether remote notification delegation to Google Play Services is enabled or disabled.
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+A boolean value to enable or disable remote notification delegation to Google Play Services.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setOpenSettingsForNotificationsHandler()
+
+> **setOpenSettingsForNotificationsHandler**(`handler`): `void`
+
+Defined in: [types/messaging.ts:705](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L705)
+
+Set a handler function which is called when the `${App Name} notifications settings`
+link in iOS settings is clicked.
+
+###### Parameters
+
+###### handler
+
+(`message`) => `any`
+
+###### Returns
+
+`void`
+
+###### Ios
+
+iOS >= 12
+
+##### subscribeToTopic()
+
+> **subscribeToTopic**(`topic`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:722](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L722)
+
+Apps can subscribe to a topic, which allows the FCM server to send targeted messages to only those
+devices subscribed to that topic.
+
+###### Parameters
+
+###### topic
+
+`string`
+
+The topic name.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### unregisterDeviceForRemoteMessages()
+
+> **unregisterDeviceForRemoteMessages**(): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:629](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L629)
+
+Unregisters the app from receiving remote notifications.
+
+> You can safely call this method on Android without platform checks. It's a no-op on Android and will promise resolve `void`.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Platform
+
+ios
+
+##### unsubscribeFromTopic()
+
+> **unsubscribeFromTopic**(`topic`): `Promise`\<`void`\>
+
+Defined in: [types/messaging.ts:729](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L729)
+
+Unsubscribe the device from a topic.
+
+###### Parameters
+
+###### topic
+
+`string`
+
+The topic name.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [types/messaging.ts:499](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L499)
+
+The FirebaseApp this module is associated with
+
+###### Overrides
+
+[`FirebaseModule`](../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../app/namespaces/ReactNativeFirebase.mdx#app)
+
+##### isAutoInitEnabled
+
+> **isAutoInitEnabled**: `boolean`
+
+Defined in: [types/messaging.ts:504](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L504)
+
+Returns whether messaging auto initialization is enabled or disabled for the device.
+
+##### isDeliveryMetricsExportToBigQueryEnabled
+
+> **isDeliveryMetricsExportToBigQueryEnabled**: `boolean`
+
+Defined in: [types/messaging.ts:620](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L620)
+
+Returns whether message delivery metrics are exported to BigQuery.
+
+##### isDeviceRegisteredForRemoteMessages
+
+> **isDeviceRegisteredForRemoteMessages**: `boolean`
+
+Defined in: [types/messaging.ts:608](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L608)
+
+Returns a boolean value whether the user has registered for remote notifications via
+`registerDeviceForRemoteMessages()`.
+
+> You can safely access this property on Android without platform checks. Android returns `true` only.
+
+###### Platform
+
+ios
+
+##### isNotificationDelegationEnabled
+
+> **isNotificationDelegationEnabled**: `boolean`
+
+Defined in: [types/messaging.ts:615](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L615)
+
+Returns whether remote notification delegation to Google Play Services is enabled or disabled.
+
+> You can safely access this property on iOS without platform checks. iOS returns `false` only.
+
+***
+
+### NativeTokenOptions
+
+Defined in: [types/messaging.ts:162](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L162)
+
+Options for `getToken()` and `deleteToken()`
+
+#### Properties
+
+##### appName?
+
+> `optional` **appName?**: `string`
+
+Defined in: [types/messaging.ts:168](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L168)
+
+The app name of the FirebaseApp instance.
+
+###### Platform
+
+android Android
+
+##### senderId?
+
+> `optional` **senderId?**: `string`
+
+Defined in: [types/messaging.ts:175](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L175)
+
+The senderID for a particular Firebase project.
+
+###### Platform
+
+ios iOS
+
+***
+
+### Notification
+
+Defined in: [types/messaging.ts:207](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L207)
+
+#### Properties
+
+##### android?
+
+> `optional` **android?**: `object`
+
+Defined in: [types/messaging.ts:281](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L281)
+
+Additional Android specific properties set on the notification.
+
+###### channelId?
+
+> `optional` **channelId?**: `string`
+
+The channel ID set on the notification. If not set, the notification uses the default
+"Miscellaneous" channel set by FCM.
+
+###### clickAction?
+
+> `optional` **clickAction?**: `string`
+
+Name of the click action set on the notification.
+
+###### color?
+
+> `optional` **color?**: `string`
+
+The custom color used to tint the notification content.
+
+###### count?
+
+> `optional` **count?**: `number`
+
+The current unread notification count for this application, managed by the device.
+
+###### imageUrl?
+
+> `optional` **imageUrl?**: `string`
+
+The custom image was provided and displayed in the notification body.
+
+###### link?
+
+> `optional` **link?**: `string`
+
+Deep link URL provided to the notification.
+
+###### priority?
+
+> `optional` **priority?**: `NotificationAndroidPriority`
+
+The notification priority.
+
+Note; on devices which have channel support (Android 8.0 (API level 26) +),
+this value will be ignored. Instead, the channel "importance" level is used.
+
+###### smallIcon?
+
+> `optional` **smallIcon?**: `string`
+
+The custom small icon used to display on the notification. If not set, uses the default
+application icon defined in the AndroidManifest file.
+
+###### sound?
+
+> `optional` **sound?**: `string`
+
+The sound played when the notification was delivered on the device (channel settings permitted).
+
+Set as "default" if the default device notification sound was used.
+
+###### ticker?
+
+> `optional` **ticker?**: `string`
+
+Ticker text set on the notification.
+
+Ticker text is used for devices with accessibility enabled (e.g. to read out the message).
+
+###### visibility?
+
+> `optional` **visibility?**: `NotificationAndroidVisibility`
+
+The visibility of a notification. This value determines how the notification is shown on the users
+devices (e.g. on the lock-screen).
+
+##### body?
+
+> `optional` **body?**: `string`
+
+Defined in: [types/messaging.ts:221](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L221)
+
+The notification body content.
+
+##### bodyLocArgs?
+
+> `optional` **bodyLocArgs?**: `string`[]
+
+Defined in: [types/messaging.ts:247](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L247)
+
+Any arguments that should be formatted into the resource specified by bodyLocKey.
+
+##### bodyLocKey?
+
+> `optional` **bodyLocKey?**: `string`
+
+Defined in: [types/messaging.ts:242](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L242)
+
+The native localization key for the notification body content.
+
+##### icon?
+
+> `optional` **icon?**: `string`
+
+Defined in: [types/messaging.ts:227](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L227)
+
+Web only. The URL to use for the notification's icon. If you don't send this key in the request,
+FCM displays the launcher icon specified in your app manifest.
+
+##### image?
+
+> `optional` **image?**: `string`
+
+Defined in: [types/messaging.ts:232](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L232)
+
+Web only. The URL of an image that is downloaded on the device and displayed in the notification.
+
+##### ios?
+
+> `optional` **ios?**: `object`
+
+Defined in: [types/messaging.ts:249](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L249)
+
+###### badge?
+
+> `optional` **badge?**: `string`
+
+The value of the badge on the home screen app icon.
+If not specified, the badge is not changed.
+If set to 0, the badge has been removed.
+
+###### sound?
+
+> `optional` **sound?**: `string` \| [`NotificationIOSCriticalSound`](#notificationioscriticalsound)
+
+The sound played when the notification was delivered on the device (if permissions permit).
+
+###### subtitle?
+
+> `optional` **subtitle?**: `string`
+
+The notification's subtitle.
+
+###### subtitleLocArgs?
+
+> `optional` **subtitleLocArgs?**: `string`[]
+
+Any arguments that should be formatted into the resource specified by subtitleLocKey.
+
+###### subtitleLocKey?
+
+> `optional` **subtitleLocKey?**: `string`
+
+The native localization key for the notification's subtitle.
+
+##### title?
+
+> `optional` **title?**: `string`
+
+Defined in: [types/messaging.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L237)
+
+Web only. The notification's title.
+
+##### titleLocArgs?
+
+> `optional` **titleLocArgs?**: `string`[]
+
+Defined in: [types/messaging.ts:216](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L216)
+
+Any arguments that should be formatted into the resource specified by titleLocKey.
+
+##### titleLocKey?
+
+> `optional` **titleLocKey?**: `string`
+
+Defined in: [types/messaging.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L211)
+
+The native localization key for the notification title.
+
+***
+
+### NotificationIOSCriticalSound
+
+Defined in: [types/messaging.ts:353](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L353)
+
+Represents a critical sound configuration that can be included in the
+`aps` dictionary of an APNs payload.
+
+#### Properties
+
+##### critical?
+
+> `optional` **critical?**: `boolean`
+
+Defined in: [types/messaging.ts:357](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L357)
+
+The critical alert flag. Set to `true` to enable the critical alert.
+
+##### name
+
+> **name**: `string`
+
+Defined in: [types/messaging.ts:364](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L364)
+
+The name of a sound file in the app's main bundle or in the `Library/Sounds`
+folder of the app's container directory. Specify the string "default" to play
+the system sound.
+
+##### volume?
+
+> `optional` **volume?**: `number`
+
+Defined in: [types/messaging.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L370)
+
+The volume for the critical alert's sound. Must be a value between 0.0
+(silent) and 1.0 (full volume).
+
+***
+
+### RemoteMessage
+
+Defined in: [types/messaging.ts:30](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L30)
+
+The `RemoteMessage` interface describes an outgoing & incoming message from the remote FCM server.
+
+#### Properties
+
+##### category?
+
+> `optional` **category?**: `string`
+
+Defined in: [types/messaging.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L99)
+
+The iOS category this notification is assigned to.
+
+###### Platform
+
+ios iOS
+
+##### collapseKey?
+
+> `optional` **collapseKey?**: `string`
+
+Defined in: [types/messaging.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L35)
+
+The collapse key a message was sent with. Used to override existing messages with the same
+key.
+
+##### contentAvailable?
+
+> `optional` **contentAvailable?**: `boolean`
+
+Defined in: [types/messaging.ts:84](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L84)
+
+Whether the iOS APNs message was configured as a background update notification.
+
+###### Platform
+
+ios iOS
+
+##### data?
+
+> `optional` **data?**: `object`
+
+Defined in: [types/messaging.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L72)
+
+Any additional data sent with the message.
+
+###### Index Signature
+
+\[`key`: `string`\]: `string` \| `object`
+
+##### fcmOptions
+
+> **fcmOptions**: [`FcmOptions`](#fcmoptions)
+
+Defined in: [types/messaging.ts:109](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L109)
+
+Options for features provided by the FCM SDK for Web.
+
+##### from?
+
+> `optional` **from?**: `string`
+
+Defined in: [types/messaging.ts:51](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L51)
+
+The topic name or message identifier.
+
+##### messageId?
+
+> `optional` **messageId?**: `string`
+
+Defined in: [types/messaging.ts:42](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L42)
+
+A unique ID assigned to every message.
+
+If not provided, a random unique ID is generated.
+
+##### messageType?
+
+> `optional` **messageType?**: `string`
+
+Defined in: [types/messaging.ts:47](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L47)
+
+The message type of the message.
+
+##### mutableContent?
+
+> `optional` **mutableContent?**: `boolean`
+
+Defined in: [types/messaging.ts:92](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L92)
+
+Whether the iOS APNs `mutable-content` property on the message was set
+allowing the app to modify the notification via app extensions.
+
+###### Platform
+
+ios iOS
+
+##### notification?
+
+> `optional` **notification?**: [`Notification`](#notification)
+
+Defined in: [types/messaging.ts:77](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L77)
+
+Additional NotificationPayload data sent with the message
+
+##### originalPriority?
+
+> `optional` **originalPriority?**: [`MessagePriority`](#messagepriority)
+
+Defined in: [types/messaging.ts:119](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L119)
+
+Original priority - android-specific, undefined on non-android platforms, default PRIORITY_UNKNOWN
+
+##### priority?
+
+> `optional` **priority?**: [`MessagePriority`](#messagepriority)
+
+Defined in: [types/messaging.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L114)
+
+Priority - android-specific, undefined on non-android platforms, default PRIORITY_UNKNOWN
+
+##### sentTime?
+
+> `optional` **sentTime?**: `number`
+
+Defined in: [types/messaging.ts:67](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L67)
+
+The time the message was sent, in milliseconds since the start of unix epoch
+
+##### threadId?
+
+> `optional` **threadId?**: `string`
+
+Defined in: [types/messaging.ts:104](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L104)
+
+An iOS app specific identifier used for notification grouping.
+
+##### to?
+
+> `optional` **to?**: `string`
+
+Defined in: [types/messaging.ts:55](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L55)
+
+The address for the message.
+
+##### ttl?
+
+> `optional` **ttl?**: `number`
+
+Defined in: [types/messaging.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L62)
+
+The time to live for the message in seconds.
+
+Defaults to 3600.
+
+***
+
+### SendErrorEvent
+
+Defined in: [types/messaging.ts:478](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L478)
+
+An event that is received when a message fails to send.
+
+#### Properties
+
+##### error
+
+> **error**: [`NativeFirebaseError`](../app/namespaces/ReactNativeFirebase.mdx#nativefirebaseerror)
+
+Defined in: [types/messaging.ts:487](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L487)
+
+A native firebase error that indicates the failure reason.
+
+##### messageId
+
+> **messageId**: `string`
+
+Defined in: [types/messaging.ts:482](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L482)
+
+The id of the message that failed to send
+
+## Namespaces
+
+- [FirebaseMessagingTypes](namespaces/FirebaseMessagingTypes.mdx)
+
+## Variables
+
+### AuthorizationStatus
+
+> `const` **AuthorizationStatus**: `object`
+
+Defined in: [statics.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L4)
+
+#### Type Declaration
+
+##### AUTHORIZED
+
+> `readonly` **AUTHORIZED**: `1` = `1`
+
+##### DENIED
+
+> `readonly` **DENIED**: `0` = `0`
+
+##### EPHEMERAL
+
+> `readonly` **EPHEMERAL**: `3` = `3`
+
+##### NOT\_DETERMINED
+
+> `readonly` **NOT\_DETERMINED**: `-1` = `-1`
+
+##### PROVISIONAL
+
+> `readonly` **PROVISIONAL**: `2` = `2`
+
+***
+
+### default
+
+> **default**: `MessagingNamespace`
+
+Defined in: [namespaced.ts:572](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/namespaced.ts#L572)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`FirebaseNamespacedExport`](../app/namespaces/ReactNativeFirebase.mdx#firebasenamespacedexport)\<`"messaging"`, [`Messaging`](#messaging), `Statics`, `false`\>
+
+Defined in: [namespaced.ts:577](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/namespaced.ts#L577)
+
+***
+
+### NotificationAndroidPriority
+
+> `const` **NotificationAndroidPriority**: `object`
+
+Defined in: [statics.ts:12](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L12)
+
+#### Type Declaration
+
+##### PRIORITY\_DEFAULT
+
+> `readonly` **PRIORITY\_DEFAULT**: `0` = `0`
+
+##### PRIORITY\_HIGH
+
+> `readonly` **PRIORITY\_HIGH**: `1` = `1`
+
+##### PRIORITY\_LOW
+
+> `readonly` **PRIORITY\_LOW**: `-1` = `-1`
+
+##### PRIORITY\_MAX
+
+> `readonly` **PRIORITY\_MAX**: `2` = `2`
+
+##### PRIORITY\_MIN
+
+> `readonly` **PRIORITY\_MIN**: `-2` = `-2`
+
+***
+
+### NotificationAndroidVisibility
+
+> `const` **NotificationAndroidVisibility**: `object`
+
+Defined in: [statics.ts:20](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/statics.ts#L20)
+
+#### Type Declaration
+
+##### VISIBILITY\_PRIVATE
+
+> `readonly` **VISIBILITY\_PRIVATE**: `0` = `0`
+
+##### VISIBILITY\_PUBLIC
+
+> `readonly` **VISIBILITY\_PUBLIC**: `1` = `1`
+
+##### VISIBILITY\_SECRET
+
+> `readonly` **VISIBILITY\_SECRET**: `-1` = `-1`
+
+***
+
+### SDK\_VERSION
+
+> `const` **SDK\_VERSION**: `"24.0.0"` = `version`
+
+Defined in: [namespaced.ts:538](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/namespaced.ts#L538)
diff --git a/docs/reference/@react-native-firebase/messaging/namespaces/FirebaseMessagingTypes.mdx b/docs/reference/@react-native-firebase/messaging/namespaces/FirebaseMessagingTypes.mdx
new file mode 100644
index 0000000000..6eb21bbdec
--- /dev/null
+++ b/docs/reference/@react-native-firebase/messaging/namespaces/FirebaseMessagingTypes.mdx
@@ -0,0 +1,127 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/messaging](../README.mdx) / FirebaseMessagingTypes
+
+# FirebaseMessagingTypes
+
+## Type Aliases
+
+### AuthorizationStatus
+
+> **AuthorizationStatus** = `_AuthorizationStatus`
+
+Defined in: [types/messaging.ts:812](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L812)
+
+***
+
+### FcmOptions
+
+> **FcmOptions** = `_FcmOptions`
+
+Defined in: [types/messaging.ts:803](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L803)
+
+***
+
+### GetTokenOptions
+
+> **GetTokenOptions** = `_GetTokenOptions`
+
+Defined in: [types/messaging.ts:805](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L805)
+
+***
+
+### IOSPermissions
+
+> **IOSPermissions** = `_IOSPermissions`
+
+Defined in: [types/messaging.ts:811](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L811)
+
+***
+
+### MessagePriority
+
+> **MessagePriority** = `_MessagePriority`
+
+Defined in: [types/messaging.ts:802](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L802)
+
+***
+
+### Module
+
+> **Module** = `_Messaging`
+
+Defined in: [types/messaging.ts:799](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L799)
+
+***
+
+### NativeTokenOptions
+
+> **NativeTokenOptions** = `_NativeTokenOptions`
+
+Defined in: [types/messaging.ts:804](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L804)
+
+***
+
+### Notification
+
+> **Notification** = `_Notification`
+
+Defined in: [types/messaging.ts:806](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L806)
+
+***
+
+### NotificationAndroidPriority
+
+> **NotificationAndroidPriority** = `_NotificationAndroidPriority`
+
+Defined in: [types/messaging.ts:809](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L809)
+
+***
+
+### NotificationAndroidVisibility
+
+> **NotificationAndroidVisibility** = `_NotificationAndroidVisibility`
+
+Defined in: [types/messaging.ts:810](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L810)
+
+***
+
+### NotificationIOSCriticalSound
+
+> **NotificationIOSCriticalSound** = `_NotificationIOSCriticalSound`
+
+Defined in: [types/messaging.ts:808](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L808)
+
+***
+
+### NotificationPayload
+
+> **NotificationPayload** = `_NotificationPayload`
+
+Defined in: [types/messaging.ts:807](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L807)
+
+***
+
+### RemoteMessage
+
+> **RemoteMessage** = `_RemoteMessage`
+
+Defined in: [types/messaging.ts:801](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L801)
+
+***
+
+### SendErrorEvent
+
+> **SendErrorEvent** = `_SendErrorEvent`
+
+Defined in: [types/messaging.ts:813](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L813)
+
+***
+
+### Statics
+
+> **Statics** = `_MessagingStatics`
+
+Defined in: [types/messaging.ts:800](https://github.com/invertase/react-native-firebase/blob/main/packages/messaging/lib/types/messaging.ts#L800)
diff --git a/docs/reference/@react-native-firebase/ml/README.mdx b/docs/reference/@react-native-firebase/ml/README.mdx
new file mode 100644
index 0000000000..3604ed0538
--- /dev/null
+++ b/docs/reference/@react-native-firebase/ml/README.mdx
@@ -0,0 +1,79 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/ml
+
+# @react-native-firebase/ml
+
+## Functions
+
+### getML()
+
+> **getML**(`app?`): [`Module`](namespaces/FirebaseMLTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:14](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/modular/index.d.ts#L14)
+
+Returns the existing default [FirebaseML](#firebaseml) instance that is associated with the
+default @firebase/app#FirebaseApp. If no instance exists, initializes a new
+instance with default settings.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+#### Returns
+
+[`Module`](namespaces/FirebaseMLTypes.mdx#module)
+
+The [FirebaseML](#firebaseml) instance of the provided app.
+
+## Namespaces
+
+- [FirebaseMLTypes](namespaces/FirebaseMLTypes.mdx)
+
+## Type Aliases
+
+### FirebaseML
+
+> **FirebaseML** = [`Module`](namespaces/FirebaseMLTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:4](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/modular/index.d.ts#L4)
+
+## Variables
+
+### default
+
+> `const` **default**: `MLNamespace`
+
+Defined in: [index.d.ts:78](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L78)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`Module`](../app/namespaces/ReactNativeFirebase.mdx#module) & `object`
+
+Defined in: [index.d.ts:80](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L80)
+
+#### Type Declaration
+
+##### ml
+
+> **ml**: *typeof* [`default`](#default)
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+###### Parameters
+
+###### name?
+
+`string`
+
+###### Returns
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
diff --git a/docs/reference/@react-native-firebase/ml/namespaces/FirebaseMLTypes.mdx b/docs/reference/@react-native-firebase/ml/namespaces/FirebaseMLTypes.mdx
new file mode 100644
index 0000000000..813def10a2
--- /dev/null
+++ b/docs/reference/@react-native-firebase/ml/namespaces/FirebaseMLTypes.mdx
@@ -0,0 +1,98 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/ml](../README.mdx) / FirebaseMLTypes
+
+# FirebaseMLTypes
+
+Firebase ML package for React Native.
+
+#### Example 1
+
+Access the firebase export from the `ml` package:
+
+```js
+import { firebase } from '@react-native-firebase/ml';
+
+// firebase.ml().X
+```
+
+#### Example 2
+
+Using the default export from the `ml` package:
+
+```js
+import ml from '@react-native-firebase/ml';
+
+// ml().X
+```
+
+#### Example 3
+
+Using the default export from the `app` package:
+
+```js
+import firebase from '@react-native-firebase/app';
+import '@react-native-firebase/ml';
+
+// firebase.ml().X
+```
+
+## Firebase
+
+ml
+
+## Classes
+
+### Module
+
+Defined in: [index.d.ts:62](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L62)
+
+A class that all React Native Firebase modules extend from to provide default behaviour.
+
+#### Extends
+
+- [`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Constructors
+
+##### Constructor
+
+> **new Module**(): [`Module`](#module)
+
+###### Returns
+
+[`Module`](#module)
+
+###### Inherited from
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`constructor`](../../app/namespaces/ReactNativeFirebase.mdx#constructor)
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [index.d.ts:66](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L66)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+###### Overrides
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../../app/namespaces/ReactNativeFirebase.mdx#app)
+
+## Interfaces
+
+### Statics
+
+Defined in: [index.d.ts:58](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L58)
+
+#### Properties
+
+##### SDK\_VERSION
+
+> **SDK\_VERSION**: `string`
+
+Defined in: [index.d.ts:59](https://github.com/invertase/react-native-firebase/blob/main/packages/ml/lib/index.d.ts#L59)
diff --git a/docs/reference/@react-native-firebase/perf/README.mdx b/docs/reference/@react-native-firebase/perf/README.mdx
new file mode 100644
index 0000000000..b11d9aff36
--- /dev/null
+++ b/docs/reference/@react-native-firebase/perf/README.mdx
@@ -0,0 +1,241 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/perf
+
+# @react-native-firebase/perf
+
+## Functions
+
+### getPerformance()
+
+> **getPerformance**(`app?`): [`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L33)
+
+Returns a Performance instance for the given app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+FirebaseApp. Optional.
+
+#### Returns
+
+[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+***
+
+### httpMetric()
+
+> **httpMetric**(`perf`, `identifier`, `httpMethod`): [`HttpMetric`](namespaces/FirebasePerformanceTypes.mdx#httpmetric)
+
+Defined in: [modular/index.d.ts:65](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L65)
+
+Returns a HttpMetric instance.
+
+#### Parameters
+
+##### perf
+
+[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+A String to identify the HttpMetric instance.
+
+##### httpMethod
+
+[`HttpMethod`](namespaces/FirebasePerformanceTypes.mdx#httpmethod)
+
+The HTTP method for the HttpMetric instance.
+
+#### Returns
+
+[`HttpMetric`](namespaces/FirebasePerformanceTypes.mdx#httpmetric)
+
+***
+
+### initializePerformance()
+
+> **initializePerformance**(`app`, `settings?`): `Promise`\<[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)\>
+
+Defined in: [modular/index.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L45)
+
+Returns a Performance instance for the given app.
+
+#### Parameters
+
+##### app
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+FirebaseApp. Required.
+
+##### settings?
+
+[`PerformanceSettings`](#performancesettings)
+
+Optional PerformanceSettings. Set "dataCollectionEnabled" which will enable/disable Performance collection.
+
+#### Returns
+
+`Promise`\<[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)\>
+
+***
+
+### newScreenTrace()
+
+> **newScreenTrace**(`perf`, `identifier`): [`ScreenTrace`](namespaces/FirebasePerformanceTypes.mdx#screentrace)
+
+Defined in: [modular/index.d.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L79)
+
+Creates a ScreenTrace instance with the given identifier.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Parameters
+
+##### perf
+
+[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
+
+#### Returns
+
+[`ScreenTrace`](namespaces/FirebasePerformanceTypes.mdx#screentrace)
+
+#### Platform
+
+android Android !== 9.0.0 && Android !== 9.1.0
+
+***
+
+### startScreenTrace()
+
+> **startScreenTrace**(`perf`, `identifier`): `Promise`\<[`ScreenTrace`](namespaces/FirebasePerformanceTypes.mdx#screentrace)\>
+
+Defined in: [modular/index.d.ts:89](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L89)
+
+Creates a ScreenTrace instance with the given identifier and immediately starts it.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Parameters
+
+##### perf
+
+[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+Name of the screen.
+
+#### Returns
+
+`Promise`\<[`ScreenTrace`](namespaces/FirebasePerformanceTypes.mdx#screentrace)\>
+
+#### Platform
+
+android Android !== 9.0.0 && Android !== 9.1.0
+
+***
+
+### trace()
+
+> **trace**(`perf`, `identifier`): `Trace`
+
+Defined in: [modular/index.d.ts:56](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L56)
+
+Returns a Trace instance.
+
+#### Parameters
+
+##### perf
+
+[`Module`](namespaces/FirebasePerformanceTypes.mdx#module)
+
+Performance instance.
+
+##### identifier
+
+`string`
+
+A String to identify the Trace instance.
+
+#### Returns
+
+`Trace`
+
+## Namespaces
+
+- [FirebasePerformanceTypes](namespaces/FirebasePerformanceTypes.mdx)
+
+## Type Aliases
+
+### PerformanceSettings
+
+> **PerformanceSettings** = `object`
+
+Defined in: [modular/index.d.ts:35](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L35)
+
+#### Properties
+
+##### dataCollectionEnabled
+
+> **dataCollectionEnabled**: `boolean`
+
+Defined in: [modular/index.d.ts:36](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/modular/index.d.ts#L36)
+
+## Variables
+
+### default
+
+> `const` **default**: `PerfNamespace`
+
+Defined in: [index.d.ts:556](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L556)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`Module`](../app/namespaces/ReactNativeFirebase.mdx#module) & `object`
+
+Defined in: [index.d.ts:558](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L558)
+
+#### Type Declaration
+
+##### perf
+
+> **perf**: *typeof* [`default`](#default)
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+###### Parameters
+
+###### name?
+
+`string`
+
+###### Returns
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
diff --git a/docs/reference/@react-native-firebase/perf/namespaces/FirebasePerformanceTypes.mdx b/docs/reference/@react-native-firebase/perf/namespaces/FirebasePerformanceTypes.mdx
new file mode 100644
index 0000000000..efa83531ca
--- /dev/null
+++ b/docs/reference/@react-native-firebase/perf/namespaces/FirebasePerformanceTypes.mdx
@@ -0,0 +1,962 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/perf](../README.mdx) / FirebasePerformanceTypes
+
+# FirebasePerformanceTypes
+
+Firebase Performance Monitoring package for React Native.
+
+#### Example 1
+
+Access the firebase export from the `perf` package:
+
+```js
+import { firebase } from '@react-native-firebase/perf';
+
+// firebase.perf().X
+```
+
+#### Example 2
+
+Using the default export from the `perf` package:
+
+```js
+import perf from '@react-native-firebase/perf';
+
+// perf().X
+```
+
+#### Example 3
+
+Using the default export from the `app` package:
+
+```js
+import firebase from '@react-native-firebase/app';
+import '@react-native-firebase/perf';
+
+// firebase.perf().X
+```
+
+## Firebase
+
+perf
+
+## Classes
+
+### HttpMetric
+
+Defined in: [index.d.ts:259](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L259)
+
+Metric used to collect data for network requests/responses. A new instance must be used for every request/response.
+
+#### Constructors
+
+##### Constructor
+
+> **new HttpMetric**(): [`HttpMetric`](#httpmetric)
+
+###### Returns
+
+[`HttpMetric`](#httpmetric)
+
+#### Methods
+
+##### getAttribute()
+
+> **getAttribute**(`attribute`): `string` \| `null`
+
+Defined in: [index.d.ts:271](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L271)
+
+Returns the value of an attribute. Returns null if it does not exist.
+
+#### Example
+
+```js
+const attribute = metric.getAttribute('user_role');
+```
+
+###### Parameters
+
+###### attribute
+
+`string`
+
+Name of the attribute to fetch the value of
+
+###### Returns
+
+`string` \| `null`
+
+##### getAttributes()
+
+> **getAttributes**(): `object`
+
+Defined in: [index.d.ts:286](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L286)
+
+Returns an object of all the currently added attributes.
+
+#### Example
+
+```js
+const attributes = metric.getAttributes();
+
+attributes.forEach(($) => {
+ console.log($);
+});
+```
+
+###### Returns
+
+`object`
+
+##### putAttribute()
+
+> **putAttribute**(`attribute`, `value`): `void`
+
+Defined in: [index.d.ts:301](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L301)
+
+Sets a String value for the specified attribute. Updates the value of the attribute if it already exists.
+The maximum number of attributes that can be added is 5.
+
+#### Example
+
+```js
+metric.putAttribute('user_role', 'admin');
+```
+
+###### Parameters
+
+###### attribute
+
+`string`
+
+Name of the attribute. Max length is 40 chars.
+
+###### value
+
+`string`
+
+Value of the attribute. Max length is 100 chars.
+
+###### Returns
+
+`void`
+
+##### removeAttribute()
+
+> **removeAttribute**(`attribute`): `void`
+
+Defined in: [index.d.ts:314](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L314)
+
+Removes an already added attribute. Does nothing if attribute does not exist.
+
+#### Example
+
+```js
+metric.removeAttribute('user_role');
+```
+
+###### Parameters
+
+###### attribute
+
+`string`
+
+Name of the attribute to be removed.
+
+###### Returns
+
+`void`
+
+##### setHttpResponseCode()
+
+> **setHttpResponseCode**(`code`): `void`
+
+Defined in: [index.d.ts:330](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L330)
+
+Sets the httpResponse code of the request.
+
+#### Example
+
+```js
+const response = await fetch(url);
+metric.setHttpResponseCode(response.status);
+```
+> This is required for every request, if you do not provide this your metric will not be captured.
+
+###### Parameters
+
+###### code
+
+`number` \| `null`
+
+Value must be greater than 0. Set to null to remove. Invalid usage will be logged natively.
+
+###### Returns
+
+`void`
+
+##### setRequestPayloadSize()
+
+> **setRequestPayloadSize**(`bytes`): `void`
+
+Defined in: [index.d.ts:344](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L344)
+
+Sets the size of the request payload.
+
+#### Example
+
+```js
+const response = await fetch(url);
+metric.setRequestPayloadSize(response.headers.get('Content-Type'));
+```
+
+###### Parameters
+
+###### bytes
+
+`number` \| `null`
+
+Value must be greater than 0. Set to null to remove. Invalid usage will be logged natively.
+
+###### Returns
+
+`void`
+
+##### setResponseContentType()
+
+> **setResponseContentType**(`contentType`): `void`
+
+Defined in: [index.d.ts:372](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L372)
+
+Content type of the response e.g. `text/html` or `application/json`.
+
+#### Example
+
+```js
+const response = await fetch(url);
+metric.setResponsePayloadSize(response.headers.get('Content-Type'));
+```
+
+###### Parameters
+
+###### contentType
+
+`string` \| `null`
+
+Valid string of MIME type. Set to null to remove. Invalid usage will be logged natively.
+
+###### Returns
+
+`void`
+
+##### setResponsePayloadSize()
+
+> **setResponsePayloadSize**(`bytes`): `void`
+
+Defined in: [index.d.ts:358](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L358)
+
+Sets the size of the response payload.
+
+#### Example
+
+```js
+const response = await fetch(url);
+metric.setResponsePayloadSize(response.headers.get('Content-Length'));
+```
+
+###### Parameters
+
+###### bytes
+
+`number` \| `null`
+
+Value must be greater than 0. Set to null to remove. Invalid usage will be logged natively.
+
+###### Returns
+
+`void`
+
+##### start()
+
+> **start**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:384](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L384)
+
+Marks the start time of the request. Does nothing if already started.
+
+#### Example
+
+```js
+const metric = firebase.perf().newHttpMetric('https://api.com/login', 'POST');
+await metric.start();
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### stop()
+
+> **stop**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:398](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L398)
+
+Marks the end time of the response and queues the network request metric on the device for transmission. Does nothing if already stopped.
+
+#### Example
+
+```js
+const metric = firebase.perf().newHttpMetric('https://api.com/login', 'POST');
+await metric.start();
+metric.putAttribute('user_role', 'admin');
+await metric.stop();
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+***
+
+### Module
+
+Defined in: [index.d.ts:418](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L418)
+
+The Firebase Performance Monitoring service interface.
+
+> This module is available for the default app only.
+
+#### Example
+
+Get the Performance Monitoring service for the default app:
+
+```js
+const defaultAppPerf = firebase.perf();
+```
+
+#### Extends
+
+- [`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Constructors
+
+##### Constructor
+
+> **new Module**(): [`Module`](#module)
+
+###### Returns
+
+[`Module`](#module)
+
+###### Inherited from
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`constructor`](../../app/namespaces/ReactNativeFirebase.mdx#constructor)
+
+#### Methods
+
+##### newHttpMetric()
+
+> **newHttpMetric**(`url`, `httpMethod`): [`HttpMetric`](#httpmetric)
+
+Defined in: [index.d.ts:544](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L544)
+
+Creates a HttpMetric instance for collecting network performance data for a single request/response
+
+#### Example
+
+```js
+const metric = firebase.perf().newHttpMetric('https://api.com/user/1', 'GET');
+await metric.start();
+```
+
+###### Parameters
+
+###### url
+
+`string`
+
+A valid url String, cannot be empty
+
+###### httpMethod
+
+[`HttpMethod`](#httpmethod)
+
+One of the values GET, PUT, POST, DELETE, HEAD, PATCH, OPTIONS, TRACE, or CONNECT
+
+###### Returns
+
+[`HttpMetric`](#httpmetric)
+
+##### newScreenTrace()
+
+> **newScreenTrace**(`identifier`): [`ScreenTrace`](#screentrace)
+
+Defined in: [index.d.ts:509](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L509)
+
+Creates a ScreenTrace instance with the given identifier.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Example
+
+```js
+try {
+ const trace = firebase.perf().newScreenTrace('FooScreen');
+ await trace.start();
+} catch (e) {
+
+}
+```
+
+###### Parameters
+
+###### identifier
+
+`string`
+
+Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
+
+###### Returns
+
+[`ScreenTrace`](#screentrace)
+
+##### newTrace()
+
+> **newTrace**(`identifier`): [`Trace`](#trace)
+
+Defined in: [index.d.ts:477](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L477)
+
+Creates a Trace instance with the given identifier.
+
+#### Example
+
+```js
+const trace = firebase.perf().newTrace('user_profile');
+await trace.start();
+```
+
+###### Parameters
+
+###### identifier
+
+`string`
+
+Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
+
+###### Returns
+
+[`Trace`](#trace)
+
+##### ~~setPerformanceCollectionEnabled()~~
+
+> **setPerformanceCollectionEnabled**(`enabled`): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:463](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L463)
+
+Enables or disables performance monitoring.
+
+#### Example
+
+```js
+// Disable performance monitoring collection
+await firebase.perf().setPerformanceCollectionEnabled(false);
+```
+
+###### Parameters
+
+###### enabled
+
+`boolean`
+
+Should performance monitoring be enabled. For iOS only, this also toggles whether instrumentation
+is enabled. See: https://firebase.google.com/docs/reference/ios/firebaseperformance/api/reference/Classes/FIRPerformance#instrumentationenabled
+
+###### Returns
+
+`Promise`\<`null`\>
+
+###### Deprecated
+
+prefer setting `dataCollectionEnabled = boolean`.
+
+##### startScreenTrace()
+
+> **startScreenTrace**(`identifier`): `Promise`\<[`ScreenTrace`](#screentrace)\>
+
+Defined in: [index.d.ts:529](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L529)
+
+Creates a ScreenTrace instance with the given identifier and immediately starts it.
+Throws if hardware acceleration is disabled or if Android is 9.0 or 9.1.
+
+#### Example
+
+```js
+try {
+ const trace = await firebase.perf().startScreenTrace('FooScreen');
+ await trace.stop();
+} catch (e) {
+
+}
+```
+
+###### Parameters
+
+###### identifier
+
+`string`
+
+Name of the screen
+
+###### Returns
+
+`Promise`\<[`ScreenTrace`](#screentrace)\>
+
+###### Platform
+
+android Android !== 9.0.0 && Android !== 9.1.0
+
+##### startTrace()
+
+> **startTrace**(`identifier`): `Promise`\<[`Trace`](#trace)\>
+
+Defined in: [index.d.ts:490](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L490)
+
+Creates a Trace instance with the given identifier and immediately starts it.
+
+#### Example
+
+```js
+const trace = await firebase.perf().startTrace('user_profile');
+```
+
+###### Parameters
+
+###### identifier
+
+`string`
+
+Name of the trace, no leading or trailing whitespace allowed, no leading underscore '_' character allowed, max length is 100.
+
+###### Returns
+
+`Promise`\<[`Trace`](#trace)\>
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [index.d.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L422)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+###### Overrides
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../../app/namespaces/ReactNativeFirebase.mdx#app)
+
+##### dataCollectionEnabled
+
+> **dataCollectionEnabled**: `boolean`
+
+Defined in: [index.d.ts:449](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L449)
+
+Determines whether performance monitoring is enabled or disabled.
+
+#### Example
+
+```js
+const isEnabled = firebase.perf().dataCollectionEnabled;
+console.log('Performance collection enabled: ', isEnabled);
+```
+
+##### instrumentationEnabled
+
+> **instrumentationEnabled**: `boolean`
+
+Defined in: [index.d.ts:438](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L438)
+
+Determines whether to collect 'out of the box' (i.e already setup for Firebase Performance) events.
+This can be set for iOS. Android will always return "true" as it has to be set at gradle level.
+
+##### isPerformanceCollectionEnabled
+
+> **isPerformanceCollectionEnabled**: `boolean`
+
+Defined in: [index.d.ts:433](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L433)
+
+Determines whether performance monitoring is enabled or disabled.
+
+#### Example
+
+```js
+const isEnabled = firebase.perf().isPerformanceCollectionEnabled;
+console.log('Performance collection enabled: ', isEnabled);
+```
+
+***
+
+### ScreenTrace
+
+Defined in: [index.d.ts:220](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L220)
+
+ScreenTrace allows you to record a custom screen rendering trace of slow and frozen frames.
+Throws on constructor if hardware acceleration is off or if Android is 9.0 or 9.1.
+
+#### Platform
+
+android Android !== 9.0.0 && Adnroid !== 9.1.0
+
+#### Constructors
+
+##### Constructor
+
+> **new ScreenTrace**(): [`ScreenTrace`](#screentrace)
+
+###### Returns
+
+[`ScreenTrace`](#screentrace)
+
+#### Methods
+
+##### start()
+
+> **start**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:236](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L236)
+
+Starts a new screen trace. Does nothing if already started.
+
+#### Example
+
+```js
+try {
+ const trace = firebase.perf().newScreenTrace('FooScreen');
+ await trace.start();
+} catch (e) {
+
+}
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+###### Platform
+
+android Android >= 9.0.0
+
+##### stop()
+
+> **stop**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:253](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L253)
+
+Stops and sends the screen trace.
+
+#### Example
+
+```js
+try {
+ const trace = firebase.perf().newScreenTrace('FooScreen');
+ await trace.start();
+ await trace.stop();
+} catch (e) {
+
+}
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+###### Platform
+
+android Android >= 9.0.0
+
+***
+
+### Trace
+
+Defined in: [index.d.ts:85](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L85)
+
+Trace allows you to time the beginning to end of a certain action in your app with additional metric values and attributes.
+
+#### Constructors
+
+##### Constructor
+
+> **new Trace**(): [`Trace`](#trace)
+
+###### Returns
+
+[`Trace`](#trace)
+
+#### Methods
+
+##### getAttribute()
+
+> **getAttribute**(`attribute`): `string` \| `null`
+
+Defined in: [index.d.ts:97](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L97)
+
+Returns the value of an attribute. Returns null if it does not exist.
+
+#### Example
+
+```js
+const attribute = trace.getAttribute('userId');
+```
+
+###### Parameters
+
+###### attribute
+
+`string`
+
+Name of the attribute to fetch the value of.
+
+###### Returns
+
+`string` \| `null`
+
+##### getMetric()
+
+> **getMetric**(`metricName`): `number`
+
+Defined in: [index.d.ts:126](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L126)
+
+Gets the value of the metric with the given name in the current trace. If the metric
+doesn't exist, it will not be created and a 0 is returned.
+
+#### Example
+
+```js
+const metric = trace.getMetric('hits');
+```
+
+###### Parameters
+
+###### metricName
+
+`string`
+
+Name of the metric to get.
+
+###### Returns
+
+`number`
+
+##### getMetrics()
+
+> **getMetrics**(): `object`
+
+Defined in: [index.d.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L141)
+
+Returns an object of all the currently added metrics and their number values.
+
+#### Example
+
+```js
+const metrics = trace.getMetrics();
+
+metrics.forEach(($) => {
+ console.log($);
+});
+```
+
+###### Returns
+
+`object`
+
+##### incrementMetric()
+
+> **incrementMetric**(`metricName`, `incrementBy`): `void`
+
+Defined in: [index.d.ts:172](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L172)
+
+Increments the named metric by the `incrementBy` value.
+
+If a metric with the given name doesn't exist, a new one will be created starting with the value of `incrementBy`.
+
+```js
+trace.incrementMetric('hits', 1);
+```
+
+###### Parameters
+
+###### metricName
+
+`string`
+
+Name of the metric to increment. Must not have a leading or trailing whitespace, no leading underscore '_' character and have a max length of 32 characters.
+
+###### incrementBy
+
+`number`
+
+The value the metric should be incremented by.
+
+###### Returns
+
+`void`
+
+##### putAttribute()
+
+> **putAttribute**(`attribute`, `value`): `void`
+
+Defined in: [index.d.ts:112](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L112)
+
+Sets a String value for the specified attribute. Updates the value of the attribute if it already exists.
+The maximum number of attributes that can be added is 5.
+
+#### Example
+
+```js
+trace.putAttribute('userId', '123456789');
+```
+
+###### Parameters
+
+###### attribute
+
+`string`
+
+Name of the attribute. Max length is 40 chars.
+
+###### value
+
+`string`
+
+Value of the attribute. Max length is 100 chars.
+
+###### Returns
+
+`void`
+
+##### putMetric()
+
+> **putMetric**(`metricName`, `value`): `void`
+
+Defined in: [index.d.ts:158](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L158)
+
+Sets the value of the named metric with the provided number.
+
+If a metric with the given name exists it will be overwritten.
+If a metric with the given name doesn't exist, a new one will be created.
+
+#### Example
+
+```js
+trace.putMetric('hits', 1);
+```
+
+###### Parameters
+
+###### metricName
+
+`string`
+
+Name of the metric to set. Must not have a leading or trailing whitespace, no leading underscore '_' character and have a max length of 32 characters.
+
+###### value
+
+`number`
+
+The value the metric should be set to.
+
+###### Returns
+
+`void`
+
+##### removeMetric()
+
+> **removeMetric**(`metricName`): `void`
+
+Defined in: [index.d.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L185)
+
+Removes a metric by name if it exists.
+
+#### Example
+
+```js
+trace.removeMetric('hits');
+```
+
+###### Parameters
+
+###### metricName
+
+`string`
+
+Name of the metric to remove.
+
+###### Returns
+
+`void`
+
+##### start()
+
+> **start**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:197](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L197)
+
+Marks the start time of the trace. Does nothing if already started.
+
+#### Example
+
+```js
+const trace = firebase.perf().newTrace('example');
+await trace.start();
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### stop()
+
+> **stop**(): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:211](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L211)
+
+Marks the end time of the trace and queues the metric on the device for transmission. Does nothing if already stopped.
+
+* #### Example
+
+```js
+const trace = firebase.perf().newTrace('example');
+await trace.start();
+trace.putMetric('hits', 1);
+await trace.stop();
+```
+
+###### Returns
+
+`Promise`\<`null`\>
+
+## Interfaces
+
+### Statics
+
+Defined in: [index.d.ts:401](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L401)
+
+#### Properties
+
+##### SDK\_VERSION
+
+> **SDK\_VERSION**: `string`
+
+Defined in: [index.d.ts:402](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L402)
+
+## Type Aliases
+
+### HttpMethod
+
+> **HttpMethod** = `"GET"` \| `"HEAD"` \| `"PUT"` \| `"POST"` \| `"PATCH"` \| `"TRACE"` \| `"DELETE"` \| `"CONNECT"` \| `"OPTIONS"`
+
+Defined in: [index.d.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/perf/lib/index.d.ts#L71)
+
+Valid HTTP methods.
diff --git a/docs/reference/@react-native-firebase/remote-config/README.mdx b/docs/reference/@react-native-firebase/remote-config/README.mdx
new file mode 100644
index 0000000000..ec03c68958
--- /dev/null
+++ b/docs/reference/@react-native-firebase/remote-config/README.mdx
@@ -0,0 +1,718 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/remote-config
+
+# @react-native-firebase/remote-config
+
+## Functions
+
+### activate()
+
+> **activate**(`remoteConfig`): `Promise`\<`boolean`\>
+
+Defined in: [modular/index.d.ts:53](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L53)
+
+Returns a Boolean which resolves to true if the current call
+activated the fetched configs.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+`Promise`
+
+***
+
+### ensureInitialized()
+
+> **ensureInitialized**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L60)
+
+Ensures the last activated config are available to the getters.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### fetch()
+
+> **fetch**(`remoteConfig`, `expirationDurationSeconds?`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:185](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L185)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### expirationDurationSeconds?
+
+`number`
+
+number
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### fetchAndActivate()
+
+> **fetchAndActivate**(`remoteConfig`): `Promise`\<`boolean`\>
+
+Defined in: [modular/index.d.ts:68](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L68)
+
+Performs a fetch and returns a Boolean which resolves to true
+if the current call activated the fetched configs.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+`Promise`
+
+***
+
+### fetchConfig()
+
+> **fetchConfig**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:75](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L75)
+
+Fetches and caches configuration from the Remote Config service.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### fetchTimeMillis()
+
+> **fetchTimeMillis**(`remoteConfig`): `number`
+
+Defined in: [modular/index.d.ts:141](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L141)
+
+Indicates the default value in milliseconds to abandon a pending fetch
+request made to the Remote Config server. Defaults to 60000 (One minute).
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`number`
+
+number
+
+***
+
+### getAll()
+
+> **getAll**(`remoteConfig`): [`ConfigValues`](namespaces/FirebaseRemoteConfigTypes.mdx#configvalues)
+
+Defined in: [modular/index.d.ts:82](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L82)
+
+Gets all config.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+[`ConfigValues`](namespaces/FirebaseRemoteConfigTypes.mdx#configvalues)
+
+ConfigValues
+
+***
+
+### getBoolean()
+
+> **getBoolean**(`remoteConfig`, `key`): `boolean`
+
+Defined in: [modular/index.d.ts:90](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L90)
+
+Gets the value for the given key as a boolean.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for boolean value
+
+#### Returns
+
+`boolean`
+
+boolean
+
+***
+
+### getNumber()
+
+> **getNumber**(`remoteConfig`, `key`): `number`
+
+Defined in: [modular/index.d.ts:98](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L98)
+
+Gets the value for the given key as a number.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for number value
+
+#### Returns
+
+`number`
+
+number
+
+***
+
+### getRemoteConfig()
+
+> **getRemoteConfig**(`app?`): [`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:45](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L45)
+
+Returns a RemoteConfig instance for the given app.
+
+#### Parameters
+
+##### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+FirebaseApp. Optional.
+
+#### Returns
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig
+
+***
+
+### getString()
+
+> **getString**(`remoteConfig`, `key`): `string`
+
+Defined in: [modular/index.d.ts:106](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L106)
+
+Gets the value for the given key as a string.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for string value
+
+#### Returns
+
+`string`
+
+string
+
+***
+
+### getValue()
+
+> **getValue**(`remoteConfig`, `key`): [`ConfigValue`](namespaces/FirebaseRemoteConfigTypes.mdx#configvalue)
+
+Defined in: [modular/index.d.ts:114](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L114)
+
+Gets the value for the given key
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### key
+
+`string`
+
+key for the given value
+
+#### Returns
+
+[`ConfigValue`](namespaces/FirebaseRemoteConfigTypes.mdx#configvalue)
+
+ConfigValue
+
+***
+
+### isSupported()
+
+> **isSupported**(): `Promise`\<`boolean`\>
+
+Defined in: [modular/index.d.ts:133](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L133)
+
+Checks two different things.
+1. Check if IndexedDB exists in the browser environment.
+2. Check if the current browser context allows IndexedDB open() calls.
+
+#### Returns
+
+`Promise`\<`boolean`\>
+
+`Promise`
+
+***
+
+### lastFetchStatus()
+
+> **lastFetchStatus**(`remoteConfig`): [`LastFetchStatusType`](namespaces/FirebaseRemoteConfigTypes.mdx#lastfetchstatustype)
+
+Defined in: [modular/index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L156)
+
+The status of the latest Remote RemoteConfig fetch action.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+[`LastFetchStatusType`](namespaces/FirebaseRemoteConfigTypes.mdx#lastfetchstatustype)
+
+LastFetchStatusType
+
+***
+
+### onConfigUpdate()
+
+> **onConfigUpdate**(`remoteConfig`, `observer`): [`Unsubscribe`](namespaces/FirebaseRemoteConfigTypes.mdx#unsubscribe)
+
+Defined in: [modular/index.d.ts:226](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L226)
+
+Starts listening for real-time config updates from the Remote Config backend and automatically
+fetches updates from the Remote Config backend when they are available.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+The [RemoteConfig](namespaces/FirebaseRemoteConfigTypes.mdx#module) instance.
+
+##### observer
+
+[`ConfigUpdateObserver`](namespaces/FirebaseRemoteConfigTypes.mdx#configupdateobserver)
+
+The [ConfigUpdateObserver](namespaces/FirebaseRemoteConfigTypes.mdx#configupdateobserver) to be notified of config updates.
+
+#### Returns
+
+[`Unsubscribe`](namespaces/FirebaseRemoteConfigTypes.mdx#unsubscribe)
+
+Unsubscribe function to remove the listener.
+
+#### Remarks
+
+If a connection to the Remote Config backend is not already open, calling this method will
+open it. Multiple listeners can be added by calling this method again, but subsequent calls
+re-use the same connection to the backend.
+
+The list of updated keys passed to the callback will include all keys not currently active,
+and the config update process fetches the new config but does not automatically activate
+it for you. Typically you will activate the config in your callback to use the new values.
+
+***
+
+### ~~onConfigUpdated()~~
+
+> **onConfigUpdated**(`remoteConfig`, `callback`): () => `void`
+
+Defined in: [modular/index.d.ts:239](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L239)
+
+Registers a listener to changes in the configuration.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### callback
+
+[`CallbackOrObserver`](namespaces/FirebaseRemoteConfigTypes.mdx#callbackorobserver)\<[`OnConfigUpdatedListenerCallback`](namespaces/FirebaseRemoteConfigTypes.mdx#onconfigupdatedlistenercallback)\>
+
+function called on config change
+
+#### Returns
+
+unsubscribe listener
+
+() => `void`
+
+#### Deprecated
+
+use official firebase-js-sdk onConfigUpdate now that web supports realtime
+
+***
+
+### reset()
+
+> **reset**(`remoteConfig`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:165](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L165)
+
+Deletes all activated, fetched and defaults configs and
+resets all Firebase Remote Config settings.
+Android only. iOS does not reset anything.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### setConfigSettings()
+
+> **setConfigSettings**(`remoteConfig`, `settings`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:174](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L174)
+
+Set the Remote RemoteConfig settings, currently able to set
+`fetchTimeMillis` & `minimumFetchIntervalMillis`
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### settings
+
+[`ConfigSettings`](namespaces/FirebaseRemoteConfigTypes.mdx#configsettings)
+
+ConfigSettings instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### setCustomSignals()
+
+> **setCustomSignals**(`remoteConfig`, `customSignals`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:262](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L262)
+
+Sets the custom signals for the app instance.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### customSignals
+
+[`CustomSignals`](#customsignals)
+
+CustomSignals instance
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### setDefaults()
+
+> **setDefaults**(`remoteConfig`, `defaults`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L196)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### defaults
+
+[`ConfigDefaults`](namespaces/FirebaseRemoteConfigTypes.mdx#configdefaults)
+
+ConfigDefaults
+
+#### Returns
+
+`Promise`\<`void`\>
+
+`Promise`
+
+***
+
+### setDefaultsFromResource()
+
+> **setDefaultsFromResource**(`remoteConfig`, `resourceName`): `Promise`\<`null`\>
+
+Defined in: [modular/index.d.ts:204](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L204)
+
+Fetches parameter values for your app.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### resourceName
+
+`string`
+
+string
+
+#### Returns
+
+`Promise`\<`null`\>
+
+`Promise`
+
+***
+
+### setLogLevel()
+
+> **setLogLevel**(`remoteConfig`, `logLevel`): [`RemoteConfigLogLevel`](namespaces/FirebaseRemoteConfigTypes.mdx#remoteconfigloglevel)
+
+Defined in: [modular/index.d.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L122)
+
+Defines the log level to use.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+##### logLevel
+
+[`RemoteConfigLogLevel`](namespaces/FirebaseRemoteConfigTypes.mdx#remoteconfigloglevel)
+
+The log level to set
+
+#### Returns
+
+[`RemoteConfigLogLevel`](namespaces/FirebaseRemoteConfigTypes.mdx#remoteconfigloglevel)
+
+RemoteConfigLogLevel
+
+***
+
+### settings()
+
+> **settings**(`remoteConfig`): [`ConfigSettings`](namespaces/FirebaseRemoteConfigTypes.mdx#configsettings)
+
+Defined in: [modular/index.d.ts:149](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L149)
+
+Returns a ConfigSettings object which provides the properties `minimumFetchIntervalMillis` and `fetchTimeMillis` if they have been set
+using `setConfigSettings({ fetchTimeMillis: number, minimumFetchIntervalMillis: number })`.
+
+#### Parameters
+
+##### remoteConfig
+
+[`Module`](namespaces/FirebaseRemoteConfigTypes.mdx#module)
+
+RemoteConfig instance
+
+#### Returns
+
+[`ConfigSettings`](namespaces/FirebaseRemoteConfigTypes.mdx#configsettings)
+
+ConfigSettings
+
+## Interfaces
+
+### CustomSignals
+
+Defined in: [modular/index.d.ts:251](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L251)
+
+Defines the type for representing custom signals and their values.
+The values in CustomSignals must be one of the following types: string, number, or null.
+There are additional limitations on key and value length, for a full description see [https://firebase.google.com/docs/remote-config/parameters?template_type=client#custom_signal_conditions]
+Failing to stay within these limitations will result in a silent API failure with only a warning in device logs
+
+#### Indexable
+
+> \[`key`: `string`\]: `string` \| `number` \| `null`
+
+## Namespaces
+
+- [FirebaseRemoteConfigTypes](namespaces/FirebaseRemoteConfigTypes.mdx)
+
+## Variables
+
+### default
+
+> `const` **default**: `RemoteConfigNamespace`
+
+Defined in: [index.d.ts:630](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L630)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`Module`](../app/namespaces/ReactNativeFirebase.mdx#module) & `object`
+
+Defined in: [index.d.ts:632](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L632)
+
+#### Type Declaration
+
+##### remoteConfig
+
+> **remoteConfig**: *typeof* [`default`](#default)
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+###### Parameters
+
+###### name?
+
+`string`
+
+###### Returns
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+***
+
+### LastFetchStatus
+
+> `const` **LastFetchStatus**: [`LastFetchStatus`](namespaces/FirebaseRemoteConfigTypes.mdx#lastfetchstatus-1)
+
+Defined in: [modular/index.d.ts:37](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L37)
+
+***
+
+### ValueSource
+
+> `const` **ValueSource**: [`ValueSource`](namespaces/FirebaseRemoteConfigTypes.mdx#valuesource-1)
+
+Defined in: [modular/index.d.ts:38](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/modular/index.d.ts#L38)
diff --git a/docs/reference/@react-native-firebase/remote-config/namespaces/FirebaseRemoteConfigTypes.mdx b/docs/reference/@react-native-firebase/remote-config/namespaces/FirebaseRemoteConfigTypes.mdx
new file mode 100644
index 0000000000..eef092e58d
--- /dev/null
+++ b/docs/reference/@react-native-firebase/remote-config/namespaces/FirebaseRemoteConfigTypes.mdx
@@ -0,0 +1,1043 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/remote-config](../README.mdx) / FirebaseRemoteConfigTypes
+
+# FirebaseRemoteConfigTypes
+
+Firebase Remote RemoteConfig package for React Native.
+
+#### Example 1
+
+Access the firebase export from the `config` package:
+
+```js
+import { firebase } from '@react-native-firebase/remote-config';
+
+// firebase.remoteConfig().X
+```
+
+#### Example 2
+
+Using the default export from the `config` package:
+
+```js
+import remoteConfig from '@react-native-firebase/remote-config';
+
+// remoteConfig().X
+```
+
+#### Example 3
+
+Using the default export from the `app` package:
+
+```js
+import firebase from '@react-native-firebase/app';
+import '@react-native-firebase/remote-config';
+
+// firebase.remoteConfig().X
+```
+
+## Firebase
+
+remote-config
+
+## Classes
+
+### Module
+
+Defined in: [index.d.ts:347](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L347)
+
+The Firebase Remote RemoteConfig service interface.
+
+> This module is available for the default app only.
+
+#### Example
+
+Get the Remote RemoteConfig service for the default app:
+
+```js
+const defaultAppRemoteConfig = firebase.remoteConfig();
+```
+
+#### Extends
+
+- [`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Constructors
+
+##### Constructor
+
+> **new Module**(): [`Module`](#module)
+
+###### Returns
+
+[`Module`](#module)
+
+###### Inherited from
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`constructor`](../../app/namespaces/ReactNativeFirebase.mdx#constructor)
+
+#### Methods
+
+##### activate()
+
+> **activate**(): `Promise`\<`boolean`\>
+
+Defined in: [index.d.ts:472](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L472)
+
+Moves fetched data to the apps active config.
+Resolves with a boolean value true if new local values were activated
+
+#### Example
+
+```js
+// Fetch values
+await firebase.remoteConfig().fetch();
+const activated = await firebase.remoteConfig().activate();
+
+if (activated) {
+ console.log('Fetched values successfully activated.');
+} else {
+ console.log('Fetched values were already activated.');
+}
+```
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+##### ensureInitialized()
+
+> **ensureInitialized**(): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:483](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L483)
+
+Ensures the last activated config are available to the getters.
+
+#### Example
+
+```js
+await firebase.remoteConfig().ensureInitialized();
+// get remote config values
+```
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### fetch()
+
+> **fetch**(`expirationDurationSeconds?`): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:497](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L497)
+
+Fetches the remote config data from Firebase, as defined in the dashboard. If duration is defined (seconds), data will be locally cached for this duration.
+
+#### Example
+
+```js
+// Fetch and cache for 5 minutes
+await firebase.remoteConfig().fetch(300);
+```
+
+###### Parameters
+
+###### expirationDurationSeconds?
+
+`number`
+
+Duration in seconds to cache the data for. To skip cache, use a duration of 0.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### fetchAndActivate()
+
+> **fetchAndActivate**(): `Promise`\<`boolean`\>
+
+Defined in: [index.d.ts:517](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L517)
+
+Fetches the remote config data from Firebase, as defined in the dashboard.
+Once fetching is complete this method immediately calls activate and returns a boolean value true if new values were activated
+
+#### Example
+
+```js
+// Fetch, cache for 5 minutes and activate
+const fetchedRemotely = await firebase.remoteConfig().fetchAndActivate();
+
+if (fetchedRemotely) {
+ console.log('New configs were retrieved from the backend and activated.');
+} else {
+ console.log('No new configs were fetched from the backend, and the local configs were already activated');
+}
+```
+
+###### Returns
+
+`Promise`\<`boolean`\>
+
+##### getAll()
+
+> **getAll**(): [`ConfigValues`](#configvalues)
+
+Defined in: [index.d.ts:536](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L536)
+
+Returns all available config values.
+
+#### Example
+
+```js
+const values = firebase.remoteConfig().getAll();
+
+Object.entries(values).forEach(($) => {
+ const [key, entry] = $;
+ console.log('Key: ', key);
+ console.log('Source: ', entry.getSource());
+ console.log('Value: ', entry.asString());
+});
+```
+
+###### Returns
+
+[`ConfigValues`](#configvalues)
+
+##### getBoolean()
+
+> **getBoolean**(`key`): `boolean`
+
+Defined in: [index.d.ts:564](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L564)
+
+Gets a config property using the key and converts to a boolean value
+
+#### Example
+
+```js
+// true or false depending on truthy or falsy nature of value
+const configValue = firebase.remoteConfig().getBoolean('experiment');
+```
+
+###### Parameters
+
+###### key
+
+`string`
+
+A key used to retrieve a specific value.
+
+###### Returns
+
+`boolean`
+
+##### getNumber()
+
+> **getNumber**(`key`): `number`
+
+Defined in: [index.d.ts:591](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L591)
+
+Gets a config property using the key and converts to a number value. It
+will be 0 if the value is not a number.
+
+#### Example
+
+```js
+// number value of 'experiment' property
+const configValue = firebase.remoteConfig().getNumber('experiment');
+```
+
+###### Parameters
+
+###### key
+
+`string`
+
+A key used to retrieve a specific value.
+
+###### Returns
+
+`number`
+
+##### getString()
+
+> **getString**(`key`): `string`
+
+Defined in: [index.d.ts:577](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L577)
+
+Gets a config property using the key and converts to a string value
+
+#### Example
+
+```js
+// string value of 'experiment' property
+const configValue = firebase.remoteConfig().getString('experiment');
+```
+
+###### Parameters
+
+###### key
+
+`string`
+
+A key used to retrieve a specific value.
+
+###### Returns
+
+`string`
+
+##### getValue()
+
+> **getValue**(`key`): [`ConfigValue`](#configvalue)
+
+Defined in: [index.d.ts:551](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L551)
+
+Gets a ConfigValue by key.
+
+#### Example
+
+```js
+const configValue = firebase.remoteConfig().getValue('experiment');
+console.log('Source: ', configValue.getSource());
+console.log('Value: ', configValue.asString());
+```
+
+###### Parameters
+
+###### key
+
+`string`
+
+A key used to retrieve a specific value.
+
+###### Returns
+
+[`ConfigValue`](#configvalue)
+
+##### onConfigUpdate()
+
+> **onConfigUpdate**(`remoteConfig`, `observer`): [`Unsubscribe`](#unsubscribe)
+
+Defined in: [index.d.ts:441](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L441)
+
+Starts listening for real-time config updates from the Remote Config backend and automatically
+fetches updates from the Remote Config backend when they are available.
+
+###### Parameters
+
+###### remoteConfig
+
+`RemoteConfig`
+
+The RemoteConfig instance.
+
+###### observer
+
+[`ConfigUpdateObserver`](#configupdateobserver)
+
+The [ConfigUpdateObserver](#configupdateobserver) to be notified of config updates.
+
+###### Returns
+
+[`Unsubscribe`](#unsubscribe)
+
+An [Unsubscribe](#unsubscribe) function to remove the listener.
+
+###### Remarks
+
+If a connection to the Remote Config backend is not already open, calling this method will
+open it. Multiple listeners can be added by calling this method again, but subsequent calls
+re-use the same connection to the backend.
+
+The list of updated keys passed to the callback will include all keys not currently active,
+and the config update process fetches the new config but does not automatically activate
+it for you. Typically you will activate the config in your callback to use the new values.
+
+##### ~~onConfigUpdated()~~
+
+> **onConfigUpdated**(`listener`): () => `void`
+
+Defined in: [index.d.ts:452](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L452)
+
+Start listening for real-time config updates from the Remote Config backend and
+automatically fetch updates when they’re available. Note that the list of updated keys
+passed to the callback will include all keys not currently active, and the config update
+process fetches the new config but does not automatically activate for you. Typically
+you will want to activate the config in your callback so the new values are in force.
+
+###### Parameters
+
+###### listener
+
+[`CallbackOrObserver`](#callbackorobserver)\<[`OnConfigUpdatedListenerCallback`](#onconfigupdatedlistenercallback)\>
+
+called with either array of updated keys or error arg when config changes
+
+###### Returns
+
+() => `void`
+
+###### Deprecated
+
+use official firebase-js-sdk onConfigUpdate now that web supports realtime
+
+##### reset()
+
+> **reset**(): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:605](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L605)
+
+Deletes all activated, fetched and defaults configs and resets all Firebase Remote Config settings.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+###### Android
+
+Android only - iOS returns Promise but does not reset anything
+
+#### Example
+
+```js
+await firebase.remoteConfig().reset();
+// get remote config values
+```
+
+##### setConfigSettings()
+
+> **setConfigSettings**(`configSettings`): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:390](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L390)
+
+Set the Remote RemoteConfig settings, currently able to set `fetchTimeMillis` & `minimumFetchIntervalMillis`
+
+#### Example
+
+```js
+await firebase.remoteConfig().setConfigSettings({
+ minimumFetchIntervalMillis: 30000,
+});
+```
+
+###### Parameters
+
+###### configSettings
+
+[`ConfigSettings`](#configsettings)
+
+A ConfigSettingsWrite instance used to set Remote RemoteConfig settings.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setDefaults()
+
+> **setDefaults**(`defaults`): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:406](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L406)
+
+Sets default values for the app to use when accessing values.
+Any data fetched and activated will override any default values. Any values in the defaults but not on Firebase will be untouched.
+
+#### Example
+
+```js
+await firebase.remoteConfig().setDefaults({
+ experiment_enabled: false,
+});
+```
+
+###### Parameters
+
+###### defaults
+
+[`ConfigDefaults`](#configdefaults)
+
+A ConfigDefaults instance used to set default values.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+##### setDefaultsFromResource()
+
+> **setDefaultsFromResource**(`resourceName`): `Promise`\<`null`\>
+
+Defined in: [index.d.ts:422](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L422)
+
+Sets the default values from a resource file.
+On iOS this is a plist file and on Android this is an XML defaultsMap file.
+
+```js
+// put in either your iOS or Android directory without the file extension included (.plist or .xml)
+ await firebase.remoteConfig().setDefaultsFromResource('config_resource');
+
+// resource values will now be loaded in with your other config values
+const config = firebase.remoteConfig().getAll();
+```
+
+###### Parameters
+
+###### resourceName
+
+`string`
+
+The plist/xml file name with no extension.
+
+###### Returns
+
+`Promise`\<`null`\>
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [index.d.ts:351](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L351)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+###### Overrides
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../../app/namespaces/ReactNativeFirebase.mdx#app)
+
+##### defaultConfig
+
+> **defaultConfig**: [`ConfigDefaults`](#configdefaults)
+
+Defined in: [index.d.ts:375](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L375)
+
+Provides an object with the type ConfigDefaults for default configuration values
+
+##### fetchTimeMillis
+
+> **fetchTimeMillis**: `number`
+
+Defined in: [index.d.ts:356](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L356)
+
+The number of milliseconds since the last Remote RemoteConfig fetch was performed.
+
+##### lastFetchStatus
+
+> **lastFetchStatus**: [`LastFetchStatusType`](#lastfetchstatustype)
+
+Defined in: [index.d.ts:362](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L362)
+
+The status of the latest Remote RemoteConfig fetch action.
+
+See the `LastFetchStatus` statics definition.
+
+##### settings
+
+> **settings**: [`ConfigSettings`](#configsettings)
+
+Defined in: [index.d.ts:370](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L370)
+
+Provides an object which provides the properties `minimumFetchIntervalMillis` & `fetchTimeMillis` if they have been set
+using setConfigSettings({ fetchTimeMillis: number, minimumFetchIntervalMillis: number }). A description of the properties
+can be found above
+
+## Interfaces
+
+### ConfigDefaults
+
+Defined in: [index.d.ts:286](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L286)
+
+Set default config values by updating `defaultConfig` with an object & the properties you require as default.
+
+#### Example
+
+```js
+await firebase.remoteConfig().setDefaults({
+ experiment_enabled: false,
+});
+```
+
+#### Indexable
+
+> \[`key`: `string`\]: `string` \| `number` \| `boolean`
+
+***
+
+### ConfigSettings
+
+Defined in: [index.d.ts:263](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L263)
+
+An Interface representing settable config settings.
+
+#### Example
+
+The example below shows how to set a time limit to the length of time the request for remote config values
+
+```js
+await firebase.remoteConfig().setConfigSettings({
+ fetchTimeMillis: 6000,
+});
+```
+
+#### Properties
+
+##### fetchTimeMillis?
+
+> `optional` **fetchTimeMillis?**: `number`
+
+Defined in: [index.d.ts:272](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L272)
+
+Indicates the default value in milliseconds to abandon a pending fetch request made to the Remote Config server. Defaults to 60000 (One minute).
+
+##### minimumFetchIntervalMillis?
+
+> `optional` **minimumFetchIntervalMillis?**: `number`
+
+Defined in: [index.d.ts:268](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L268)
+
+Indicates the default value in milliseconds to set for the minimum interval that needs to elapse
+before a fetch request can again be made to the Remote Config server. Defaults to 43200000 (Twelve hours).
+
+***
+
+### ConfigUpdate
+
+Defined in: [index.d.ts:298](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L298)
+
+Contains information about which keys have been updated.
+
+#### Methods
+
+##### getUpdatedKeys()
+
+> **getUpdatedKeys**(): `Set`\<`string`\>
+
+Defined in: [index.d.ts:303](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L303)
+
+Parameter keys whose values have been updated from the currently activated values.
+Includes keys that are added, deleted, or whose value, value source, or metadata has changed.
+
+###### Returns
+
+`Set`\<`string`\>
+
+***
+
+### ConfigUpdateObserver
+
+Defined in: [index.d.ts:312](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L312)
+
+Observer interface for receiving real-time Remote Config update notifications.
+
+NOTE: Although an `complete` callback can be provided, it will
+never be called because the ConfigUpdate stream is never-ending.
+
+#### Properties
+
+##### complete
+
+> **complete**: () => `void`
+
+Defined in: [index.d.ts:326](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L326)
+
+Called when the stream is gracefully terminated.
+
+###### Returns
+
+`void`
+
+##### error
+
+> **error**: (`error`) => `void`
+
+Defined in: [index.d.ts:321](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L321)
+
+Called if an error occurs during the stream.
+
+###### Parameters
+
+###### error
+
+`FirebaseError`
+
+###### Returns
+
+`void`
+
+##### next
+
+> **next**: (`configUpdate`) => `void`
+
+Defined in: [index.d.ts:316](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L316)
+
+Called when a new ConfigUpdate is available.
+
+###### Parameters
+
+###### configUpdate
+
+[`ConfigUpdate`](#configupdate)
+
+###### Returns
+
+`void`
+
+***
+
+### ConfigValue
+
+Defined in: [index.d.ts:184](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L184)
+
+An Interface representing a RemoteConfig value.
+
+#### Methods
+
+##### asBoolean()
+
+> **asBoolean**(): `boolean`
+
+Defined in: [index.d.ts:212](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L212)
+
+The returned value.
+
+#### Example
+
+```js
+const configValue = firebase.remoteConfig().getValue('dev_mode');
+console.log('Boolean: ', configValue.asBoolean());
+```
+
+###### Returns
+
+`boolean`
+
+##### asNumber()
+
+> **asNumber**(): `number`
+
+Defined in: [index.d.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L223)
+
+The returned value.
+
+#### Example
+
+```js
+const configValue = firebase.remoteConfig().getValue('user_count');
+console.log('Count: ', configValue.asNumber());
+```
+
+###### Returns
+
+`number`
+
+##### asString()
+
+> **asString**(): `string`
+
+Defined in: [index.d.ts:234](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L234)
+
+The returned value.
+
+#### Example
+
+```js
+const configValue = firebase.remoteConfig().getValue('username');
+console.log('Name: ', configValue.asString());
+```
+
+###### Returns
+
+`string`
+
+##### getSource()
+
+> **getSource**(): `"remote"` \| `"default"` \| `"static"`
+
+Defined in: [index.d.ts:201](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L201)
+
+Where the value was retrieved from.
+
+- `remote`: If the value was retrieved from the server.
+- `default`: If the value was set as a default value.
+- `static`: If no value was found and a static default value was returned instead.
+
+See the `ValueSource` statics definition.
+
+#### Example
+
+```js
+const configValue = firebase.remoteConfig().getValue('beta_enabled');
+console.log('Value source: ', configValue.getSource());
+```
+
+###### Returns
+
+`"remote"` \| `"default"` \| `"static"`
+
+***
+
+### ConfigValues
+
+Defined in: [index.d.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L246)
+
+An Interface representing multiple RemoteConfig Values.
+
+#### Example
+
+```js
+const values = firebase.remoteConfig().getAll();
+```
+
+#### Indexable
+
+> \[`key`: `string`\]: [`ConfigValue`](#configvalue)
+
+***
+
+### LastFetchStatus
+
+Defined in: [index.d.ts:71](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L71)
+
+A pseudo-enum for usage with ConfigSettingsRead.lastFetchStatus to determine the last fetch status.
+
+#### Example
+
+```js
+firebase.remoteConfig.LastFetchStatus;
+```
+
+#### Properties
+
+##### FAILURE
+
+> **FAILURE**: `"failure"`
+
+Defined in: [index.d.ts:88](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L88)
+
+A value indicating that the last fetch failed.
+
+```js
+firebase.remoteConfig.LastFetchStatus.FAILURE;
+```
+
+##### NO\_FETCH\_YET
+
+> **NO\_FETCH\_YET**: `"no_fetch_yet"`
+
+Defined in: [index.d.ts:110](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L110)
+
+A value indicating that no fetches have occurred yet.
+
+This usually means you've not called fetch yet.
+
+```js
+firebase.remoteConfig.LastFetchStatus.NO_FETCH_YET;
+```
+
+##### SUCCESS
+
+> **SUCCESS**: `"success"`
+
+Defined in: [index.d.ts:79](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L79)
+
+A value indicating that the last fetch was successful.
+
+```js
+firebase.remoteConfig.LastFetchStatus.SUCCESS;
+```
+
+##### THROTTLED
+
+> **THROTTLED**: `"throttled"`
+
+Defined in: [index.d.ts:99](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L99)
+
+A value indicating that the last fetch was throttled.
+
+This usually occurs when calling fetch often with a low expiration duration.
+
+```js
+firebase.remoteConfig.LastFetchStatus.THROTTLED;
+```
+
+***
+
+### Statics
+
+Defined in: [index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L156)
+
+Firebase Remote RemoteConfig statics.
+
+```js
+firebase.config;
+```
+
+#### Properties
+
+##### LastFetchStatus
+
+> **LastFetchStatus**: [`LastFetchStatus`](#lastfetchstatus-1)
+
+Defined in: [index.d.ts:177](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L177)
+
+A pseudo-enum for usage with `firebase.remoteConfig().lastFetchStatus` to determine the last fetch status.
+
+#### Example
+
+```js
+firebase.remoteConfig.LastFetchStatus;
+```
+
+##### SDK\_VERSION
+
+> **SDK\_VERSION**: `string`
+
+Defined in: [index.d.ts:178](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L178)
+
+##### ValueSource
+
+> **ValueSource**: [`ValueSource`](#valuesource-1)
+
+Defined in: [index.d.ts:166](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L166)
+
+A pseudo-enum for usage with ConfigValue.source to determine the value source.
+
+#### Example
+
+```js
+firebase.remoteConfig.ValueSource;
+```
+
+***
+
+### ValueSource
+
+Defined in: [index.d.ts:122](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L122)
+
+A pseudo-enum for usage with ConfigValue.source to determine the value source.
+
+#### Example
+
+```js
+firebase.remoteConfig.ValueSource;
+```
+
+#### Properties
+
+##### DEFAULT
+
+> **DEFAULT**: `"default"`
+
+Defined in: [index.d.ts:138](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L138)
+
+If the value was set as a default value.
+
+```js
+firebase.remoteConfig.ValueSource.DEFAULT;
+```
+
+##### REMOTE
+
+> **REMOTE**: `"remote"`
+
+Defined in: [index.d.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L130)
+
+If the value was retrieved from the server.
+
+```js
+firebase.remoteConfig.ValueSource.REMOTE;
+```
+
+##### STATIC
+
+> **STATIC**: `"static"`
+
+Defined in: [index.d.ts:146](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L146)
+
+If no value was found and a static default value was returned instead.
+
+```js
+firebase.remoteConfig.ValueSource.STATIC;
+```
+
+## Type Aliases
+
+### CallbackOrObserver
+
+> **CallbackOrObserver**\<`T`\> = `T` \| \{ `next`: `T`; \}
+
+Defined in: [index.d.ts:609](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L609)
+
+#### Type Parameters
+
+##### T
+
+`T` *extends* (...`args`) => `any`
+
+***
+
+### LastFetchStatusType
+
+> **LastFetchStatusType** = `"success"` \| `"failure"` \| `"no_fetch_yet"` \| `"throttled"`
+
+Defined in: [index.d.ts:293](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L293)
+
+The status of the latest Remote RemoteConfig fetch action.
+
+***
+
+### OnConfigUpdatedListenerCallback
+
+> **OnConfigUpdatedListenerCallback** = (`event?`, `error?`) => `void`
+
+Defined in: [index.d.ts:612](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L612)
+
+#### Parameters
+
+##### event?
+
+###### updatedKeys
+
+`string`[]
+
+##### error?
+
+###### code
+
+`string`
+
+###### message
+
+`string`
+
+###### nativeErrorMessage
+
+`string`
+
+#### Returns
+
+`void`
+
+***
+
+### RemoteConfigLogLevel
+
+> **RemoteConfigLogLevel** = `"debug"` \| `"error"` \| `"silent"`
+
+Defined in: [index.d.ts:61](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L61)
+
+Defines levels of Remote Config logging. Web only.
+
+***
+
+### Unsubscribe
+
+> **Unsubscribe** = () => `void`
+
+Defined in: [index.d.ts:332](https://github.com/invertase/react-native-firebase/blob/main/packages/remote-config/lib/index.d.ts#L332)
+
+A function that unsubscribes from a real-time event stream.
+
+#### Returns
+
+`void`
diff --git a/docs/reference/@react-native-firebase/storage/README.mdx b/docs/reference/@react-native-firebase/storage/README.mdx
new file mode 100644
index 0000000000..8d0f644dde
--- /dev/null
+++ b/docs/reference/@react-native-firebase/storage/README.mdx
@@ -0,0 +1,866 @@
+[**React Native Firebase**](../../README.mdx)
+
+***
+
+[React Native Firebase](../../packages.mdx) / @react-native-firebase/storage
+
+# @react-native-firebase/storage
+
+## Functions
+
+### child()
+
+> **child**(`storageRef`, `path`): [`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+Defined in: [modular/index.d.ts:269](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L269)
+
+Returns a reference to a relative path from the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) as the base.
+
+##### path
+
+`string`
+
+The relative path from the base reference.
+
+#### Returns
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+A new [Reference](namespaces/FirebaseStorageTypes.mdx#reference).
+
+***
+
+### connectStorageEmulator()
+
+> **connectStorageEmulator**(`storage`, `host`, `port`, `options?`): `void`
+
+Defined in: [modular/index.d.ts:83](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L83)
+
+Connects a [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance to the Firebase Storage emulator.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+A reference to the `Storage` instance.
+
+##### host
+
+`string`
+
+Emulator host, e.g., 'localhost'.
+
+##### port
+
+`number`
+
+Emulator port, e.g., 9199.
+
+##### options?
+
+[`EmulatorMockTokenOptions`](namespaces/FirebaseStorageTypes.mdx#emulatormocktokenoptions)
+
+Optional. [EmulatorMockTokenOptions](namespaces/FirebaseStorageTypes.mdx#emulatormocktokenoptions) instance.
+
+#### Returns
+
+`void`
+
+***
+
+### deleteObject()
+
+> **deleteObject**(`storageRef`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:103](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L103)
+
+Deletes the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object to delete.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+A promise that resolves when the delete is complete.
+
+***
+
+### getBlob()
+
+> **getBlob**(`storageRef`, `maxDownloadSizeBytes?`): `Promise`\<`Blob`\>
+
+Defined in: [modular/index.d.ts:111](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L111)
+
+Retrieves the blob at the given reference's location. Throws an error if the object is not found.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`Promise`\<`Blob`\>
+
+A promise resolving to the Blob.
+
+***
+
+### getBytes()
+
+> **getBytes**(`storageRef`, `maxDownloadSizeBytes?`): `Promise`\<`ArrayBuffer`\>
+
+Defined in: [modular/index.d.ts:120](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L120)
+
+Retrieves bytes (up to the specified max size) from an object at the given reference's location.
+Throws an error if the object is not found or if the size exceeds the maximum allowed.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`Promise`\<`ArrayBuffer`\>
+
+A promise resolving to an ArrayBuffer.
+
+***
+
+### getDownloadURL()
+
+> **getDownloadURL**(`storageRef`): `Promise`\<`string`\>
+
+Defined in: [modular/index.d.ts:130](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L130)
+
+Retrieves a long-lived download URL for the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+#### Returns
+
+`Promise`\<`string`\>
+
+A promise resolving to the URL string.
+
+***
+
+### getMetadata()
+
+> **getMetadata**(`storageRef`): `Promise`\<[`FullMetadata`](namespaces/FirebaseStorageTypes.mdx#fullmetadata)\>
+
+Defined in: [modular/index.d.ts:137](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L137)
+
+Retrieves metadata for the object at the given reference's location.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+#### Returns
+
+`Promise`\<[`FullMetadata`](namespaces/FirebaseStorageTypes.mdx#fullmetadata)\>
+
+A promise resolving to the object's [FullMetadata](namespaces/FirebaseStorageTypes.mdx#fullmetadata).
+
+***
+
+### getStorage()
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): [`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:49](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L49)
+
+Returns the existing default [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance that is associated with the
+default [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp). The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Firebase app to get FirebaseStorage instance for.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to your Firebase Storage Bucket. If not passed, uses the app's default Storage Bucket.
+
+##### Returns
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`): [`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:60](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L60)
+
+Returns the existing default [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance that is associated with the
+provided [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp). The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) instance that the returned [Storage](namespaces/FirebaseStorageTypes.mdx#module)
+instance is associated with.
+
+##### Returns
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): [`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:72](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L72)
+
+Returns the existing default [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance that is associated with the
+provided [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp). If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+The [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) instance that the returned [Storage](namespaces/FirebaseStorageTypes.mdx#module)
+instance is associated with. If `null` the default app is used.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to the Firebase Storage Bucket. If `null` the default bucket is used.
+
+##### Returns
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The Firestore instance of the provided app.
+
+#### Call Signature
+
+> **getStorage**(`app?`, `bucketUrl?`): [`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+Defined in: [modular/index.d.ts:74](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L74)
+
+Returns the existing default [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance that is associated with the
+default [FirebaseApp](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp). The default storage bucket is used. If no instance exists, initializes a new
+instance with default settings.
+
+##### Parameters
+
+###### app?
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Firebase app to get FirebaseStorage instance for.
+
+###### bucketUrl?
+
+`string`
+
+The gs:// url to your Firebase Storage Bucket. If not passed, uses the app's default Storage Bucket.
+
+##### Returns
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance of the provided app.
+
+***
+
+### getStream()
+
+> **getStream**(`storageRef`, `maxDownloadSizeBytes?`): `ReadableStream`
+
+Defined in: [modular/index.d.ts:145](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L145)
+
+Retrieves a readable stream for the object at the given reference's location. This API is only available in Node.js.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+##### maxDownloadSizeBytes?
+
+`number`
+
+Optional. Maximum size in bytes to retrieve.
+
+#### Returns
+
+`ReadableStream`
+
+A NodeJS ReadableStream.
+
+***
+
+### list()
+
+> **list**(`storageRef`, `options?`): `Promise`\<[`ListResult`](namespaces/FirebaseStorageTypes.mdx#listresult)\>
+
+Defined in: [modular/index.d.ts:156](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L156)
+
+Lists items and prefixes under the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) under which to list items.
+
+##### options?
+
+[`ListOptions`](namespaces/FirebaseStorageTypes.mdx#listoptions)
+
+Optional. Configuration for listing.
+
+#### Returns
+
+`Promise`\<[`ListResult`](namespaces/FirebaseStorageTypes.mdx#listresult)\>
+
+A promise resolving to a [ListResult](namespaces/FirebaseStorageTypes.mdx#listresult).
+
+***
+
+### listAll()
+
+> **listAll**(`storageRef`): `Promise`\<[`ListResult`](namespaces/FirebaseStorageTypes.mdx#listresult)\>
+
+Defined in: [modular/index.d.ts:163](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L163)
+
+Lists all items and prefixes under the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) under which to list items.
+
+#### Returns
+
+`Promise`\<[`ListResult`](namespaces/FirebaseStorageTypes.mdx#listresult)\>
+
+A promise resolving to a [ListResult](namespaces/FirebaseStorageTypes.mdx#listresult).
+
+***
+
+### putFile()
+
+> **putFile**(`storageRef`, `filePath`, `metadata?`): [`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+Defined in: [modular/index.d.ts:246](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L246)
+
+Puts a file from a local disk onto the storage bucket at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) where the file should be uploaded.
+
+##### filePath
+
+`string`
+
+The local file path of the file to upload.
+
+##### metadata?
+
+[`SettableMetadata`](namespaces/FirebaseStorageTypes.mdx#settablemetadata)
+
+Optional. Metadata to associate with the uploaded file.
+
+#### Returns
+
+[`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+A [Task](namespaces/FirebaseStorageTypes.mdx#task) associated with the upload process.
+
+***
+
+### ref()
+
+> **ref**(`storage`, `path?`): [`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+Defined in: [modular/index.d.ts:96](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L96)
+
+Creates a [Reference](namespaces/FirebaseStorageTypes.mdx#reference) from a given path or URL.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance.
+
+##### path?
+
+`string`
+
+Optional. A string pointing to a location within the storage bucket.
+
+#### Returns
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+A new [Reference](namespaces/FirebaseStorageTypes.mdx#reference).
+
+***
+
+### refFromURL()
+
+> **refFromURL**(`storage`, `url`): [`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+Defined in: [modular/index.d.ts:223](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L223)
+
+Creates a [Reference](namespaces/FirebaseStorageTypes.mdx#reference) from a storage bucket URL.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance.
+
+##### url
+
+`string`
+
+A URL pointing to a file or location in a storage bucket.
+
+#### Returns
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+A [Reference](namespaces/FirebaseStorageTypes.mdx#reference) pointing to the specified URL.
+
+***
+
+### setMaxDownloadRetryTime()
+
+> **setMaxDownloadRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:276](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L276)
+
+Sets the maximum time in milliseconds to retry download operations if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance.
+
+##### time
+
+`number`
+
+The new maximum download retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setMaxOperationRetryTime()
+
+> **setMaxOperationRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:230](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L230)
+
+Sets the maximum time in milliseconds to retry operations other than upload and download if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance.
+
+##### time
+
+`number`
+
+The new maximum operation retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### setMaxUploadRetryTime()
+
+> **setMaxUploadRetryTime**(`storage`, `time`): `Promise`\<`void`\>
+
+Defined in: [modular/index.d.ts:237](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L237)
+
+Sets the maximum time in milliseconds to retry upload operations if a failure occurs.
+
+#### Parameters
+
+##### storage
+
+[`Module`](namespaces/FirebaseStorageTypes.mdx#module)
+
+The [Storage](namespaces/FirebaseStorageTypes.mdx#module) instance.
+
+##### time
+
+`number`
+
+The new maximum upload retry time in milliseconds.
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### toString()
+
+> **toString**(`storageRef`): `string`
+
+Defined in: [modular/index.d.ts:261](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L261)
+
+Returns a gs:// URL for the object at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+#### Returns
+
+`string`
+
+The URL as a string.
+
+***
+
+### updateMetadata()
+
+> **updateMetadata**(`storageRef`, `metadata`): `Promise`\<[`FullMetadata`](namespaces/FirebaseStorageTypes.mdx#fullmetadata)\>
+
+Defined in: [modular/index.d.ts:171](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L171)
+
+Updates metadata for the object at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) to the object.
+
+##### metadata
+
+[`SettableMetadata`](namespaces/FirebaseStorageTypes.mdx#settablemetadata)
+
+The metadata to update.
+
+#### Returns
+
+`Promise`\<[`FullMetadata`](namespaces/FirebaseStorageTypes.mdx#fullmetadata)\>
+
+A promise resolving to the updated [FullMetadata](namespaces/FirebaseStorageTypes.mdx#fullmetadata).
+
+***
+
+### uploadBytes()
+
+> **uploadBytes**(`storageRef`, `data`, `metadata?`): `Promise`\<[`TaskResult`](namespaces/FirebaseStorageTypes.mdx#taskresult)\>
+
+Defined in: [modular/index.d.ts:183](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L183)
+
+Uploads data to the object's location at the given reference. The upload is not resumable.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) where the data should be uploaded.
+
+##### data
+
+`Blob` \| `ArrayBuffer` \| `Uint8Array`\<`ArrayBufferLike`\>
+
+The data to upload.
+
+##### metadata?
+
+[`SettableMetadata`](namespaces/FirebaseStorageTypes.mdx#settablemetadata)
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+`Promise`\<[`TaskResult`](namespaces/FirebaseStorageTypes.mdx#taskresult)\>
+
+A promise resolving to a [TaskResult](namespaces/FirebaseStorageTypes.mdx#taskresult).
+
+***
+
+### uploadBytesResumable()
+
+> **uploadBytesResumable**(`storageRef`, `data`, `metadata?`): [`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+Defined in: [modular/index.d.ts:196](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L196)
+
+Initiates a resumable upload session for the data to the object's location at the given reference.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) where the data should be uploaded.
+
+##### data
+
+`Blob` \| `ArrayBuffer` \| `Uint8Array`\<`ArrayBufferLike`\>
+
+The data to upload.
+
+##### metadata?
+
+[`SettableMetadata`](namespaces/FirebaseStorageTypes.mdx#settablemetadata)
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+[`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+A [Task](namespaces/FirebaseStorageTypes.mdx#task) associated with the upload process.
+
+***
+
+### uploadString()
+
+> **uploadString**(`storageRef`, `data`, `format?`, `metadata?`): [`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+Defined in: [modular/index.d.ts:210](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L210)
+
+Uploads a string to the object's location at the given reference. The string format must be specified.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) where the string should be uploaded.
+
+##### data
+
+`string`
+
+The string data to upload.
+
+##### format?
+
+[`StringFormat`](#stringformat)
+
+Optional. The format of the string ('raw', 'base64', 'base64url', 'data_url').
+
+##### metadata?
+
+[`SettableMetadata`](namespaces/FirebaseStorageTypes.mdx#settablemetadata)
+
+Optional. Metadata to associate with the uploaded object.
+
+#### Returns
+
+[`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+A [Task](namespaces/FirebaseStorageTypes.mdx#task) associated with the upload process.
+
+***
+
+### writeToFile()
+
+> **writeToFile**(`storageRef`, `filePath`): [`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+Defined in: [modular/index.d.ts:254](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L254)
+
+Downloads a file to the specified local file path on the device.
+
+#### Parameters
+
+##### storageRef
+
+[`Reference`](namespaces/FirebaseStorageTypes.mdx#reference)
+
+The [Reference](namespaces/FirebaseStorageTypes.mdx#reference) from which the file should be downloaded.
+
+##### filePath
+
+`string`
+
+The local file path where the file should be written.
+
+#### Returns
+
+[`Task`](namespaces/FirebaseStorageTypes.mdx#task)
+
+A [Task](namespaces/FirebaseStorageTypes.mdx#task) associated with the download process.
+
+## Namespaces
+
+- [FirebaseStorageTypes](namespaces/FirebaseStorageTypes.mdx)
+
+## Type Aliases
+
+### StringFormat
+
+> **StringFormat** = *typeof* [`StringFormat`](#stringformat-1)\[keyof *typeof* [`StringFormat`](#stringformat-1)\]
+
+Defined in: [modular/index.d.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L32)
+
+Union of literal string values in StringFormat "enum" object
+
+## Variables
+
+### default
+
+> `const` **default**: `StorageNamespace`
+
+Defined in: [index.d.ts:1159](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1159)
+
+***
+
+### firebase
+
+> `const` **firebase**: [`Module`](../app/namespaces/ReactNativeFirebase.mdx#module) & `object`
+
+Defined in: [index.d.ts:1161](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1161)
+
+#### Type Declaration
+
+##### storage
+
+> **storage**: *typeof* [`default`](#default)
+
+##### app()
+
+> **app**(`name?`): [`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+###### Parameters
+
+###### name?
+
+`string`
+
+###### Returns
+
+[`FirebaseApp`](../app/namespaces/ReactNativeFirebase.mdx#firebaseapp) & `object`
+
+***
+
+### StringFormat
+
+> `const` **StringFormat**: [`StringFormat`](namespaces/FirebaseStorageTypes.mdx#stringformat-1)
+
+Defined in: [modular/index.d.ts:32](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L32)
+
+***
+
+### TaskEvent
+
+> `const` **TaskEvent**: [`TaskEvent`](namespaces/FirebaseStorageTypes.mdx#taskevent-1)
+
+Defined in: [modular/index.d.ts:33](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L33)
+
+***
+
+### TaskState
+
+> `const` **TaskState**: [`TaskState`](namespaces/FirebaseStorageTypes.mdx#taskstate-1)
+
+Defined in: [modular/index.d.ts:34](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/modular/index.d.ts#L34)
diff --git a/docs/reference/@react-native-firebase/storage/namespaces/FirebaseStorageTypes.mdx b/docs/reference/@react-native-firebase/storage/namespaces/FirebaseStorageTypes.mdx
new file mode 100644
index 0000000000..fbebb0fa0d
--- /dev/null
+++ b/docs/reference/@react-native-firebase/storage/namespaces/FirebaseStorageTypes.mdx
@@ -0,0 +1,1873 @@
+[**React Native Firebase**](../../../README.mdx)
+
+***
+
+[React Native Firebase](../../../packages.mdx) / [@react-native-firebase/storage](../README.mdx) / FirebaseStorageTypes
+
+# FirebaseStorageTypes
+
+Firebase Cloud Storage package for React Native.
+
+#### Example 1
+
+Access the firebase export from the `storage` package:
+
+```js
+import { firebase } from '@react-native-firebase/storage';
+
+// firebase.storage().X
+```
+
+#### Example 2
+
+Using the default export from the `storage` package:
+
+```js
+import storage from '@react-native-firebase/storage';
+
+// storage().X
+```
+
+#### Example 3
+
+Using the default export from the `app` package:
+
+```js
+import firebase from '@react-native-firebase/app';
+import '@react-native-firebase/storage';
+
+// firebase.storage().X
+```
+
+## Firebase
+
+storage
+
+## Classes
+
+### Module
+
+Defined in: [index.d.ts:1023](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1023)
+
+The Cloud Storage service is available for the default app, a given app or a specific storage bucket.
+
+#### Example 1
+
+Get the storage instance for the **default app**:
+
+```js
+const storageForDefaultApp = firebase.storage();
+```
+
+#### Example 2
+
+Get the storage instance for a **secondary app**:
+
+```js
+const otherApp = firebase.app('otherApp');
+const storageForOtherApp = firebase.storage(otherApp);
+```
+
+#### Example 3
+
+Get the storage instance for a **specific storage bucket**:
+
+```js
+const defaultApp = firebase.app();
+const storageForBucket = defaultApp.storage('gs://another-bucket-url');
+
+const otherApp = firebase.app('otherApp');
+const storageForOtherAppBucket = otherApp.storage('gs://another-bucket-url');
+```
+
+#### Extends
+
+- [`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule)
+
+#### Constructors
+
+##### Constructor
+
+> **new Module**(): [`Module`](#module)
+
+###### Returns
+
+[`Module`](#module)
+
+###### Inherited from
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`constructor`](../../app/namespaces/ReactNativeFirebase.mdx#constructor)
+
+#### Methods
+
+##### ref()
+
+> **ref**(`path?`): [`Reference`](#reference)
+
+Defined in: [index.d.ts:1113](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1113)
+
+Returns a new storage.Reference instance.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('cats.gif');
+```
+
+###### Parameters
+
+###### path?
+
+`string`
+
+An optional string pointing to a location on the storage bucket. If no path
+is provided, the returned reference will be the bucket root path.
+
+###### Returns
+
+[`Reference`](#reference)
+
+##### refFromURL()
+
+> **refFromURL**(`url`): [`Reference`](#reference)
+
+Defined in: [index.d.ts:1132](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1132)
+
+Returns a new storage.Reference instance from a storage bucket URL.
+
+#### Example
+
+```js
+const gsUrl = 'gs://react-native-firebase-testing/cats.gif';
+const httpUrl = 'https://firebasestorage.googleapis.com/v0/b/react-native-firebase-testing.appspot.com/o/cats.gif';
+
+const refFromGsUrl = firebase.storage().refFromURL(gsUrl);
+// or
+const refFromHttpUrl = firebase.storage().refFromURL(httpUrl);
+```
+
+###### Parameters
+
+###### url
+
+`string`
+
+A storage bucket URL pointing to a single file or location. Must be either a `gs://` url or an `http` url,
+e.g. `gs://assets/logo.png` or `https://firebasestorage.googleapis.com/v0/b/react-native-firebase-testing.appspot.com/o/cats.gif`.
+
+###### Returns
+
+[`Reference`](#reference)
+
+##### setMaxDownloadRetryTime()
+
+> **setMaxDownloadRetryTime**(`time`): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:1075](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1075)
+
+Sets the maximum time in milliseconds to retry a download if a failure occurs.
+
+#### Example
+
+```js
+await firebase.storage().setMaxDownloadRetryTime(25000);
+```
+
+###### Parameters
+
+###### time
+
+`number`
+
+The new maximum download retry time in milliseconds.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setMaxOperationRetryTime()
+
+> **setMaxOperationRetryTime**(`time`): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:1099](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1099)
+
+Sets the maximum time in milliseconds to retry operations other than upload and download if a failure occurs.
+
+#### Example
+
+```js
+await firebase.storage().setMaxOperationRetryTime(5000);
+```
+
+###### Parameters
+
+###### time
+
+`number`
+
+The new maximum operation retry time in milliseconds.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### setMaxUploadRetryTime()
+
+> **setMaxUploadRetryTime**(`time`): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:1051](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1051)
+
+Sets the maximum time in milliseconds to retry an upload if a failure occurs.
+
+#### Example
+
+```js
+await firebase.storage().setMaxUploadRetryTime(25000);
+```
+
+###### Parameters
+
+###### time
+
+`number`
+
+The new maximum upload retry time in milliseconds.
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### useEmulator()
+
+> **useEmulator**(`host`, `port`): `void`
+
+Defined in: [index.d.ts:1147](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1147)
+
+Modify this Storage instance to communicate with the Firebase Storage emulator.
+This must be called synchronously immediately following the first call to firebase.storage().
+Do not use with production credentials as emulator traffic is not encrypted.
+
+Note: on android, hosts 'localhost' and '127.0.0.1' are automatically remapped to '10.0.2.2' (the
+"host" computer IP address for android emulators) to make the standard development experience easy.
+If you want to use the emulator on a real android device, you will need to specify the actual host
+computer IP address.
+
+###### Parameters
+
+###### host
+
+`string`
+
+###### port
+
+`number`
+
+###### Returns
+
+`void`
+
+#### Properties
+
+##### app
+
+> **app**: [`FirebaseApp`](../../app/namespaces/ReactNativeFirebase.mdx#firebaseapp)
+
+Defined in: [index.d.ts:1027](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1027)
+
+The current `FirebaseApp` instance for this Firebase service.
+
+###### Overrides
+
+[`FirebaseModule`](../../app/namespaces/ReactNativeFirebase.mdx#abstract-firebasemodule).[`app`](../../app/namespaces/ReactNativeFirebase.mdx#app)
+
+##### maxDownloadRetryTime
+
+> **maxDownloadRetryTime**: `number`
+
+Defined in: [index.d.ts:1062](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1062)
+
+Returns the current maximum time in milliseconds to retry a download if a failure occurs.
+
+#### Example
+
+```js
+const downloadRetryTime = firebase.storage().maxUploadRetryTime;
+```
+
+##### maxOperationRetryTime
+
+> **maxOperationRetryTime**: `number`
+
+Defined in: [index.d.ts:1086](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1086)
+
+Returns the current maximum time in milliseconds to retry operations other than upload and download if a failure occurs.
+
+#### Example
+
+```js
+const maxOperationRetryTime = firebase.storage().maxOperationRetryTime;
+```
+
+##### maxUploadRetryTime
+
+> **maxUploadRetryTime**: `number`
+
+Defined in: [index.d.ts:1038](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L1038)
+
+Returns the current maximum time in milliseconds to retry an upload if a failure occurs.
+
+#### Example
+
+```js
+const uploadRetryTime = firebase.storage().maxUploadRetryTime;
+```
+
+## Interfaces
+
+### EmulatorMockTokenOptions
+
+Defined in: [index.d.ts:983](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L983)
+
+Storage Emulator options. Web only.
+
+#### Properties
+
+##### mockUserToken?
+
+> `optional` **mockUserToken?**: `string`
+
+Defined in: [index.d.ts:987](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L987)
+
+the mock auth token to use for unit testing Security Rules.
+
+***
+
+### FullMetadata
+
+Defined in: [index.d.ts:348](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L348)
+
+The full readable metadata returned by `TaskSnapshot.metadata` or `StorageReference.getMetadata()`.
+
+#### Extends
+
+- [`SettableMetadata`](#settablemetadata)
+
+#### Properties
+
+##### bucket
+
+> **bucket**: `string`
+
+Defined in: [index.d.ts:363](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L363)
+
+The bucket this storage object is contained in.
+
+#### Example Value
+
+```
+gs://my-project-storage-bucket
+```
+
+##### cacheControl?
+
+> `optional` **cacheControl?**: `string` \| `null`
+
+Defined in: [index.d.ts:273](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L273)
+
+The 'Cache-Control' HTTP header that will be set on the storage object when it's requested.
+
+#### Example 1
+
+To turn off caching, you can set the following cacheControl value.
+
+```js
+{
+ cacheControl: 'no-store',
+}
+```
+
+#### Example 2
+
+To aggressively cache an object, e.g. static assets, you can set the following cacheControl value.
+
+```js
+{
+ cacheControl: 'public, max-age=31536000',
+}
+```
+
+[Learn more about this header on Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cache-Control)
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`cacheControl`](#cachecontrol-1)
+
+##### contentDisposition?
+
+> `optional` **contentDisposition?**: `string` \| `null`
+
+Defined in: [index.d.ts:280](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L280)
+
+The 'Content-Disposition' HTTP header that will be set on the storage object when it's requested.
+
+[Learn more about this header on Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition)
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`contentDisposition`](#contentdisposition-1)
+
+##### contentEncoding?
+
+> `optional` **contentEncoding?**: `string` \| `null`
+
+Defined in: [index.d.ts:287](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L287)
+
+The 'Content-Encoding' HTTP header that will be used on the storage object when it's requested.
+
+[Learn more about this header on Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding)
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`contentEncoding`](#contentencoding-1)
+
+##### contentLanguage?
+
+> `optional` **contentLanguage?**: `string` \| `null`
+
+Defined in: [index.d.ts:294](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L294)
+
+The 'Content-Language' HTTP header that will be set on the storage object when it's requested.
+
+[Learn more about this header on Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Language)
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`contentLanguage`](#contentlanguage-1)
+
+##### contentType?
+
+> `optional` **contentType?**: `string` \| `null`
+
+Defined in: [index.d.ts:317](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L317)
+
+The 'Content-Type' HTTP header that will be set on the object when it's requested.
+
+This is used to indicate the media type (or MIME type) of the object. When uploading a file
+Firebase Cloud Storage for React Native will attempt to automatically detect this if `contentType`
+is not already set, if it fails to detect a media type it will default to `application/octet-stream`.
+
+For `DATA_URL` string formats uploaded via `putString` this will also be automatically extracted if available.
+
+#### Example
+
+Setting the content type as JSON, e.g. for when uploading a JSON string via `putString`.
+
+```js
+{
+ contentType: 'application/json',
+}
+```
+
+[Learn more about this header on Mozilla.](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type)
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`contentType`](#contenttype-1)
+
+##### customMetadata?
+
+> `optional` **customMetadata?**: \{\[`key`: `string`\]: `string`; \} \| `null`
+
+Defined in: [index.d.ts:340](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L340)
+
+Additional user-defined custom metadata for this storage object.
+
+All values must be strings. Set to null to delete all. Any keys ommitted during update will be removed.
+
+#### Example
+
+Adding a user controlled NSFW meta data field.
+
+```js
+{
+ customMetadata: {
+ 'nsfw': 'true'
+ },
+}
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`customMetadata`](#custommetadata-1)
+
+##### fullPath
+
+> **fullPath**: `string`
+
+Defined in: [index.d.ts:374](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L374)
+
+The full path to this storage object in its bucket.
+
+#### Example Value
+
+```
+invertase/logo.png
+```
+
+##### generation
+
+> **generation**: `string`
+
+Defined in: [index.d.ts:381](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L381)
+
+Storage object generation values enable users to uniquely identify data resources, e.g. object versioning.
+
+Read more on generation on the [Google Cloud Storage documentation](https://cloud.google.com/storage/docs/generations-preconditions).
+
+##### md5hash?
+
+> `optional` **md5hash?**: `string` \| `null`
+
+Defined in: [index.d.ts:322](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L322)
+
+You may specify the md5hash of the file in metadata on upload only. It may not be updated via updateMetadata
+
+###### Inherited from
+
+[`SettableMetadata`](#settablemetadata).[`md5hash`](#md5hash-2)
+
+##### md5Hash
+
+> **md5Hash**: `string` \| `null`
+
+Defined in: [index.d.ts:352](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L352)
+
+A Base64-encoded MD5 hash of the storage object being uploaded.
+
+##### metageneration
+
+> **metageneration**: `string`
+
+Defined in: [index.d.ts:388](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L388)
+
+Storage object metageneration values enable users to uniquely identify data resources, e.g. object versioning.
+
+Read more on metageneration on the [Google Cloud Storage documentation](https://cloud.google.com/storage/docs/generations-preconditions).
+
+##### name
+
+> **name**: `string`
+
+Defined in: [index.d.ts:399](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L399)
+
+The short name of storage object in its bucket, e.g. it's file name.
+
+#### Example Value
+
+```
+logo.png
+```
+
+##### size
+
+> **size**: `number`
+
+Defined in: [index.d.ts:404](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L404)
+
+The size of this storage object in bytes.
+
+##### timeCreated
+
+> **timeCreated**: `string`
+
+Defined in: [index.d.ts:415](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L415)
+
+A date string representing when this storage object was created.
+
+#### Example Value
+
+```
+2019-05-02T00:34:56.264Z
+```
+
+##### updated
+
+> **updated**: `string`
+
+Defined in: [index.d.ts:426](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L426)
+
+A date string representing when this storage object was last updated.
+
+#### Example Value
+
+```
+2019-05-02T00:35:56.264Z
+```
+
+***
+
+### ListOptions
+
+Defined in: [index.d.ts:946](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L946)
+
+The options `list()` accepts.
+
+#### Properties
+
+##### maxResults?
+
+> `optional` **maxResults?**: `number`
+
+Defined in: [index.d.ts:950](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L950)
+
+If set, limits the total number of `prefixes` and `items` to return. The default and maximum maxResults is 1000.
+
+##### pageToken?
+
+> `optional` **pageToken?**: `string`
+
+Defined in: [index.d.ts:955](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L955)
+
+The `nextPageToken` from a previous call to `list()`. If provided, listing is resumed from the previous position.
+
+***
+
+### ListResult
+
+Defined in: [index.d.ts:961](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L961)
+
+Result returned by `list()`.
+
+#### Properties
+
+##### items
+
+> **items**: [`Reference`](#reference)[]
+
+Defined in: [index.d.ts:965](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L965)
+
+Objects in this directory. You can call `getMetadata()` and `getDownloadUrl()` on them.
+
+##### nextPageToken
+
+> **nextPageToken**: `string` \| `null`
+
+Defined in: [index.d.ts:970](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L970)
+
+If set, there might be more results for this list. Use this token to resume the list.
+
+##### prefixes
+
+> **prefixes**: [`Reference`](#reference)[]
+
+Defined in: [index.d.ts:977](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L977)
+
+References to prefixes (sub-folders). You can call `list()` on them to get its contents.
+
+Folders are implicit based on '/' in the object paths. For example, if a bucket has two objects '/a/b/1' and '/a/b/2', list('/a') will return '/a/b' as a prefix.
+
+***
+
+### Reference
+
+Defined in: [index.d.ts:450](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L450)
+
+Represents a reference to a Google Cloud Storage object in React Native Firebase.
+
+A reference can be used to upload and download storage objects, get/set storage object metadata, retrieve storage object download urls and delete storage objects.
+
+#### Example 1
+
+Get a reference to a specific storage path.
+
+```js
+const ref = firebase.storage().ref('invertase/logo.png');
+```
+
+#### Example 2
+
+Get a reference to a specific storage path on another bucket in the same firebase project.
+
+```js
+const ref = firebase.storage().refFromURL('gs://other-bucket/invertase/logo.png');
+```
+
+#### Methods
+
+##### child()
+
+> **child**(`path`): [`Reference`](#reference)
+
+Defined in: [index.d.ts:501](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L501)
+
+Returns a reference to a relative path from this reference.
+
+#### Example
+
+```js
+const parent = firebase.storage().ref('invertase');
+const ref = parent.child('logo.png');
+```
+
+###### Parameters
+
+###### path
+
+`string`
+
+The relative path from this reference. Leading, trailing, and consecutive slashes are removed.
+
+###### Returns
+
+[`Reference`](#reference)
+
+##### delete()
+
+> **delete**(): `Promise`\<`void`\>
+
+Defined in: [index.d.ts:513](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L513)
+
+Deletes the object at this reference's location.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/logo.png');
+await ref.delete();
+```
+
+###### Returns
+
+`Promise`\<`void`\>
+
+##### getDownloadURL()
+
+> **getDownloadURL**(): `Promise`\<`string`\>
+
+Defined in: [index.d.ts:525](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L525)
+
+Fetches a long lived download URL for this object.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/logo.png');
+const url = await ref.getDownloadURL();
+```
+
+###### Returns
+
+`Promise`\<`string`\>
+
+##### getMetadata()
+
+> **getMetadata**(): `Promise`\<[`FullMetadata`](#fullmetadata)\>
+
+Defined in: [index.d.ts:538](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L538)
+
+Fetches metadata for the object at this location, if one exists.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/logo.png');
+const metadata = await ref.getMetadata();
+console.log('Cache control: ', metadata.cacheControl);
+```
+
+###### Returns
+
+`Promise`\<[`FullMetadata`](#fullmetadata)\>
+
+##### list()
+
+> **list**(`options?`): `Promise`\<[`ListResult`](#listresult)\>
+
+Defined in: [index.d.ts:563](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L563)
+
+List items (files) and prefixes (folders) under this storage reference.
+
+List API is only available for Firebase Rules Version 2.
+
+GCS is a key-blob store. Firebase Storage imposes the semantic of '/' delimited folder structure.
+Refer to GCS's List API if you want to learn more.
+
+To adhere to Firebase Rules's Semantics, Firebase Storage does not support objects whose paths
+end with "/" or contain two consecutive "/"s. Firebase Storage List API will filter these unsupported objects.
+list() may fail if there are too many unsupported objects in the bucket.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('/');
+const results = await ref.list({
+ maxResults: 30,
+});
+```
+
+###### Parameters
+
+###### options?
+
+[`ListOptions`](#listoptions)
+
+An optional ListOptions interface.
+
+###### Returns
+
+`Promise`\<[`ListResult`](#listresult)\>
+
+##### listAll()
+
+> **listAll**(): `Promise`\<[`ListResult`](#listresult)\>
+
+Defined in: [index.d.ts:581](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L581)
+
+List all items (files) and prefixes (folders) under this storage reference.
+
+This is a helper method for calling list() repeatedly until there are no more results. The default pagination size is 1000.
+
+Note: The results may not be consistent if objects are changed while this operation is running.
+
+Warning: `listAll` may potentially consume too many resources if there are too many results.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('/');
+const results = await ref.listAll();
+```
+
+###### Returns
+
+`Promise`\<[`ListResult`](#listresult)\>
+
+##### put()
+
+> **put**(`data`, `metadata?`): [`Task`](#task)
+
+Defined in: [index.d.ts:632](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L632)
+
+Puts data onto the storage bucket.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/new-logo.png');
+const task = ref.put(BLOB, {
+ cacheControl: 'no-store', // disable caching
+});
+```
+
+###### Parameters
+
+###### data
+
+`Blob` \| `ArrayBuffer` \| `Uint8Array`\<`ArrayBufferLike`\>
+
+The data to upload to the storage bucket at the reference location.
+
+###### metadata?
+
+[`SettableMetadata`](#settablemetadata)
+
+###### Returns
+
+[`Task`](#task)
+
+##### putFile()
+
+> **putFile**(`localFilePath`, `metadata?`): [`Task`](#task)
+
+Defined in: [index.d.ts:599](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L599)
+
+Puts a file from local disk onto the storage bucket.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/new-logo.png');
+const path = `${firebase.utils.FilePath.DOCUMENT_DIRECTORY}/new-logo.png`;
+const task = ref.putFile(path, {
+ cacheControl: 'no-store', // disable caching
+});
+```
+
+###### Parameters
+
+###### localFilePath
+
+`string`
+
+The local file path to upload to the bucket at the reference location.
+
+###### metadata?
+
+[`SettableMetadata`](#settablemetadata)
+
+Any additional `SettableMetadata` for this task.
+
+###### Returns
+
+[`Task`](#task)
+
+##### putString()
+
+> **putString**(`data`, `format?`, `metadata?`): [`Task`](#task)
+
+Defined in: [index.d.ts:650](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L650)
+
+Puts a string on the storage bucket. Depending on the string type, set a storage.StringFormat type.
+
+#### Example
+
+```js
+const ref = firebase.storage().ref('invertase/new-logo.png');
+const task = ref.putString('PEZvbyBCYXI+', firebase.storage.StringFormat.BASE64, {
+ cacheControl: 'no-store', // disable caching
+});
+```
+
+###### Parameters
+
+###### data
+
+`string`
+
+The string data, must match the format provided.
+
+###### format?
+
+`"raw"` \| `"base64"` \| `"base64url"` \| `"data_url"`
+
+The format type of the string, e.g. a Base64 format string.
+
+###### metadata?
+
+[`SettableMetadata`](#settablemetadata)
+
+Any additional `SettableMetadata` for this task.
+
+###### Returns
+
+[`Task`](#task)
+
+##### toString()
+
+> **toString**(): `string`
+
+Defined in: [index.d.ts:487](https://github.com/invertase/react-native-firebase/blob/main/packages/storage/lib/index.d.ts#L487)
+
+Returns a gs:// URL for this object in the form `gs://///