import { OnDestroy } from '@angular/core';
import { BehaviorSubject, Observable, ReplaySubject, Subject, Subscription } from 'rxjs';
import { TaskPanelData } from '../../../panel/task-panel-data/task-panel-data';
import { TaskResourceService } from '../../../resources/engine-endpoint/task-resource.service';
import { UserService } from '../../../user/services/user.service';
import { SnackBarService } from '../../../snack-bar/services/snack-bar.service';
import { TranslateService } from '@ngx-translate/core';
import { HttpParams } from '@angular/common/http';
import { Pagination } from '../../../resources/interface/pagination';
import { SearchService } from '../../../search/search-service/search.service';
import { LoggerService } from '../../../logger/services/logger.service';
import { ListRange } from '@angular/cdk/collections';
import { UserComparatorService } from '../../../user/services/user-comparator.service';
import { TaskEndpoint } from '../models/task-endpoint';
import { PageLoadRequestContext } from '../../abstract/page-load-request-context';
import { Filter } from '../../../filter/models/filter';
import { TaskPageLoadRequestResult } from '../models/task-page-load-request-result';
import { LoadingWithFilterEmitter } from '../../../utility/loading-with-filter-emitter';
import { SearchIndexResolverService } from '../../../search/search-keyword-resolver-service/search-index-resolver.service';
import { AbstractSortableViewComponent } from '../../abstract/sortable-view';
import { TaskViewConfiguration } from '../models/task-view-configuration';
import { ChangedFieldsMap } from '../../../event/services/interfaces/changed-fields-map';
import * as i0 from "@angular/core";
export declare class TaskViewService extends AbstractSortableViewComponent implements OnDestroy {
    protected _taskService: TaskResourceService;
    private _userService;
    private _snackBarService;
    private _translate;
    protected _searchService: SearchService;
    private _log;
    private _userComparator;
    protected readonly _preferredEndpoint: TaskEndpoint;
    protected _tasks$: Observable<Array<TaskPanelData>>;
    protected _changedFields$: Subject<ChangedFieldsMap>;
    protected _requestedPage$: BehaviorSubject<PageLoadRequestContext>;
    protected _loading$: LoadingWithFilterEmitter;
    protected _endOfData: boolean;
    protected _pagination: Pagination;
    protected _initiallyOpenOneTask: boolean;
    protected _closeTaskTabOnNoTasks: boolean;
    protected _panelUpdate$: BehaviorSubject<Array<TaskPanelData>>;
    protected _closeTab$: ReplaySubject<void>;
    protected _subInitiallyOpen: Subscription;
    protected _subCloseTask: Subscription;
    protected _subSearch: Subscription;
    protected _allowMultiOpen: boolean;
    private readonly _initializing;
    protected _paginationView: boolean;
    constructor(_taskService: TaskResourceService, _userService: UserService, _snackBarService: SnackBarService, _translate: TranslateService, _searchService: SearchService, _log: LoggerService, _userComparator: UserComparatorService, resolver: SearchIndexResolverService, _preferredEndpoint?: TaskEndpoint, taskViewConfig?: TaskViewConfiguration);
    ngOnDestroy(): void;
    get tasks$(): Observable<Array<TaskPanelData>>;
    get changedFields$(): Subject<ChangedFieldsMap>;
    get loading$(): Observable<boolean>;
    get loading(): boolean;
    get panelUpdate(): Observable<Array<TaskPanelData>>;
    get closeTab(): Observable<void>;
    get pagination(): Pagination;
    protected get activeFilter(): Filter;
    set allowMultiOpen(bool: boolean);
    get allowMultiOpen(): boolean;
    set paginationView(value: boolean);
    loadPage(requestContext: PageLoadRequestContext): Observable<TaskPageLoadRequestResult>;
    private updateTask;
    private blockTaskFields;
    nextPage(renderedRange: ListRange, totalLoaded: number, requestContext?: PageLoadRequestContext): void;
    nextPagePagination(length: number, pageIndex: number, requestContext?: PageLoadRequestContext): void;
    private isLoadingRelevantFilter;
    reload(): void;
    reloadCurrentPage(force?: boolean): void;
    protected getMetaFieldSortId(): string;
    protected getDefaultSortParam(): string;
    protected addPageParams(params: HttpParams, pagination: Pagination): HttpParams;
    static ɵfac: i0.ɵɵFactoryDeclaration<TaskViewService, [null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TaskViewService>;
}
