/**
 * 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 { DocIdentifier } from '../model/DocIdentifier';
import { ListOfIds } from '../model/ListOfIds';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { PaginatedListInsurance } from '../model/PaginatedListInsurance';
import { Insurance } from "../model/Insurance";
import { AbstractFilterInsurance } from "../model/AbstractFilterInsurance";
import { TimingInfo } from '../model/TimingInfo';
export declare class IccInsuranceApi {
    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;
    /**
     *
     * @summary Creates an insurance
     * @param body
     */
    createInsurance(body?: Insurance): Promise<Insurance>;
    /**
     *
     * @summary Deletes an insurance
     * @param insuranceId
     */
    deleteInsurance(insuranceId: string): Promise<DocIdentifier>;
    /**
     *
     * @summary Gets an insurance
     * @param insuranceId
     */
    getInsurance(insuranceId: string): Promise<Insurance>;
    /**
     *
     * @summary Gets insurances by id
     * @param body
     */
    getInsurances(body?: ListOfIds): Promise<Array<Insurance>>;
    /**
     *
     * @summary Gets an insurance
     * @param insuranceCode
     */
    listInsurancesByCode(insuranceCode: string): Promise<Array<Insurance>>;
    /**
     *
     * @summary Gets an insurance
     * @param insuranceName
     */
    listInsurancesByName(insuranceName: string): Promise<Array<Insurance>>;
    /**
     *
     * @summary Modifies an insurance
     * @param body
     */
    modifyInsurance(body?: Insurance): Promise<Insurance>;
    getAllInsurances(startDocumentId?: string, limit?: number): Promise<PaginatedListInsurance>;
    modifyInsurancesInGroup(groupId: string, insurances?: Array<Insurance>): Promise<Array<Insurance>>;
    createInsurancesInGroup(groupId: string, insurances?: Array<Insurance>): Promise<Array<Insurance>>;
    /**
     * Get a list of insurances by ids/keys.
     * @summary Gets a list of insurances by ids
     * @param insuranceIds
     */
    getInsurancesInGroup(groupId: string, insuranceIds: string[]): Promise<Array<Insurance>>;
    /**
     *
     * @summary Get ids of code matching the provided filter for the current user (HcParty)
     * @param body
     * @param collectTiming if true, include server-side filter timing information in the response
     */
    matchInsurancesByInGroup(groupId: string, body?: AbstractFilterInsurance, collectTiming?: false): Promise<Array<string>>;
    matchInsurancesByInGroup(groupId: string, body?: AbstractFilterInsurance, collectTiming?: true): Promise<Array<string> & TimingInfo>;
}
