import { Observable } from 'rxjs';
import { IDataFilter } from 'verben-ng-ui';
import { WorkflowsService } from './workflows.service';
import { WorkflowsState } from './workflows.state';
import { UtilService } from '../../services/util.service';
import { Workflow } from '../../models/Workflow';
import { QueryParams } from '../../models/query-params';
import { WorkflowOperation } from '../../models/WorkflowOperation';
import * as i0 from "@angular/core";
export declare class WorkflowFacade {
    private workflowService;
    private workflowState;
    private utilService;
    private searchSubject;
    private destroy$;
    constructor(workflowService: WorkflowsService, workflowState: WorkflowsState, utilService: UtilService);
    destroy(): void;
    isUpdating$(): Observable<boolean>;
    getRequests$(): Observable<Workflow[]>;
    getOperations$(): Observable<WorkflowOperation[]>;
    getFilterParams$(): Observable<IDataFilter[]>;
    getQueryParams$(): Observable<QueryParams<Workflow>>;
    getSearchTerm$(): Observable<string>;
    search(term: string): void;
    private handleSearch;
    filter(filterParams: IDataFilter[]): Promise<void>;
    loadMore(): Promise<void>;
    loadRequests(): Promise<void>;
    loadOperations(): Promise<void>;
    loadRequestsWithParam(param: string): Promise<void>;
    loadRequestsByFilterParams(filterParams: IDataFilter[]): Promise<void>;
    updateQueryParams(params: Partial<QueryParams<Workflow>>): void;
    addRequest(request: Partial<Workflow>): Promise<void>;
    updateRequest(request: Workflow): Promise<void>;
    deleteRequest(requestId: string): Promise<void>;
    approveRequest(request: Workflow): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowFacade, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WorkflowFacade>;
}
