import { TaskResourceService } from '../task-resource.service';
import { FieldConverterService } from '../../../task-content/services/field-converter.service';
import { ConfigurationService } from '../../../configuration/configuration.service';
import { Params, ProviderProgress, ResourceProvider } from '../../resource-provider.service';
import { LoggerService } from '../../../logger/services/logger.service';
import { Observable } from 'rxjs';
import { Filter } from '../../../filter/models/filter';
import { Page } from '../../interface/page';
import { TaskSetDataRequestBody } from '../../interface/task-set-data-request-body';
import { TaskReference } from '../../interface/task-reference';
import { Task } from '../../interface/task';
import { HttpParams } from '@angular/common/http';
import { EventOutcomeMessageResource, MessageResource } from '../../interface/message-resource';
import { FileFieldRequest } from "../../interface/file-field-request-body";
import * as i0 from "@angular/core";
export declare class PublicTaskResourceService extends TaskResourceService {
    protected _provider: ResourceProvider;
    protected _configService: ConfigurationService;
    protected _fieldConverter: FieldConverterService;
    protected _logger: LoggerService;
    constructor(_provider: ResourceProvider, _configService: ConfigurationService, _fieldConverter: FieldConverterService, _logger: LoggerService);
    /**
     * Assign task
     * GET
     */
    assignTask(taskId: string): Observable<EventOutcomeMessageResource>;
    /**
     * Cancel task
     * GET
     */
    cancelTask(taskId: string): Observable<EventOutcomeMessageResource>;
    /**
     * Finish task
     * GET
     */
    finishTask(taskId: string): Observable<EventOutcomeMessageResource>;
    /**
     * Get tasks of the case
     * GET
     */
    getAllTasksByCase(caseId: string): Observable<Array<TaskReference>>;
    /**
     * Get all task data
     *
     * GET
     *
     * If you don't want to parse the response yourself use [getData]{@link TaskResourceService#getData} instead.
     *
     * @returns the raw backend response without any additional processing
     */
    rawGetData(taskId: string): Observable<EventOutcomeMessageResource>;
    /**
     * Set task data
     * POST
     */
    setData(taskId: string, body: TaskSetDataRequestBody): Observable<EventOutcomeMessageResource>;
    /**
     * Searches tasks trough the Mongo endpoint.
     * POST
     * @param filterParam filter used to search the tasks. Must be of type `TASK`.
     * Note that the `query` attribute of the filter cannot be used with this endpoint.
     * Attempting to use it will display a warning and remove the attribute from the request.
     * @param params Additional request parameters
     */
    getTasks(filterParam: Filter, params?: Params): Observable<Page<Task>>;
    /**
     * Download task file field value
     * GET
     */
    downloadFile(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob>;
    /**
     * Upload file into the task
     * POST
     */
    uploadFile(taskId: string, body: object, multipleFiles: boolean): Observable<ProviderProgress | EventOutcomeMessageResource>;
    /**
     * Delete file from the task
     * DELETE
     */
    deleteFile(taskId: string, body: FileFieldRequest): Observable<MessageResource>;
    /**
     * Download task file preview for field value
     * GET
     */
    downloadFilePreview(taskId: string, params: HttpParams): Observable<ProviderProgress | Blob>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PublicTaskResourceService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PublicTaskResourceService>;
}
