import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Broadcaster } from 'ngx-base';
import { FilterConfig, FilterEvent } from 'patternfly-ng/filter';
import { ToolbarConfig } from 'patternfly-ng/toolbar';
import { Observable, Subscription } from 'rxjs';
import { AuthenticationService, User } from 'ngx-login-client';
import { AreaQuery, AreaUI } from '../../models/area.model';
import { FilterModel } from '../../models/filter.model';
import { WorkItem, WorkItemQuery } from '../../models/work-item';
import { WorkItemTypeQuery, WorkItemTypeUI } from '../../models/work-item-type';
import { FilterService } from '../../services/filter.service';
import { GroupTypeQuery } from './../../models/group-types.model';
import { IterationQuery } from './../../models/iteration.model';
import { LabelQuery, LabelUI } from './../../models/label.model';
import { UserQuery, UserUI } from './../../models/user';
import { Store } from '@ngrx/store';
import { SpaceQuery } from './../../models/space';
import { AppState } from './../../states/app.state';
export declare class ToolbarPanelComponent implements OnInit, AfterViewInit, OnDestroy {
    private router;
    private route;
    private broadcaster;
    private filterService;
    private auth;
    private store;
    private cdr;
    private userQuery;
    private labelQuery;
    private groupTypeQuery;
    private iterationQuery;
    private areaQuery;
    private workItemQuery;
    private workItemTypeQuery;
    private spaceQuery;
    context: string;
    loggedInUser: User | Object;
    dropdownPlacement: any;
    readonly onCreateNewWorkItemSelected: EventEmitter<any | null>;
    loggedIn: boolean;
    showTypesOptions: boolean;
    filters: any[];
    workItemDetail: WorkItem;
    spaceSubscription: Subscription;
    eventListeners: any[];
    existingAllowedQueryParams: Object;
    filterConfig: FilterConfig;
    toolbarConfig: ToolbarConfig;
    allowedFilterKeys: string[];
    allowedMultipleFilterKeys: string[];
    textFilterKeys: string[];
    showSaveFilterButton: boolean;
    isFilterSaveOpen: boolean;
    currentListType: string;
    private queryParamSubscriber;
    private savedFIlterFieldQueries;
    private separator;
    private loader;
    private workItemTypeData;
    private stateData;
    private labelData;
    private spaceData;
    private filterData;
    private groupTypeData;
    private iterationData;
    private activeFilters;
    private activeFilterFromSidePanel;
    private currentQuery;
    private totalCount;
    private isShowTreeOn;
    private isShowCompletedOn;
    private isStateFilterSelected;
    private routeSource;
    private queryExp;
    constructor(router: Router, route: ActivatedRoute, broadcaster: Broadcaster, filterService: FilterService, auth: AuthenticationService, store: Store<AppState>, cdr: ChangeDetectorRef, userQuery: UserQuery, labelQuery: LabelQuery, groupTypeQuery: GroupTypeQuery, iterationQuery: IterationQuery, areaQuery: AreaQuery, workItemQuery: WorkItemQuery, workItemTypeQuery: WorkItemTypeQuery, spaceQuery: SpaceQuery);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setFilterTypes(filters: FilterModel[]): void;
    filterChange($event: FilterEvent): void;
    selectFilterType(event: FilterEvent): void;
    /**
     * For type ahead event handle
     * from tool bar component
     * @param event
     */
    filterQueries(event: FilterEvent): void;
    initiateDataSources(): void;
    getFilterMap(): {
        area: {
            datasource: Observable<AreaUI[]>;
            datamap: (areas: AreaUI[]) => {
                queries: {
                    id: string;
                    value: string;
                }[];
                primaryQueries: any[];
            };
            getvalue: (area: AreaUI) => string;
            type: string;
        };
        assignee: {
            datasource: Observable<UserUI[]>;
            datamap: (users: any) => {
                queries: any;
                primaryQueries: ({
                    id: any;
                    value: string;
                    imageUrl: any;
                } | {
                    id: any;
                    value: string;
                    imageUrl?: undefined;
                })[];
            };
            type: string;
        };
        creator: {
            datasource: Observable<UserUI[]>;
            datamap: (users: any) => {
                queries: any;
                primaryQueries: {
                    id: any;
                    value: string;
                    imageUrl: any;
                }[];
            };
            getvalue: (user: any) => any;
            type: string;
        };
        workitemtype: {
            datasource: Observable<WorkItemTypeUI[]>;
            datamap: (witypes: WorkItemTypeUI[]) => {
                queries: {
                    id: string;
                    value: string;
                    iconStyleClass: string;
                }[];
                primaryQueries: any[];
            };
            getvalue: (type: WorkItemTypeUI) => string;
            type: string;
        };
        state: {
            datasource: Observable<string[]>;
            datamap: (wistates: string[]) => {
                queries: {
                    id: string;
                    value: string;
                }[];
                primaryQueries: any[];
            };
            getvalue: (type: any) => any;
            type: string;
        };
        label: {
            datasource: Observable<LabelUI[]>;
            datamap: (labels: LabelUI[]) => {
                queries: {
                    id: string;
                    value: string;
                }[];
                primaryQueries: any[];
            };
            getvalue: (label: LabelUI) => string;
            type: string;
        };
        title: {
            type: string;
        };
    };
    checkURL(): void;
    checkFilterFromSidePanle(): void;
    formatFilterFIelds(fields: any): void;
    removeFilter(field?: any): void;
    removeAllFilters(): void;
    saveFilters(filterSaveInp: HTMLInputElement): void;
    showTreeToggle(e: any): void;
    showCompletedToggle(e: any): void;
    handleShowTreeCheckBox(): void;
    closeFilterSave(filterSaveInp: HTMLInputElement): void;
    saveFilterDropdownChange(value: boolean): void;
}
