# CompressOptions

```ts
type CompressOptions = {
  convertHeic?: boolean;
  convertSize?: number;
  keepOriginalDimensions?: boolean;
  maxHeight?: number;
  maxWidth?: number;
  mimeType?: "image/jpeg" | "image/webp";
  onProgress?: (stage) => void;
  quality?: number;
  strict?: boolean;
};
```

Defined in: packages/sdk/src/index.ts:999

Subset of compressorjs options exposed through the SDK. Re-imported here
to avoid a hard import dependency on `./web` from this top-level module
(the /web subpath uses browser-only APIs). The runtime `compress`
implementation is lazy-loaded so Node/Bun callers don't pay the bundle
cost — see `aq.upload` below.

## Properties

### convertHeic?

```ts
optional convertHeic?: boolean;
```

Defined in: packages/sdk/src/index.ts:1007

***

### convertSize?

```ts
optional convertSize?: number;
```

Defined in: packages/sdk/src/index.ts:1004

***

### keepOriginalDimensions?

```ts
optional keepOriginalDimensions?: boolean;
```

Defined in: packages/sdk/src/index.ts:1006

***

### maxHeight?

```ts
optional maxHeight?: number;
```

Defined in: packages/sdk/src/index.ts:1003

***

### maxWidth?

```ts
optional maxWidth?: number;
```

Defined in: packages/sdk/src/index.ts:1002

***

### mimeType?

```ts
optional mimeType?: "image/jpeg" | "image/webp";
```

Defined in: packages/sdk/src/index.ts:1001

***

### onProgress?

```ts
optional onProgress?: (stage) => void;
```

Defined in: packages/sdk/src/index.ts:1008

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `stage` | `"convertingHeic"` \| `"compressing"` \| `"compressingKeepingDimensions"` |

#### Returns

`void`

***

### quality?

```ts
optional quality?: number;
```

Defined in: packages/sdk/src/index.ts:1000

***

### strict?

```ts
optional strict?: boolean;
```

Defined in: packages/sdk/src/index.ts:1005