[CameraKit Web SDK - v0.22.0](../README.md) / [Exports](../modules.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](../modules.md#bootstrapcamerakit).

**`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.

## Table of contents

### Properties

- [lenses](CameraKit.md#lenses)
- [metrics](CameraKit.md#metrics)
- [lensRepository](CameraKit.md#lensrepository)

### Methods

- [createSession](CameraKit.md#createsession)
- [destroy](CameraKit.md#destroy)

## Properties

### lenses

• `Readonly` **lenses**: `Object`

**`Deprecated`**

Use [lensRepository](CameraKit.md#lensrepository)

#### Type declaration

| Name | Type |
| :------ | :------ |
| `repository` | [`LensRepository`](LensRepository.md) |

___

### metrics

• `Readonly` **metrics**: [`TypedEventTarget`](TypedEventTarget.md)\<[`LensMetricsEvents`](../modules.md#lensmetricsevents)\>

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

| Name | Type |
| :------ | :------ |
| `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`\>
