import { MatExpansionPanel } from '@angular/material/expansion';
import { ActivatedRoute } from '@angular/router';
import { TabbedVirtualScrollComponent } from '../../../../panel/abstract/tabbed-virtual-scroll.component';
import { AfterViewInit, EventEmitter, OnDestroy } from '@angular/core';
import { Observable, Subject, Subscription } from 'rxjs';
import { TaskPanelData } from '../../../../panel/task-panel-data/task-panel-data';
import { HeaderColumn } from '../../../../header/models/header-column';
import { TaskEventNotification } from '../../../../task-content/model/task-event-notification';
import { TaskViewService } from '../../service/task-view.service';
import { LoggerService } from '../../../../logger/services/logger.service';
import { InjectedTabData } from '../../../../tabs/interfaces';
import * as i0 from "@angular/core";
export declare abstract class AbstractDefaultTaskListComponent extends TabbedVirtualScrollComponent implements AfterViewInit, OnDestroy {
    protected _taskViewService: TaskViewService;
    protected _log: LoggerService;
    protected route?: ActivatedRoute;
    protected _tasks$: Observable<Array<TaskPanelData>>;
    protected _redirectTaskId: string;
    protected _unsubscribe$: Subject<void>;
    protected _allowMultiOpen: boolean;
    protected _taskPanelRefs: Map<string, MatExpansionPanel>;
    loading$: Observable<boolean>;
    selectedHeaders$: Observable<Array<HeaderColumn>>;
    responsiveBody: boolean;
    forceLoadDataOnOpen: boolean;
    textEllipsis: boolean;
    showMoreMenu: boolean;
    preventExpand: boolean;
    set allowMultiOpen(bool: boolean);
    get allowMultiOpen(): boolean;
    /**
     * Emits notifications about task events
     */
    taskEvent: EventEmitter<TaskEventNotification>;
    protected _unsub: Subscription;
    protected _canReload: boolean;
    constructor(_taskViewService: TaskViewService, _log: LoggerService, injectedTabData: InjectedTabData, route?: ActivatedRoute);
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    trackBy(_idx: number, item: TaskPanelData): any;
    /**
     * Emits an event into this component's @Output attribute
     * @param event the event that will be emitted
     */
    emitTaskEvent(event: TaskEventNotification): void;
    addToPanelRefs(task: TaskPanelData, panelRef: MatExpansionPanel): void;
    onRedirect(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDefaultTaskListComponent, [null, null, { optional: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractDefaultTaskListComponent, "ncc-abstract-default-task-list", never, { "loading$": { "alias": "loading$"; "required": false; }; "selectedHeaders$": { "alias": "selectedHeaders$"; "required": false; }; "responsiveBody": { "alias": "responsiveBody"; "required": false; }; "forceLoadDataOnOpen": { "alias": "forceLoadDataOnOpen"; "required": false; }; "textEllipsis": { "alias": "textEllipsis"; "required": false; }; "showMoreMenu": { "alias": "showMoreMenu"; "required": false; }; "preventExpand": { "alias": "preventExpand"; "required": false; }; "allowMultiOpen": { "alias": "allowMultiOpen"; "required": false; }; }, { "taskEvent": "taskEvent"; }, never, never, false, never>;
}
