/**
 * 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 { Contact } from '../model/Contact';
import { Document } from '../model/Document';
import { Form } from '../model/Form';
import { HealthElement } from '../model/HealthElement';
import { IndexingInfo } from '../model/IndexingInfo';
import { Invoice } from '../model/Invoice';
import { Message } from '../model/Message';
import { Patient } from '../model/Patient';
import { ReplicationInfo } from '../model/ReplicationInfo';
import { ReplicatorDocument } from '../model/ReplicatorDocument';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { Code } from "../model/Code";
export declare class IccIcureApi {
    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 Get index info
     */
    getIndexingInfo(): Promise<IndexingInfo>;
    /**
     *
     * @summary Get process info
     */
    getProcessInfo(): Promise<string>;
    /**
     *
     * @summary Get replication info
     */
    getReplicationInfo(): Promise<ReplicationInfo>;
    /**
     *
     * @summary Get replication info
     * @param id
     */
    getReplicatorInfo(id: string): Promise<ReplicatorDocument>;
    /**
     *
     * @summary Get user sync info
     */
    getUserSyncInfo(): Promise<{
        [key: string]: {
            [key: string]: any;
        };
    }>;
    /**
     *
     * @summary Get version
     */
    getVersion(): Promise<string>;
    /**
     *
     * @summary Check if a user exists
     */
    isReady(): Promise<string>;
    /**
     *
     * @param loglevel
     * @param _package
     */
    loglevel(loglevel: string, _package: string): Promise<string>;
    /**
     *
     * @summary Resolve contacts conflicts
     * @param limit
     */
    resolveContactsConflicts(limit?: number): Promise<Array<Contact>>;
    /**
     *
     * @summary resolve documents conflicts
     * @param ids
     * @param limit
     */
    resolveDocumentsConflicts(ids?: string, limit?: number): Promise<Array<Document>>;
    /**
     *
     * @summary resolve forms conflicts
     * @param limit
     */
    resolveFormsConflicts(limit?: number): Promise<Array<Form>>;
    /**
     *
     * @summary resolve healthcare elements conflicts
     * @param limit
     */
    resolveHealthElementsConflicts(limit?: number): Promise<Array<HealthElement>>;
    /**
     *
     * @summary resolve invoices conflicts
     * @param limit
     */
    resolveInvoicesConflicts(limit?: number): Promise<Array<Invoice>>;
    /**
     *
     * @summary resolve messages conflicts
     * @param limit
     */
    resolveMessagesConflicts(limit?: number): Promise<Array<Message>>;
    /**
     *
     * @summary Resolve patients conflicts
     * @param limit
     */
    resolvePatientsConflicts(limit?: number): Promise<Array<Patient>>;
    /**
     *
     * @summary Resolve codes conflicts
     * @param limit
     */
    resolveCodesConflicts(limit?: number): Promise<Array<Code>>;
    /**
     *
     * @summary Force update design doc
     * @param entityName
     * @param warmup
     */
    updateDesignDoc(entityName: string, warmup?: boolean): Promise<boolean>;
    /**
     * Gets the value of a property in the CouchDB configuration.
     * WARNING: this method only works with a local installation of CouchDB.
     * @param section the section of the configuration.
     * @param key the specific key to get the value.
     */
    getCouchDbConfigProperty(section: string, key: string): Promise<string>;
    /**
     * Sets the value of a property in the CouchDB configuration.
     * WARNING: this method only works with a local installation of CouchDB.
     * @param section the section of the configuration.
     * @param key the specific key to get the value.
     * @param value the value to set for the property.
     */
    setCouchDbConfigProperty(section: string, key: string, value: string): Promise<string>;
    /**
     * Sets the value of a property in kraken. The current supported properties are:
     * - `useDataOwnerPartition` values: true/false
     * - `useObsoleteViews` values: true/false
     * WARNING: this method only works Kraken lite.
     * @param property the name of the property to set.
     * @param value the value to set for the property.
     */
    setLiteConfigProperty(property: string, value: string): Promise<string>;
}
