import { Observable } from 'rxjs';
import { UtilService } from '../../services/util.service';
import { MyQueueService } from './my-queue.service';
import { MyQueueState } from './my-queue.state';
import { Task } from '../../models/Task';
import { QueryParams } from '../../models/query-params';
import { WorkflowAction } from '../../models/WorkflowAction';
import { Actor } from '../../models/Actor';
import { Form } from '../../models/Form';
import * as i0 from "@angular/core";
export declare class MyQueueFacade {
    private service;
    private state;
    private utilService;
    constructor(service: MyQueueService, state: MyQueueState, utilService: UtilService);
    isUpdating$(): Observable<boolean>;
    getRequests$(): Observable<Task[]>;
    getNextActions$(): Observable<WorkflowAction[]>;
    getNextActors$(): Observable<Actor[]>;
    getTaskForms$(): Observable<Form[]>;
    getQueryParams$(): Observable<QueryParams<Task>>;
    loadRequests(queue?: boolean): Promise<void>;
    loadRequestsWithParam(param: string): Promise<void>;
    updateQueryParams(params: Partial<QueryParams<Task>> & {
        user?: string;
    }): void;
    addRequest(request: Partial<Task>): Promise<void>;
    updateRequest(request: Task): Promise<void>;
    deleteRequest(requestId: string): Promise<void>;
    approveRequest(request: Task): Promise<void>;
    loadNextActions(taskCode: string): Promise<WorkflowAction[]>;
    loadPreviousActions(taskCode: string): Promise<WorkflowAction[]>;
    loadAllPreviousActions(taskCode: string): Promise<WorkflowAction[]>;
    loadNextActors(taskCode: string, stageCode?: string): Promise<Actor[]>;
    loadTaskForms(taskCode: string): Promise<Form[]>;
    passOn(action: WorkflowAction, request: Task, comment: string, recipient: string | null): Promise<void>;
    passBack(action: WorkflowAction, request: Task, comment: string, recipient: string | null): Promise<void>;
    skipTo(action: WorkflowAction, request: Task, comment: string, recipient: string | null): Promise<void>;
    pickTask(action: WorkflowAction, request: Task, comment: string, recipient: string | null): Promise<void>;
    reAssign(request: Task, comment: string): Promise<void>;
    fillForm(form: Form, taskCode: string): Promise<Form>;
    loadMore(queue?: boolean): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MyQueueFacade, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MyQueueFacade>;
}
