# UploadFileInput

```ts
type UploadFileInput = {
  mime: string;
  name?: string;
  size?: number;
  uri: string;
};
```

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

Public types for @nitida/asset-uploader-expo.

Mirrors @nitida/asset-uploader-web/src/upload-task.ts so call sites are
identical:

  const task = new UploadTask({ uri, mime, tenantCode, endpoint });
  task.on('progress', ({ ratio }) => ...)
  await task.start();

The `file: File` of the web API becomes `{ uri, mime, name?, size? }` on
mobile because there is no `File` blob — the picker hands us a content://
or file:// URI from expo-image-picker / expo-document-picker.

## Properties

### mime

```ts
mime: string;
```

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

MIME type. Pickers usually report it; required to drive presets server-side.

***

### name?

```ts
optional name?: string;
```

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

Optional friendly name. Defaults to the URI's basename.

***

### size?

```ts
optional size?: number;
```

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

Optional pre-computed size in bytes. Native side will stat() if omitted.

***

### uri

```ts
uri: string;
```

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

Local URI from a picker (file://, content://, ph://, etc).