### Describe the bug

`AxiosHeaders` types makes it so trying to call methods on the instance raises a `typescript` compilation error.

<img width="1142" alt="image" src="https://user-images.githubusercontent.com/476069/209943677-fa7775e7-0f23-4b86-88ae-ad28df8c0533.png">

`AxiosRequestConfig.headers` can be either `RawAxiosRequestHeaders` or `AxiosHeaders`. `RawAxiosRequestHeaders`, being an alias of `Record<string, AxiosHeaderValue>` causes methods to not be callable.

### To Reproduce

Invoke any method on `AxiosRequestConfig.headers`.

### Code snippet

```js
const api = axios.create({ ... })

api.interceptors.request.use(req => {
  // Trying to access any method on `req.headers` will result in
  // a "This expression is not callable" TS error
  req.headers.set('foo', 'bar')
})
```


### Expected behavior

Should be able to call any method declared in `AxiosHeaders`.

### Environment

* `axios`: `1.2.2`
* `node`: `18.12.1`
* `typescript`: `4.9.4`
* macOS Ventura `13.1` 

test/module/typings/cjs/index.ts
if (axios.isAxiosError(error)) {
        const axiosError: axios.AxiosError = error;
      }
    });
axios.toFormData({x: 1}, new FormData());
axios.get('/user', {signal: new AbortController().signal});
axios.get('/user', {
  transformRequest: (data, headers) => {
    headers.setContentType('text/plain');
    headers['Foo'] = 'bar';
  },
  transformResponse: (data, headers) => {
    headers.has('foo');
  }
});
axios.get('/user', {
  maxRate: 1000
});
axios.get('/user', {
  maxRate: [1000, 1000],
});
axios.get('/user', {
  onUploadProgress: (e: axios.AxiosProgressEvent) => {
    console.log(e.loaded);
    console.log(e.total);
    console.log(e.progress);
    console.log(e.rate);
  }
});