# IRange interface · @imqueue/pg-sequelize

Source: https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.irange/
Published: 2026-08-01
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/pg-sequelize 4.2.0 — generated reference, not hand-written

The shape every range filter shares: a start and an end.

**Signature:**

```typescript
export interface IRange 
```

## Remarks

`query.withRangeFilters` recognises a range by exactly these two keys, in either order, on a filter property whose name ends in `Range`. So the property NAMES are the contract — an object with any other key set is left alone and filtered as an ordinary value.

The convention it implements: a caller filters `durationRange` and the helper rewrites it onto the real `duration` column. Sending both `duration` and `durationRange` is an error rather than a merge — see [DateRange](https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.daterange/) for the worked example.

Deliberately untyped at `any`, so a range of anything Postgres supports can implement it; [DateRange](https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.daterange/) and [NumericRange](https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.numericrange/) are the two the package ships.

## Properties


| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [end](https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.irange.end/) |  | any | Upper bound of the range. |
| [start](https://imqueue.org/api/pg-sequelize/latest/pg-sequelize.irange.start/) |  | any | Lower bound of the range. |

