# DownloadsManager

**Kind**: interface | **Module**: [io.Connect Desktop](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/index.md)

**Source**: https://docs.interop.io/desktop/reference/javascript/io.connect desktop/downloadsmanager/index.html

Download manager API exposed on window.glue42gd.downloads

## Methods

### cancel

Cancel a download item by ID

```ts
(id: string) => Promise<void>
```

**Parameters**

- **`id`** (`string`, required)

**Returns**: `Promise<void>`

### clearDownloadList

Clear the download list

```ts
() => Promise<void>
```

**Returns**: `Promise<void>`

### getAutoSave

Retrieves the current auto save status for downloads.
If the returned `Promise` resolves with `true`, auto saving is enabled.

*Since: io.Connect Desktop 10.3, @interopio/desktop 6.21.0*

```ts
() => Promise<boolean>
```

**Returns**: `Promise<boolean>`

### getSavePath

Get the save path for downloads

```ts
() => Promise<{ path: string }>
```

**Returns**: `Promise<{ path: string }>`

### getSavePathList

Get the list of save paths for downloads

```ts
() => Promise<{ pathList: string[] }>
```

**Returns**: `Promise<{ pathList: string[] }>`

### list

List all download items

```ts
() => Promise<DownloadItem[]>
```

**Returns**: `Promise<DownloadItem[]>`

### onConfigurationChanged

Register a callback for download configuration changes

```ts
(callback: (config: DownloadsConfiguration) => void) => () => void
```

**Parameters**

- **`callback`** (`(config: DownloadsConfiguration) => void`, required)

**Returns**: `() => void`

### onUpdate

Register a callback for download item updates

```ts
(callback: (item: DownloadItem) => void) => () => void
```

**Parameters**

- **`callback`** (`(item: DownloadItem) => void`, required)

**Returns**: `() => void`

### pauseResume

Pause or resume a download item by ID

```ts
(id: string) => Promise<void>
```

**Parameters**

- **`id`** (`string`, required)

**Returns**: `Promise<void>`

### removeItem

Remove a download item by ID

```ts
(id: string) => Promise<void>
```

**Parameters**

- **`id`** (`string`, required)

**Returns**: `Promise<void>`

### setAutoSave

Enables or disables auto saving for downloads.

*Since: io.Connect Desktop 10.3, @interopio/desktop 6.21.0*

```ts
(enabled: boolean) => Promise<void>
```

**Parameters**

- **`enabled`** (`boolean`, required)
  If `true`, will enable auto saving for downloads.

**Returns**: `Promise<void>`

### setSavePath

Set the save path for downloads

```ts
(path: string) => Promise<void>
```

**Parameters**

- **`path`** (`string`, required)

**Returns**: `Promise<void>`

### showInFolder

Show a download item in the folder

```ts
(id: string) => Promise<void>
```

**Parameters**

- **`id`** (`string`, required)

**Returns**: `Promise<void>`

### showOpenDialog

Show an open dialog for downloads

```ts
(options: OpenDialogOptions) => Promise<OpenDialogReturnValue>
```

**Parameters**

- **`options`** (`OpenDialogOptions`, required)

**Returns**: `Promise<OpenDialogReturnValue>`

## Related types

- [DownloadItem](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/downloaditem/index.md)
- [DownloadsConfiguration](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/downloadsconfiguration/index.md)
- [OpenDialogOptions](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/opendialogoptions/index.md)
- [OpenDialogReturnValue](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/opendialogreturnvalue/index.md)
