[**CameraKit Web SDK v1.15.0**](../README.md)

***

[CameraKit Web SDK](../globals.md) / CameraKit

# Class: CameraKit

The entry point to the CameraKit SDK's API. Most of CameraKit's features are accessed via this class.

Applications obtain an instance of CameraKit by calling [bootstrapCameraKit](../functions/bootstrapCameraKit.md).

## Example

```ts
const cameraKit = await bootstrapCameraKit(config)
```

Then this class can be used to:
- Create a [CameraKitSession](CameraKitSession.md) instance, which provides the API for setting up media inputs, applying Lenses,
and obtaining rendered `<canvas>` outputs.
- Query for lenses using [LensRepository](LensRepository.md).
- Listen for lens usage metrics events using MetricsEventTarget.

## Properties

### ~~lenses~~

> `readonly` **lenses**: `object`

#### ~~repository~~

> **repository**: [`LensRepository`](LensRepository.md)

#### Deprecated

Use [lensRepository](CameraKit.md#lensrepository)

***

### metrics

> `readonly` **metrics**: [`TypedEventTarget`](TypedEventTarget.md)\<[`LensMetricsEvents`](../type-aliases/LensMetricsEvents.md)\>

Business metrics (e.g. each time a lens is viewed) are emitted here.

***

### lensRepository

> `readonly` **lensRepository**: [`LensRepository`](LensRepository.md)

Used to query for lenses and lens groups.

## Methods

### createSession()

> **createSession**(`options`): `Promise`\<[`CameraKitSession`](CameraKitSession.md)\>

Create a CameraKitSession.

This initializes the rendering engine and returns a [CameraKitSession](CameraKitSession.md) instance, which provides access
to Lens rendering.

#### Parameters

##### options

[`CreateSessionOptions`](../interfaces/CreateSessionOptions.md) = `{}`

#### Returns

`Promise`\<[`CameraKitSession`](CameraKitSession.md)\>

#### Example

```ts
const cameraKit = await bootstrapCameraKit(config)
const session = await cameraKit.createSession()

const lens = await cameraKit.lensRepository.loadLens(lensId, groupId)
session.applyLens(lens)
```

***

### destroy()

> **destroy**(): `Promise`\<`void`\>

Destroys all sessions and frees all resources.

#### Returns

`Promise`\<`void`\>
