# UploadEvents

```ts
type UploadEvents = {
  done: {
     assetId?: string;
     deduped: boolean;
  };
  error: {
     error: Error;
     recoverable: boolean;
  };
  partCompleted: {
     etag: string;
     partNumber: number;
  };
  progress: {
     bytesUploaded: number;
     ratio: number;
     totalBytes: number;
  };
  ready: {
     assetId?: string;
     deduped: boolean;
     sha256: string;
  };
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:27

## Properties

### done

```ts
done: {
  assetId?: string;
  deduped: boolean;
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:32

#### assetId?

```ts
optional assetId?: string;
```

#### deduped

```ts
deduped: boolean;
```

***

### error

```ts
error: {
  error: Error;
  recoverable: boolean;
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:31

#### error

```ts
error: Error;
```

#### recoverable

```ts
recoverable: boolean;
```

***

### partCompleted

```ts
partCompleted: {
  etag: string;
  partNumber: number;
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:29

#### etag

```ts
etag: string;
```

#### partNumber

```ts
partNumber: number;
```

***

### progress

```ts
progress: {
  bytesUploaded: number;
  ratio: number;
  totalBytes: number;
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:28

#### bytesUploaded

```ts
bytesUploaded: number;
```

#### ratio

```ts
ratio: number;
```

#### totalBytes

```ts
totalBytes: number;
```

***

### ready

```ts
ready: {
  assetId?: string;
  deduped: boolean;
  sha256: string;
};
```

Defined in: packages/asset-uploader-expo/src/types.ts:30

#### assetId?

```ts
optional assetId?: string;
```

#### deduped

```ts
deduped: boolean;
```

#### sha256

```ts
sha256: string;
```