import { FlowGetLiquidationByIdResponse, FlowGetLiquidationsByDateRangeRequest, FlowGetLiquidationsByDateRangeResponse } from '../types/flow';
/**
 * Permite obtener las liquidaciones de pagos efectuadas por Flow
 */
export default class FlowSettlements {
    private apiKey;
    private secretKey;
    private axiosInstance;
    /**
     * Este método se utiliza para obtener el(los) encabezado(s) de liquidación(es) dentro del rango de fechas ingresado (permite filtrar también por la moneda). Para obtener la liquidación completa (encabezado y detalles) utilizar el servicio /settlement/getByIdv2
     * @param {FlowGetSettlementHeadersByDateRangeRequest} data Datos de la petición.
     * @returns {Promise<FlowGetSettlementHeadersByDateRangeResponse>} Respuesta de la API.
     * @throws {FlowAPIError} Si hay problemas con la API de Flow.
     * @throws {FlowGetLiquidationsByDateRangeError} Si hay problemas al realizar la petición.
     */
    getLiquidationsByDateRange: (data: FlowGetLiquidationsByDateRangeRequest) => Promise<FlowGetLiquidationsByDateRangeResponse>;
    /**
     * Este método se utiliza para obtener el objeto Settlement correspondiente al identificador
     * @param {string} id Identificador de la liquidación.
     * @returns {Promise<FlowGetLiquidationByIdResponse>} Respuesta de la API.
     * @throws {FlowAPIError} Si hay problemas con la API de Flow.
     * @throws {FlowGetLiquidationsByDateRangeError} Si hay problemas al realizar la petición.
     */
    getLiquidationById: (id: string) => Promise<FlowGetLiquidationByIdResponse>;
    /**
     * Constructor de la clase FlowClient.
     * @param {string} apiKey Clave de API proporcionada por Flow.
     * @param {string} secretKey Clave secreta proporcionada por Flow.
     * @param {string} baseURL URL base de la API de Flow.
     * @throws {FlowAuthenticationError} Si no se proporciona apiKey o secretKey.
     */
    constructor(apiKey: string, secretKey: string, baseURL: string);
    /**
     * Realiza una petición a la API de Flow.
     * @param {string} endpoint URL del endpoint de la API.
     * @param {Record<string, unknown>} data Datos a enviar en la petición.
     * @param {'post' | 'get'} method Método de la petición (POST o GET).
     * @param {(err: unknown) => never} error Error a lanzar en caso de error.
     * @returns {Promise<T>} Respuesta de la API.
     * @throws {FlowAPIError} Si hay problemas con la API de Flow.
     * @throws {Error} Si hay problemas al realizar la petición.
     */
    private request;
    /**
     * Este método se utiliza para obtener el(los) encabezado(s) de liquidación(es) dentro del rango de fechas ingresado (permite filtrar también por la moneda). Para obtener la liquidación completa (encabezado y detalles) utilizar el servicio /settlement/getByIdv2
     * @param {FlowGetSettlementHeadersByDateRangeRequest} data Datos de la petición.
     * @returns {Promise<FlowGetSettlementHeadersByDateRangeResponse>} Respuesta de la API.
     * @throws {FlowAPIError} Si hay problemas con la API de Flow.
     * @throws {FlowGetLiquidationsByDateRangeError} Si hay problemas al realizar la petición.
     */
    private _getLiquidationsByDateRange;
    /**
     * Este método se utiliza para obtener el objeto Settlement correspondiente al identificador
     * @param {string} id Identificador de la liquidación.
     * @returns {Promise<FlowGetLiquidationByIdResponse>} Respuesta de la API.
     * @throws {FlowAPIError} Si hay problemas con la API de Flow.
     * @throws {FlowGetLiquidationsByDateRangeError} Si hay problemas al realizar la petición.
     */
    private _getLiquidationById;
}
//# sourceMappingURL=flow.settlement.d.ts.map