/**
 * 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 { DocumentTemplate } from '../model/DocumentTemplate';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { ListOfIds } from '../model/ListOfIds';
import { PaginatedListDocumentTemplate } from '../model/PaginatedListDocumentTemplate';
export declare class IccDoctemplateApi {
    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;
    /**
     * Returns an instance of created document template.
     * @summary Create a document template with the current user
     * @param body
     */
    createDocumentTemplate(body?: DocumentTemplate): Promise<DocumentTemplate>;
    /**
     * @summary Deletes a batch of document templates.
     *
     * @param documentTemplateIds a ListOfIds containing the ids of the document templates to delete.
     * @return a Promise that will resolve in an array of DocIdentifiers of the successfully deleted document templates.
     */
    deleteDocumentTemplates(documentTemplateIds: ListOfIds): Promise<Array<DocIdentifier>>;
    /**
     * @deprecated use {@link listAllDocumentTemplatesWithPagination} instead.
     * @summary Gets all document templates for all users
     */
    listAllDocumentTemplates(): Promise<Array<DocumentTemplate>>;
    /**
     * @summary Gets all document templates for all users with pagination.
     * @param startKey the startKey provided by the previous page or undefined for the first page.
     * @param startDocumentId the startDocumentId provided by the previous page or undefined for the first page.
     * @param limit the number of elements that the page should contain.
     * @return a promise that will resolve in a PaginatedListDocumentTemplate.
     */
    listAllDocumentTemplatesWithPagination(startKey?: string, startDocumentId?: string, limit?: number): Promise<PaginatedListDocumentTemplate>;
    /**
     *
     * @summary Gets all document templates for current user
     */
    listDocumentTemplates(loadAttachment?: boolean): Promise<Array<DocumentTemplate>>;
    /**
     *
     * @summary Gets all document templates by Type
     * @param documentTypeCode
     */
    findDocumentTemplatesByDocumentType(documentTypeCode: string, loadAttachment?: boolean): Promise<Array<DocumentTemplate>>;
    /**
     *
     * @summary Gets all document templates by Type For currentUser
     * @param documentTypeCode
     */
    listDocumentTemplatesByDocumentTypeForCurrentUser(documentTypeCode: string, loadAttachment?: boolean): Promise<Array<DocumentTemplate>>;
    /**
     *
     * @summary Gets all document templates
     * @param specialityCode
     */
    listDocumentTemplatesBySpeciality(specialityCode: string, loadAttachment?: boolean): Promise<Array<DocumentTemplate>>;
    /**
     *
     * @summary Download a the document template attachment
     * @param documentTemplateId
     * @param attachmentId
     */
    getAttachmentText(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer>;
    /**
     *
     * @summary Gets a document template
     * @param documentTemplateId
     */
    getDocumentTemplate(documentTemplateId: string): Promise<DocumentTemplate>;
    /**
     *
     * @summary Download a the document template attachment
     * @param documentTemplateId
     * @param attachmentId
     */
    getDocumentTemplateAttachment(documentTemplateId: string, attachmentId: string): Promise<ArrayBuffer>;
    /**
     *
     * @summary Creates a document's attachment
     * @param body
     * @param documentTemplateId
     */
    setDocumentTemplateAttachment(documentTemplateId: string, body?: ArrayBuffer): Promise<DocumentTemplate>;
    /**
     *
     * @summary Creates a document's attachment
     * @param body
     * @param documentTemplateId
     */
    setDocumentTemplateAttachmentJson(documentTemplateId: string, body?: string): Promise<DocumentTemplate>;
    /**
     * Returns an instance of created document template.
     * @summary Modify a document template with the current user
     * @param body
     * @param documentTemplateId
     */
    updateDocumentTemplate(documentTemplateId: string, body?: DocumentTemplate): Promise<DocumentTemplate>;
}
