/**
 * iCure Data Stack API Documentation
 * The iCure Data Stack Application API is the native interface to iCure. This version is obsolete, please use v2.
 *
 * OpenAPI spec version: v1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import { XHR } from './XHR';
import { ListOfIds } from '../model/ListOfIds';
import { PaginatedListTarification } from '../model/PaginatedListTarification';
import { Tarification } from '../model/Tarification';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { AbstractFilterPricing } from "../model/AbstractFilterPricing";
import { TimingInfo } from '../model/TimingInfo';
export declare class IccTarificationApi {
    host: string;
    headers: Array<XHR.Header>;
    authenticationProvider: AuthenticationProvider;
    fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
    constructor(host: string, headers: any, authenticationProvider?: AuthenticationProvider, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
    setHeaders(h: Array<XHR.Header>): void;
    handleError(e: XHR.XHRError): never;
    /**
     * Type, Tarification and Version are required.
     * @summary Create a Tarification
     * @param body
     */
    createTarification(body?: Tarification): Promise<Tarification>;
    /**
     * Returns a list of tarifications matched with given input.
     * @summary Finding tarifications by tarification, type and version with pagination.
     * @param region
     * @param type
     * @param tarification
     * @param version
     * @param startDocumentId A tarification document ID
     * @param startKey
     * @param limit Number of rows
     */
    findPaginatedTarifications(region?: string, type?: string, tarification?: string, version?: string, startDocumentId?: string, startKey?: string, limit?: number): Promise<PaginatedListTarification>;
    /**
     * Returns a list of tarifications matched with given input.
     * @summary Finding tarifications by tarification, type and version with pagination.
     * @param region
     * @param types
     * @param language
     * @param label
     * @param startKey
     * @param startDocumentId A tarification document ID
     * @param limit Number of rows
     */
    findPaginatedTarificationsByLabel(region?: string, types?: string, language?: string, label?: string, startKey?: string, startDocumentId?: string, limit?: number): Promise<PaginatedListTarification>;
    /**
     * @deprecated Replace with `findPaginatedTarifications` (same but paginated)
     */
    findTarifications(region?: string, type?: string, tarification?: string, version?: string): Promise<Array<Tarification>>;
    /**
     * Get a tarification based on ID or (tarification,type,version) as query strings. (tarification,type,version) is unique.
     * @summary Get a tarification
     * @param tarificationId Tarification id
     */
    getTarification(tarificationId: string): Promise<Tarification>;
    /**
     * Get a tarification based on ID or (tarification,type,version) as query strings. (tarification,type,version) is unique.
     * @summary Get a tarification
     * @param type Tarification type
     * @param tarification Tarification tarification
     * @param version Tarification version
     */
    getTarificationWithParts(type: string, tarification: string, version: string): Promise<Tarification>;
    /**
     * Keys must be delimited by coma
     * @summary Get a list of tarifications by ids
     * @param body
     */
    getTarifications(body?: ListOfIds): Promise<Array<Tarification>>;
    /**
     * Modification of (type, tarification, version) is not allowed.
     * @summary Modify a tarification
     * @param body
     */
    modifyTarification(body?: Tarification): Promise<Tarification>;
    modifyTarificationsInGroup(groupId: string, tarifications?: Array<Tarification>): Promise<Array<Tarification>>;
    createTarificationsInGroup(groupId: string, tarifications?: Array<Tarification>): Promise<Array<Tarification>>;
    /**
     * Get a list of tarifications by ids/keys.
     * @summary Gets a list of tarifications by ids
     * @param tarificationIds
     */
    getTarificationsInGroup(groupId: string, tarificationIds: string[]): Promise<Array<Tarification>>;
    /**
     *
     * @summary Get ids of tarification matching the provided filter for the current user (HcParty)
     * @param body
     * @param collectTiming if true, include server-side filter timing information in the response
     */
    matchTarificationsByInGroup(groupId: string, body?: AbstractFilterPricing, collectTiming?: false): Promise<Array<string>>;
    matchTarificationsByInGroup(groupId: string, body?: AbstractFilterPricing, collectTiming?: true): Promise<Array<string> & TimingInfo>;
}
