### 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/test.js
});
const {Axios} = axiosFactory;
const ignoreList = ['default'];
const instance = axiosFactory.create({});
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
const remove = async (file) => {
  console.log(`✓ Remove entry '${file}'...`);
  try {
    await sleep(100);
    await fs.remove(file);
  } catch (err) {
    console.warn(err.message);
  }
}
describe('module', function () {
  before(async ()=> {
    console.log('✓ Creating build backup...');
    await fs.copy('./dist/', BACKUP_PATH);
    console.log('✓ Exec build script...');
    await exec('npm run build');
    console.log('✓ Running tests...');
  });
  after(async () => {
    console.log('✓ Restore build from the backup...');
    await fs.copy(BACKUP_PATH, './dist/');
    await remove(BACKUP_PATH);
  });
  it('should have consistent ESM export', function () {
    const namedExport = {};
    const factoryExport = {};