import { A as ApiResponse, G as GetAbacusStatePathParameters, a as GetAbacusStateHeaders, b as AbacusState, U as UpdateAbacusStatePathParameters, c as UpdateAbacusStateBody, d as UpdateAbacusStateHeaders, e as GetAbacusStatesByParentTablePathParameters, f as GetAbacusStatesByParentTableHeaders, g as AbacusStatesResponse, h as GetAbacusStatesBody, D as DataloadAbacusStatesHeaders, i as DataloadAbacusStatesResponse, C as CreateAbacusStatesBody, j as CreateAbacusStatesHeaders, k as UpdateAbacusStatesPathParameters, l as UpdateAbacusStatesBody, m as UpdateAbacusStatesHeaders, n as CreateAbacusStatesByParentTablePathParameters, o as CreateAbacusStatesByParentTableParams, p as CreateAbacusStatesByParentTableHeaders, q as GetHealthHeaders, H as Health } from './common-qMwTyvMz.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 OwsAbacusStateClient {
    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;
    getAbacusState({ abacusStateId }: GetAbacusStatePathParameters, headers?: GetAbacusStateHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusState>>;
    updateAbacusState({ abacusStateId }: UpdateAbacusStatePathParameters, updateAbacusStateBody: UpdateAbacusStateBody, headers?: UpdateAbacusStateHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusState>>;
    getAbacusStatesByParentTable({ parentTableName, parentTableId, }: GetAbacusStatesByParentTablePathParameters, headers?: GetAbacusStatesByParentTableHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusStatesResponse>>;
    dataloadAbacusStates(getAbacusStatesBody: GetAbacusStatesBody, headers?: DataloadAbacusStatesHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<DataloadAbacusStatesResponse>>;
    createAbacusStates(createAbacusStatesBody: CreateAbacusStatesBody, headers?: CreateAbacusStatesHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusStatesResponse>>;
    updateAbacusStates({ parentTableName }: UpdateAbacusStatesPathParameters, updateAbacusStatesBody: UpdateAbacusStatesBody, headers?: UpdateAbacusStatesHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusStatesResponse>>;
    createAbacusStatesByParentTable({ parentTableName, parentTableId, }: CreateAbacusStatesByParentTablePathParameters, params?: CreateAbacusStatesByParentTableParams, headers?: CreateAbacusStatesByParentTableHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<AbacusStatesResponse>>;
    getHealth(headers?: GetHealthHeaders, options?: SecondParameter<typeof this._fetch>): Promise<ApiResponse<Health>>;
}

export { type ApiConfig, OwsAbacusStateClient };
