import { A as ApiResponse, C as CreateAbacusEventBody, a as CreateAbacusEventHeaders, b as AbacusEvent, G as GetAbacusEventPathParameters, c as GetAbacusEventHeaders, d as GetAbacusEventsByTargetPathParameters, e as GetAbacusEventsByTargetHeaders, f as AbacusEventsResponse, g as GetAbacusEventsBody, D as DataloadAbacusEventsHeaders, h as DataloadAbacusEventsResponse, i as GetPaymentGroupPaymentApprovalCountPathParameters, j as GetPaymentGroupPaymentApprovalCountHeaders, P as PaymentGroupPaymentApprovalCount, R as RollbackAbacusEventBody, k as RollbackAbacusEventHeaders, l as GetHealthHeaders, H as Health } from './common-Bso2dIMa.cjs';
import { AxiosInstance, AxiosRequestConfig } from 'axios';
import { HeaderProvider, Logger } from '@abacus/common';
import { Throttler } from '@abacus/throttlers';

type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];

interface ApiConfig {
    auth?: HeaderProvider;
    axios?: AxiosInstance;
    baseUrl?: string;
    logger?: Logger;
    throttler?: Throttler;
}
declare class OwsAbacusEventClient {
    auth?: HeaderProvider;
    axios: AxiosInstance;
    baseUrl: string;
    logger?: Logger;
    throttler?: Throttler;
    constructor(config?: ApiConfig);
    _fetch<T>(config: AxiosRequestConfig, options?: AxiosRequestConfig): Promise<ApiResponse<T>>;
    private _getHeaders;
    private _onRequest;
    createAbacusEvent(createAbacusEventBody: CreateAbacusEventBody, headers?: CreateAbacusEventHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusEvent>>;
    getAbacusEvent({ abacusEventId }: GetAbacusEventPathParameters, headers?: GetAbacusEventHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusEvent>>;
    getAbacusEventsByTarget({ targetType, targetId }: GetAbacusEventsByTargetPathParameters, headers?: GetAbacusEventsByTargetHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusEventsResponse>>;
    dataloadAbacusEvents(getAbacusEventsBody: GetAbacusEventsBody, headers?: DataloadAbacusEventsHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<DataloadAbacusEventsResponse>>;
    getPaymentGroupPaymentApprovalCount({ paymentGroupPaymentId, }: GetPaymentGroupPaymentApprovalCountPathParameters, headers?: GetPaymentGroupPaymentApprovalCountHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<PaymentGroupPaymentApprovalCount>>;
    rollbackAbacusEvent(rollbackAbacusEventBody: RollbackAbacusEventBody, headers?: RollbackAbacusEventHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusEvent>>;
    getHealth(headers?: GetHealthHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Health>>;
}

export { type ApiConfig, OwsAbacusEventClient };
