import { AxiosRequestConfig } from 'axios'; import { BaseDto } from '../common/base-dto'; import { ApiResponse } from '../common/api-response'; import { PagedList } from '../common/paged-list'; import { IFiscalapiHttpClient } from '../http/fiscalapi-http-client.interface'; import { IFiscalapiService, RequestOptions } from '../abstractions/fiscalapi-service.interface'; /** * Implementación base de un servicio de FiscalAPI * @template T - Tipo de DTO que maneja el servicio */ export declare abstract class BaseFiscalapiService implements IFiscalapiService { /** Cliente HTTP */ protected readonly httpClient: IFiscalapiHttpClient; /** Ruta del recurso */ protected readonly resourcePath: string; /** Versión de la API */ protected readonly apiVersion: string; /** * Crea una nueva instancia del servicio base * @param {IFiscalapiHttpClient} httpClient - Cliente HTTP * @param {string} resourcePath - Ruta del recurso en la API * @param {string} apiVersion - Versión de la API */ constructor(httpClient: IFiscalapiHttpClient, resourcePath: string, apiVersion: string); /** * Construye una URL de endpoint de API * @param {string} [path=''] - Segmento de ruta opcional * @param {Record} [queryParams] - Parámetros de consulta opcionales * @returns {string} URL del endpoint * @protected */ protected buildEndpoint(path?: string, queryParams?: Record): string; /** * Convierte los parámetros de consulta a un objeto compatible con la configuración de Axios * @param {Record} queryParams - Parámetros de consulta * @returns {AxiosRequestConfig} Configuración de Axios con los parámetros * @protected */ protected createConfigWithParams(queryParams?: Record): AxiosRequestConfig; /** * Ejecuta una petición HTTP personalizada con máxima flexibilidad * @param {RequestOptions} options - Opciones para la petición * @returns {Promise>} Resultado de la petición * @template TResult - Tipo de resultado esperado * @template TData - Tipo de datos de entrada */ executeRequest(options: RequestOptions): Promise>; /** * @inheritdoc */ getList(pageNumber: number, pageSize: number): Promise>>; /** * @inheritdoc */ getById(id: string, details?: boolean): Promise>; /** * @inheritdoc */ create(model: T): Promise>; /** * @inheritdoc */ update(model: T): Promise>; /** * @inheritdoc */ delete(id: string): Promise>; /** * @inheritdoc */ search(searchParams: Record): Promise>>; } //# sourceMappingURL=base-fiscalapi-service.d.ts.map