# UploadTaskOptions

```ts
type UploadTaskOptions = {
  apiHeaders?: Record<string, string>;
  authToken?: string;
  concurrency?: number;
  endpoint: string;
  file: UploadFileInput;
  originalBytes?: number;
  partSize?: number;
  presets?: string[];
  tenantCode: string;
};
```

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

## Properties

### apiHeaders?

```ts
optional apiHeaders?: Record<string, string>;
```

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

Extra headers sent ONLY on the asset-manager API calls (`/assets/upload-url`,
multipart init/complete, etc.) — never on the direct R2 byte PUT, whose
headers come from the presign response. Used by Expo clients to attach the
Better Auth session `Cookie` (the documented Expo auth pattern), since the
native uploader can't send cookies automatically.

***

### authToken?

```ts
optional authToken?: string;
```

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

Optional bearer token (proxy normally injects this on the wire).

***

### concurrency?

```ts
optional concurrency?: number;
```

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

***

### endpoint

```ts
endpoint: string;
```

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

Asset-manager API base URL. Same field as web.

***

### file

```ts
file: UploadFileInput;
```

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

***

### originalBytes?

```ts
optional originalBytes?: number;
```

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

Pre-compression byte count from the client. Forwarded to the server
so the asset detail UI can show the savings ratio. Set to the size
BEFORE any client-side compression. If you didn't compress (or the
compression inflated and you fell back to the original), pass
`file.size` here so original == uploaded.

***

### partSize?

```ts
optional partSize?: number;
```

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

***

### presets?

```ts
optional presets?: string[];
```

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

Variant presets to generate server-side — e.g. the image responsive
ladder `["thumb","sm","md","lg","xl"]` or video `["poster","video","aiproxy","probe"]`.
Forwarded to `/assets/upload-url` and `/assets/multipart/initiate`. Omit
to inherit the server default (currently `["original"]` only — meaning
responsive/poster variants won't exist and gallery URLs will 404). The
high-level `aq.upload(file, { presets })` sends this; the low-level
UploadTask needs it passed explicitly. Kept as `string[]` (server
validates names) so newer presets like `probe` don't need a type bump.

***

### tenantCode

```ts
tenantCode: string;
```

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