/**
 * 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 { Classification } from '../model/Classification';
import { Contact } from '../model/Contact';
import { DocIdentifier } from '../model/DocIdentifier';
import { Document } from '../model/Document';
import { EntityTemplate } from '../model/EntityTemplate';
import { Form } from '../model/Form';
import { HealthElement } from '../model/HealthElement';
import { Invoice } from '../model/Invoice';
import { Message } from '../model/Message';
import { PaginatedListClassification } from '../model/PaginatedListClassification';
import { PaginatedListDocument } from '../model/PaginatedListDocument';
import { PaginatedListEntityTemplate } from '../model/PaginatedListEntityTemplate';
import { PaginatedListForm } from '../model/PaginatedListForm';
import { PaginatedListHealthElement } from '../model/PaginatedListHealthElement';
import { PaginatedListInvoice } from '../model/PaginatedListInvoice';
import { PaginatedListPatient } from '../model/PaginatedListPatient';
import { Patient } from '../model/Patient';
import { ReplicatorDocument } from '../model/ReplicatorDocument';
import { Unit } from '../model/Unit';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
export declare class IccTmpApi {
    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 classification.
     * @summary Create a classification with the current user
     * @param body
     */
    createTmpClassification(body?: Classification): Promise<Classification>;
    /**
     * Returns an instance of created classification.
     * @summary Create a classification with the current user
     * @param body
     */
    createTmpClassifications(body?: Array<Classification>): Promise<Array<Classification>>;
    /**
     * Returns an instance of created contact.
     * @summary Create a contact with the current user
     * @param body
     */
    createTmpContact(body?: Contact): Promise<Contact>;
    /**
     * Returns an instance of created contact.
     * @summary Create a contact with the current user
     * @param body
     */
    createTmpContacts(body?: Array<Contact>): Promise<Array<Contact>>;
    /**
     * Nothing happens if the database already exists
     * @summary Create tmp database for current user
     */
    createTmpDatabase(): Promise<Unit>;
    /**
     * Returns an instance of created document.
     * @summary Create a document with the current user
     * @param body
     */
    createTmpDocument(body?: Document): Promise<Document>;
    /**
     * Returns an instance of created document.
     * @summary Create a document with the current user
     * @param body
     */
    createTmpDocuments(body?: Array<Document>): Promise<Array<Document>>;
    /**
     * Returns an instance of created entityTemplate.
     * @summary Create a entityTemplate with the current user
     * @param body
     */
    createTmpEntityTemplate(body?: EntityTemplate): Promise<EntityTemplate>;
    /**
     * Returns an instance of created entityTemplate.
     * @summary Create a entityTemplate with the current user
     * @param body
     */
    createTmpEntityTemplates(body?: Array<EntityTemplate>): Promise<Array<EntityTemplate>>;
    /**
     * Returns an instance of created form.
     * @summary Create a form with the current user
     * @param body
     */
    createTmpForm(body?: Form): Promise<Form>;
    /**
     * Returns an instance of created form.
     * @summary Create a form with the current user
     * @param body
     */
    createTmpForms(body?: Array<Form>): Promise<Array<Form>>;
    /**
     * Returns an instance of created healthElement.
     * @summary Create a healthElement with the current user
     * @param body
     */
    createTmpHealthElement(body?: HealthElement): Promise<HealthElement>;
    /**
     * Returns an instance of created healthElement.
     * @summary Create a healthElement with the current user
     * @param body
     */
    createTmpHealthElements(body?: Array<HealthElement>): Promise<Array<HealthElement>>;
    /**
     * Returns an instance of created invoice.
     * @summary Create a invoice with the current user
     * @param body
     */
    createTmpInvoice(body?: Invoice): Promise<Invoice>;
    /**
     * Returns an instance of created invoice.
     * @summary Create a invoice with the current user
     * @param body
     */
    createTmpInvoices(body?: Array<Invoice>): Promise<Array<Invoice>>;
    /**
     * Returns an instance of created message.
     * @summary Create a message with the current user
     * @param body
     */
    createTmpMessage(body?: Message): Promise<Message>;
    /**
     * Returns an instance of created message.
     * @summary Create a message with the current user
     * @param body
     */
    createTmpMessages(body?: Array<Message>): Promise<Array<Message>>;
    /**
     * Returns an instance of created patient.
     * @summary Create a patient with the current user
     * @param body
     */
    createTmpPatient(body?: Patient): Promise<Patient>;
    /**
     * Returns an instance of created patient.
     * @summary Create a patient with the current user
     * @param body
     */
    createTmpPatients(body?: Array<Patient>): Promise<Array<Patient>>;
    /**
     * Deletes a document's attachment and returns the modified document instance afterward
     * @summary Delete a document's attachment
     * @param documentId
     */
    deleteTmpDocumentAttachment(documentId: string): Promise<Document>;
    /**
     * Response is a set containing the ID's of deleted items.
     * @summary Soft delete items.
     * @param body
     */
    deleteTmpItems(body?: Array<string>): Promise<Array<DocIdentifier>>;
    /**
     * Nothing happens if the database does not exists
     * @summary Destroy tmp database for current user
     */
    destroyTmpDatabase(): Promise<Unit>;
    /**
     * Returns an instance of classification.
     * @summary Get a classification by id
     * @param id
     */
    getTmpClassification(id: string): Promise<Classification>;
    /**
     * Returns an instance of created classification.
     * @summary Get classifications by ids with the current user
     * @param body
     */
    getTmpClassifications(body?: Array<string>): Promise<Array<Classification>>;
    /**
     * Returns an instance of contact.
     * @summary Get a contact by id
     * @param id
     */
    getTmpContact(id: string): Promise<Contact>;
    /**
     * Returns an instance of created contact.
     * @summary Get contacts by ids with the current user
     * @param body
     */
    getTmpContacts(body?: Array<string>): Promise<Array<Contact>>;
    /**
     * Returns an instance of document.
     * @summary Get a document by id
     * @param id
     */
    getTmpDocument(id: string): Promise<Document>;
    /**
     *
     * @param documentId
     * @param attachmentId
     * @param enckeys
     * @param fileName
     */
    getTmpDocumentAttachment(documentId: string, attachmentId: string, enckeys?: string, fileName?: string): Promise<any | Boolean>;
    /**
     * Returns an instance of created document.
     * @summary Get documents by ids with the current user
     * @param body
     */
    getTmpDocuments(body?: Array<string>): Promise<Array<Document>>;
    /**
     * Returns an instance of entityTemplate.
     * @summary Get a entityTemplate by id
     * @param id
     */
    getTmpEntityTemplate(id: string): Promise<EntityTemplate>;
    /**
     * Returns an instance of created entityTemplate.
     * @summary Get entityTemplates by ids with the current user
     * @param body
     */
    getTmpEntityTemplates(body?: Array<string>): Promise<Array<EntityTemplate>>;
    /**
     * Returns an instance of form.
     * @summary Get a form by id
     * @param id
     */
    getTmpForm(id: string): Promise<Form>;
    /**
     * Returns an instance of created form.
     * @summary Get forms by ids with the current user
     * @param body
     */
    getTmpForms(body?: Array<string>): Promise<Array<Form>>;
    /**
     * Returns an instance of healthElement.
     * @summary Get a healthElement by id
     * @param id
     */
    getTmpHealthElement(id: string): Promise<HealthElement>;
    /**
     * Returns an instance of created healthElement.
     * @summary Get healthElements by ids with the current user
     * @param body
     */
    getTmpHealthElements(body?: Array<string>): Promise<Array<HealthElement>>;
    /**
     * Returns an instance of invoice.
     * @summary Get a invoice by id
     * @param id
     */
    getTmpInvoice(id: string): Promise<Invoice>;
    /**
     * Returns an instance of created invoice.
     * @summary Get invoices by ids with the current user
     * @param body
     */
    getTmpInvoices(body?: Array<string>): Promise<Array<Invoice>>;
    /**
     * Returns an instance of message.
     * @summary Get a message by id
     * @param id
     */
    getTmpMessage(id: string): Promise<Message>;
    /**
     * Returns an instance of created message.
     * @summary Get messages by ids with the current user
     * @param body
     */
    getTmpMessages(body?: Array<string>): Promise<Array<Message>>;
    /**
     * Returns an instance of patient.
     * @summary Get a patient by id
     * @param id
     */
    getTmpPatient(id: string): Promise<Patient>;
    /**
     * Returns an instance of created patient.
     * @summary Get patients by ids with the current user
     * @param body
     */
    getTmpPatients(body?: Array<string>): Promise<Array<Patient>>;
    /**
     * Returns paginated classifications.
     * @summary List classifications with the current user
     * @param firstClassificationId
     * @param pageSize
     */
    listTmpClassifications(firstClassificationId?: string, pageSize?: number): Promise<PaginatedListClassification>;
    /**
     * Returns paginated contacts.
     * @summary List contacts with the current user
     * @param firstContactId
     * @param pageSize
     */
    listTmpContacts(firstContactId?: string, pageSize?: number): Promise<PaginatedListInvoice>;
    /**
     * Returns paginated documents.
     * @summary List documents with the current user
     * @param firstDocumentId
     * @param pageSize
     */
    listTmpDocuments(firstDocumentId?: string, pageSize?: number): Promise<PaginatedListDocument>;
    /**
     * Returns paginated entityTemplates.
     * @summary List entityTemplates with the current user
     * @param firstEntityTemplateId
     * @param pageSize
     */
    listTmpEntityTemplates(firstEntityTemplateId?: string, pageSize?: number): Promise<PaginatedListEntityTemplate>;
    /**
     * Returns paginated forms.
     * @summary List forms with the current user
     * @param firstFormId
     * @param pageSize
     */
    listTmpForms(firstFormId?: string, pageSize?: number): Promise<PaginatedListForm>;
    /**
     * Returns paginated healthElements.
     * @summary List healthElements with the current user
     * @param firstHealthElementId
     * @param pageSize
     */
    listTmpHealthElements(firstHealthElementId?: string, pageSize?: number): Promise<PaginatedListHealthElement>;
    /**
     * Returns paginated invoices.
     * @summary List invoices with the current user
     * @param firstInvoiceId
     * @param pageSize
     */
    listTmpInvoices(firstInvoiceId?: string, pageSize?: number): Promise<PaginatedListInvoice>;
    /**
     * Returns paginated messages.
     * @summary List messages with the current user
     * @param firstMessageId
     * @param pageSize
     */
    listTmpMessages(firstMessageId?: string, pageSize?: number): Promise<PaginatedListInvoice>;
    /**
     * Returns paginated patients.
     * @summary List patients with the current user
     * @param firstPatientId
     * @param pageSize
     */
    listTmpPatients(firstPatientId?: string, pageSize?: number): Promise<PaginatedListPatient>;
    /**
     * Returns the modified classification.
     * @summary Modify a classification
     * @param body
     */
    modifyTmpClassification(body?: Classification): Promise<Classification>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpClassifications(body?: Array<Classification>): Promise<Array<Classification>>;
    /**
     * Returns the modified contact.
     * @summary Modify a contact
     * @param body
     */
    modifyTmpContact(body?: Contact): Promise<Contact>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpContacts(body?: Array<Contact>): Promise<Array<Contact>>;
    /**
     * Returns the modified document.
     * @summary Modify a document
     * @param body
     */
    modifyTmpDocument(body?: Document): Promise<Document>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpDocuments(body?: Array<Document>): Promise<Array<Document>>;
    /**
     * Returns the modified entityTemplate.
     * @summary Modify a entityTemplate
     * @param body
     */
    modifyTmpEntityTemplate(body?: EntityTemplate): Promise<EntityTemplate>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpEntityTemplates(body?: Array<EntityTemplate>): Promise<Array<EntityTemplate>>;
    /**
     * Returns the modified form.
     * @summary Modify a form
     * @param body
     */
    modifyTmpForm(body?: Form): Promise<Form>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpForms(body?: Array<Form>): Promise<Array<Form>>;
    /**
     * Returns the modified healthElement.
     * @summary Modify a healthElement
     * @param body
     */
    modifyTmpHealthElement(body?: HealthElement): Promise<HealthElement>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpHealthElements(body?: Array<HealthElement>): Promise<Array<HealthElement>>;
    /**
     * Returns the modified invoice.
     * @summary Modify a invoice
     * @param body
     */
    modifyTmpInvoice(body?: Invoice): Promise<Invoice>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpInvoices(body?: Array<Invoice>): Promise<Array<Invoice>>;
    /**
     * Returns the modified message.
     * @summary Modify a message
     * @param body
     */
    modifyTmpMessage(body?: Message): Promise<Message>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpMessages(body?: Array<Message>): Promise<Array<Message>>;
    /**
     * Returns the modified patient.
     * @summary Modify a patient
     * @param body
     */
    modifyTmpPatient(body?: Patient): Promise<Patient>;
    /**
     * Returns the modified healthcare elements.
     * @summary Modify a batch of healthcare elements
     * @param body
     */
    modifyTmpPatients(body?: Array<Patient>): Promise<Array<Patient>>;
    /**
     * Response is a set containing the ID's of deleted items.
     * @summary Hard delete items.
     * @param body
     */
    purgeTmpItems(body?: Array<string>): Promise<Array<DocIdentifier>>;
    /**
     *
     * @param body
     * @param from
     */
    replicateToTmpDatabase(from: string, body?: Array<string>): Promise<ReplicatorDocument>;
    /**
     * Creates a document's attachment and returns the modified document instance afterward
     * @summary Create a document's attachment
     * @param body
     * @param documentId
     * @param enckeys
     */
    setTmpDocumentAttachment(documentId: string, enckeys?: string, body?: Object): Promise<Document>;
}
