/**
 * 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 { FilterChainMaintenanceTask } from '../model/FilterChainMaintenanceTask';
import { MaintenanceTask } from '../model/MaintenanceTask';
import { PaginatedListMaintenanceTask } from '../model/PaginatedListMaintenanceTask';
import { AuthenticationProvider } from '../../icc-x-api/auth/AuthenticationProvider';
import { EntityBulkShareResult } from '../model/requests/EntityBulkShareResult';
import { ListOfIds } from '../model/ListOfIds';
import { BulkShareOrUpdateMetadataParams } from '../model/requests/BulkShareOrUpdateMetadataParams';
import { TimingInfo } from '../model/TimingInfo';
export declare class IccMaintenanceTaskApi {
    host: string;
    _headers: Array<XHR.Header>;
    authenticationProvider: AuthenticationProvider;
    fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
    get headers(): Promise<Array<XHR.Header>>;
    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 a maintenanceTask
     * @param body
     */
    createMaintenanceTask(body?: MaintenanceTask): Promise<MaintenanceTask>;
    /**
     * @summary Deletes a batch of maintenanceTasks.
     *
     * @param maintenanceTaskIds a ListOfIds containing the ids of the maintenanceTasks to delete.
     * @return a Promise that will resolve in an array of DocIdentifiers of the successfully deleted maintenanceTasks.
     */
    deleteMaintenanceTasks(maintenanceTaskIds: ListOfIds): Promise<Array<DocIdentifier>>;
    /**
     * @summary Deletes a single maintenanceTask by id.
     *
     * @param maintenanceTaskId the id of the maintenanceTask to delete.
     * @return a Promise that will resolve in the DocIdentifier of the deleted maintenanceTask.
     */
    deleteMaintenanceTask(maintenanceTaskId: string): Promise<DocIdentifier>;
    /**
     * Returns a list of maintenanceTasks along with next start keys and Document ID. If the nextStartKey is Null it means that this is the last page.
     * @summary Filter maintenanceTasks for the current user (HcParty)
     * @param body
     * @param startDocumentId A maintenanceTask document ID
     * @param limit Number of rows
     * @param collectTiming if true, include server-side filter timing information in the response
     */
    filterMaintenanceTasksBy(startDocumentId?: string, limit?: number, body?: FilterChainMaintenanceTask, collectTiming?: false): Promise<PaginatedListMaintenanceTask>;
    filterMaintenanceTasksBy(startDocumentId?: string, limit?: number, body?: FilterChainMaintenanceTask, collectTiming?: true): Promise<PaginatedListMaintenanceTask & TimingInfo>;
    /**
     *
     * @summary Gets a maintenanceTask
     * @param maintenanceTaskId
     */
    getMaintenanceTask(maintenanceTaskId: string): Promise<MaintenanceTask>;
    /**
     *
     * @summary Updates a maintenanceTask
     * @param body
     */
    modifyMaintenanceTask(body?: MaintenanceTask): Promise<MaintenanceTask>;
    /**
     * @internal this method is for internal use only and may be changed without notice
     */
    bulkShareMaintenanceTask(request: BulkShareOrUpdateMetadataParams): Promise<EntityBulkShareResult<MaintenanceTask>[]>;
}
