import axios from 'axios'; const client = axios.create({ baseURL: process.env.NEXT_PUBLIC_API_BASE_URL || '', timeout: 10000, }); client.interceptors.request.use((config) => { if (typeof window !== 'undefined') { const token = localStorage.getItem('token'); if (token && config.headers) { config.headers.Authorization = `Bearer ${token}`; } } return config; }); client.interceptors.response.use(undefined, (error) => Promise.reject(error)); export const api = { // eslint-disable-next-line @typescript-eslint/no-explicit-any get: (...args: Parameters) => client.get(...args).then((response) => response.data as any), // eslint-disable-next-line @typescript-eslint/no-explicit-any post: (...args: Parameters) => client.post(...args).then((response) => response.data as any), // eslint-disable-next-line @typescript-eslint/no-explicit-any put: (...args: Parameters) => client.put(...args).then((response) => response.data as any), // eslint-disable-next-line @typescript-eslint/no-explicit-any delete: (...args: Parameters) => client.delete(...args).then((response) => response.data as any), };