/**
 * 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 { EntityTemplate } from '../model/EntityTemplate';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { ListOfIds } from '../model/ListOfIds';
export declare class IccEntitytemplateApi {
    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, EntityTemplate and Version are required.
     * @summary Create a EntityTemplate
     * @param body
     */
    createEntityTemplate(body?: EntityTemplate): Promise<EntityTemplate>;
    /**
     * Returns the modified entityTemplates.
     * @summary Create a batch of entityTemplates
     * @param body
     */
    createEntityTemplates(body?: Array<EntityTemplate>): Promise<Array<EntityTemplate>>;
    /**
     * @summary Deletes a batch of entity templates.
     *
     * @param entityTemplateIds a ListOfIds containing the ids of the entity templates to delete.
     * @return a Promise that will resolve in an array of DocIdentifiers of the successfully deleted entity templates.
     */
    deleteEntityTemplates(entityTemplateIds: ListOfIds): Promise<Array<DocIdentifier>>;
    /**
     * Returns a list of entityTemplates matched with given input.
     * @summary Finding entityTemplates by entityTemplate, type and version with pagination.
     * @param type
     * @param searchString
     * @param includeEntities
     */
    findAllEntityTemplates(type: string, searchString?: string, includeEntities?: boolean): Promise<Array<EntityTemplate>>;
    /**
     * Returns a list of entityTemplates matched with given input.
     * @summary Finding entityTemplates by entityTemplate, type and version with pagination.
     * @param type
     * @param keyword
     * @param includeEntities
     */
    findAllEntityTemplatesByKeyword(type: string, keyword: string, includeEntities?: boolean): Promise<Array<EntityTemplate>>;
    /**
     * Returns a list of entityTemplates matched with given input.
     * @summary Finding entityTemplates by userId, entityTemplate, type and version with pagination.
     * @param userId
     * @param type
     * @param searchString
     * @param includeEntities
     */
    findEntityTemplates(userId: string, type: string, searchString?: string, includeEntities?: boolean): Promise<Array<EntityTemplate>>;
    /**
     * Returns a list of entityTemplates matched with given input.
     * @summary Finding entityTemplates by userId, type and keyword.
     * @param userId
     * @param type
     * @param keyword
     * @param includeEntities
     */
    findEntityTemplatesByKeyword(userId: string, type: string, keyword: string, includeEntities?: boolean): Promise<Array<EntityTemplate>>;
    /**
     * Get a entityTemplate based on ID or (entityTemplate,type,version) as query strings. (entityTemplate,type,version) is unique.
     * @summary Get a entityTemplate
     * @param entityTemplateId EntityTemplate id
     */
    getEntityTemplate(entityTemplateId: string): Promise<EntityTemplate>;
    /**
     * Keys must be a list of entity template ids
     * @summary Get a list of entityTemplates by ids
     * @param entityTemplateIds
     */
    getEntityTemplates(entityTemplateIds: ListOfIds): Promise<Array<EntityTemplate>>;
    /**
     * Modification of (type, entityTemplate, version) is not allowed.
     * @summary Modify a entityTemplate
     * @param body
     */
    modifyEntityTemplate(body?: EntityTemplate): Promise<EntityTemplate>;
    /**
     * Returns the modified entityTemplates.
     * @summary Modify a batch of entityTemplates
     * @param body
     */
    modifyEntityTemplates(body?: Array<EntityTemplate>): Promise<Array<EntityTemplate>>;
}
