import { Observable } from 'rxjs';
import { UtilService } from '../../services/util.service';
import { TasksService } from './tasks.service';
import { TaskState } from './tasks.state';
import { Task } from '../../models/Task';
import { QueryParams } from '../../models/query-params';
import { Workflow } from '../../models/Workflow';
import { Form } from '../../models/Form';
import * as i0 from "@angular/core";
export declare class TaskFacade {
    private taskService;
    private taskState;
    private utilService;
    constructor(taskService: TasksService, taskState: TaskState, utilService: UtilService);
    isUpdating$(): Observable<boolean>;
    getRequests$(): Observable<Task[]>;
    getWorkflow$(): Observable<Workflow[]>;
    getForms$(): Observable<Form[]>;
    getQueryParams$(): Observable<QueryParams<Task>>;
    addNewRequest(task: Task): void;
    loadRequests(): Promise<void>;
    loadRequestsWithParam(param: string): Promise<void>;
    updateQueryParams(params: Partial<QueryParams<Task>>): void;
    addRequest(request: Partial<Task>): Promise<void>;
    updateRequest(request: Task): Promise<void>;
    deleteRequest(requestId: string): Promise<void>;
    approveRequest(request: Task): Promise<void>;
    loadWorkflows(): Promise<void>;
    loadFormsWithParam(param: string): Promise<Form | void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TaskFacade, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TaskFacade>;
}
