export interface ApiService { /** URL base del API (sin slash final). Ej: "https://api.siesa.com/api/v1" */ baseUrl: string; /** * Retorna los headers que se inyectan en cada request. * Se llama antes de cada petición para obtener headers frescos * (ej: token que puede rotar). * * Headers de autenticación y contexto de tenant. * * Para operaciones sobre documentos existentes (GET, PUT, DELETE) el UUID * de la PK es suficiente — no se necesitan headers de tenant para identificar * el registro. * * Para operaciones de clase (creación, listado) el backend puede requerir * headers de tenant (X-Company-Id, X-Operation-Center-Id) para filtrar * por compañía/centro de operación. * * @example * () => ({ * 'Authorization': `Bearer ${getToken()}`, * 'X-Company-Id': 'c1a2b3d4-...', * 'X-Operation-Center-Id': 'e5f6g7h8-...', * 'X-Tenant-Id': 'siesa-prod', * 'Accept-Language': 'es-CO', * }) */ getHeaders: () => Record | Promise>; /** * Locale para formateo de moneda, números y fechas. * Default: 'es-CO' */ locale?: string; /** * Código de moneda por defecto para formateo. * Default: 'COP' */ currency?: string; /** * Interceptor opcional para manejar errores globalmente. * Si retorna `true`, el error se considera manejado y no se propaga. * * @example * (status, body) => { * if (status === 401) { * redirectToLogin(); * return true; * } * return false; * } */ onError?: (status: number, body: unknown) => boolean; } //# sourceMappingURL=ApiService.types.d.ts.map