Might be worth calling out the domain function as an interface:
```
export interface IAutodomainFunction {
  (values: number[]): number[];
}
```
Although, as mentioned above, you might consider generalizing this to scales with non-numeric domains.