- 
    Type:
Sub-task
 - 
    Resolution: Fixed
 - 
    Priority:
Unknown
 - 
    Affects Version/s: None
 - 
    Component/s: None
 
- 
        0
 - 
        2
 - 
        Not Needed
 - 
        None
 
- 
        Not Needed
 - 
        
 
- 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 - 
        None
 
Use Case
As a driver engineer,
I want to export all the same interfaces and properties from the driver as from mongodb-client-encryption v2,
So that we do not break users more than expected with the FLE refactor.
User Impact
n/a
Dependencies
- n/a
 
Unknowns
- questions that need to be answered to determine implementation
 
Acceptance Criteria
List of publicly exported APIs from mongodb-client-encryption@2
- type ClientEncryptionDataKeyProvider
 - interface DataKey
 - class MongoCryptError
 - class MongoCryptCreateEncryptedCollectionError
 - class MongoCryptCreateDataKeyError
 - class MongoCryptAzureKMSRequestError
 - class MongoCryptKMSRequestNetworkTimeoutError
 - class MongoCryptInvalidArgumentError
 - interface ProxyOptions
 - interface ClientEncryptionCreateDataKeyCallback (omitted, we're dropping support for callbacks)
 - interface ClientEncryptionEncryptCallback (omitted, we're dropping support for callbacks)
 - interface ClientEncryptionDecryptCallback (omitted, we're dropping support for callbacks)
 - interface KMSProviders
 - interface ClientEncryptionTlsOptions
 - interface ClientEncryptionOptions
 - interface AWSEncryptionKeyOptions
 - interface GCPEncryptionKeyOptions
 - interface AzureEncryptionKeyOptions
 - interface ClientEncryptionCreateDataKeyProviderOptions
 - interface ClientEncryptionRewrapManyDataKeyProviderOptions
 - interface ClientEncryptionRewrapManyDataKeyResult
 - interface ClientEncryptionEncryptOptions
 - class ClientEncryption
 
https://github.com/mongodb/libmongocrypt/blob/8588825112a93145bf82b4b7519070c101c45a43/bindings/node/index.d.ts contains all the types we exposed
`index.js` for the bindings https://github.com/mongodb/libmongocrypt/blob/8588825112a93145bf82b4b7519070c101c45a43/bindings/node/lib/index.js
Notably, we will no longer export the `extension` method (used to inject `mongodb` into libmongocrypt) and the types used for Callbacks.
Implementation Requirements
- Determine what was publicly exposed from `mongodb-client-encryption` v2 and document the list in the ticket
	
 - Ensure each publicly exposed type / class / value from v2 is exported from the driver.
 - Ensure the exported types are present in the generated driver API docs
 
Testing Requirements
- n/a
 
Documentation Requirements
- n/a (there's a ticket to address documentation following this)
 
Follow Up Requirements
- n/a