import { A as ApiResponse, G as GetContractPathParameters, a as GetContractHeaders, C as Contract, U as UpdateContractPathParameters, b as UpdateContractBody, c as UpdateContractHeaders, d as GetContractLifecyclePathParameters, e as ContractLifecycle, T as TerminateContractPathParameters, f as TerminateContractBody, g as TerminateContractHeaders, R as ReactivateContractPathParameters, h as ReactivateContractHeaders, i as GetContractsBody, j as ContractsResponse, D as DataloadContractsResponse, k as GetHealthHeaders, H as Health } from './common-DZdd_V30.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 OwsAbacusContractClient {
    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;
    getContract({ contractId }: GetContractPathParameters, headers?: GetContractHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Contract>>;
    updateContract({ contractId }: UpdateContractPathParameters, updateContractBody: UpdateContractBody, headers?: UpdateContractHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Contract>>;
    getContractLifecycle({ contractId }: GetContractLifecyclePathParameters, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<ContractLifecycle>>;
    terminateContract({ contractId }: TerminateContractPathParameters, terminateContractBody: TerminateContractBody, headers?: TerminateContractHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Contract>>;
    reactivateContract({ contractId }: ReactivateContractPathParameters, headers?: ReactivateContractHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Contract>>;
    getContracts(getContractsBody: GetContractsBody, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<ContractsResponse>>;
    dataloadContracts(getContractsBody: GetContractsBody, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<DataloadContractsResponse>>;
    getHealth(headers?: GetHealthHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Health>>;
}

export { type ApiConfig, OwsAbacusContractClient };
