import { Observable } from 'rxjs/Observable';
import { Subscription } from 'rxjs/Subscription';
import { OnInit, AfterViewInit, OnDestroy, EventEmitter } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { FilterConfig, FilterEvent } from 'patternfly-ng/filter';
import { ToolbarConfig } from 'patternfly-ng/toolbar';
import { Broadcaster } from 'ngx-base';
import { Spaces } from 'ngx-fabric8-wit';
import { AuthenticationService, UserService, User } from 'ngx-login-client';
import { EventService } from './../../services/event.service';
import { AreaModel } from '../../models/area.model';
import { AreaService } from '../../services/area.service';
import { FilterModel } from '../../models/filter.model';
import { CollaboratorService } from '../../services/collaborator.service';
import { FilterService } from '../../services/filter.service';
import { LabelService } from '../../services/label.service';
import { WorkItemService } from '../../services/work-item.service';
import { WorkItemType } from '../../models/work-item-type';
import { WorkItem } from '../../models/work-item';
export declare class ToolbarPanelComponent implements OnInit, AfterViewInit, OnDestroy {
    private eventService;
    private router;
    private route;
    private broadcaster;
    private areaService;
    private collaboratorService;
    private filterService;
    private labelService;
    private workItemService;
    private auth;
    private spaces;
    private userService;
    context: string;
    wiTypes: WorkItemType[];
    areas: AreaModel[];
    loggedInUser: User | Object;
    currentBoardType: WorkItemType | Object;
    onCreateNewWorkItemSelected: EventEmitter<any | null>;
    loggedIn: boolean;
    editEnabled: boolean;
    showTypesOptions: boolean;
    filters: any[];
    workItemDetail: WorkItem;
    spaceSubscription: Subscription;
    eventListeners: any[];
    currentQueryParams: Object;
    existingAllowedQueryParams: Object;
    filterConfig: FilterConfig;
    toolbarConfig: ToolbarConfig;
    allowedFilterKeys: string[];
    allowedMultipleFilterKeys: string[];
    textFilterKeys: string[];
    currentListType: string;
    private queryParamSubscriber;
    private savedFIlterFieldQueries;
    private internalFilterChange;
    private firstVisit;
    private separator;
    private loader;
    permanentFilters: any;
    transientFilters: any;
    constructor(eventService: EventService, router: Router, route: ActivatedRoute, broadcaster: Broadcaster, areaService: AreaService, collaboratorService: CollaboratorService, filterService: FilterService, labelService: LabelService, workItemService: WorkItemService, auth: AuthenticationService, spaces: Spaces, userService: UserService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onChangeListType(type: string): void;
    setFilterTypes(filters: FilterModel[]): void;
    setAppliedFilterFromUrl(): void;
    filterChange($event: FilterEvent): void;
    showTypes(): void;
    closePanel(): void;
    onChangeType(type: string): void;
    createNewWorkItem(event: MouseEvent): void;
    getFilterMap(): {
        area: {
            datasource: Observable<AreaModel[]>;
            datamap: (areas: any) => {
                queries: any;
                primaryQueries: any[];
            };
            getvalue: (area: any) => any;
            type: string;
        };
        assignee: {
            datasource: Observable<[User[], User]>;
            datamap: ([users, authUser]: [any, any]) => {
                queries: any;
                primaryQueries: ({
                    id: any;
                    value: string;
                    imageUrl: any;
                } | {
                    id: any;
                    value: string;
                })[];
            };
            getvalue: (user: any) => any;
            type: string;
        };
        creator: {
            datasource: Observable<[User[], User]>;
            datamap: ([users, authUser]: [any, any]) => {
                queries: any;
                primaryQueries: {
                    id: any;
                    value: string;
                    imageUrl: any;
                }[];
            };
            getvalue: (user: any) => any;
            type: string;
        };
        workitemtype: {
            datasource: Observable<any[]>;
            datamap: (witypes: any) => {
                queries: any;
                primaryQueries: any[];
            };
            getvalue: (type: any) => any;
            type: string;
        };
        state: {
            datasource: Observable<any[]>;
            datamap: (wistates: any) => {
                queries: any;
                primaryQueries: any[];
            };
            getvalue: (type: any) => any;
            type: string;
        };
        label: {
            datasource: Observable<any[]>;
            datamap: (labels: any) => {
                queries: any;
                primaryQueries: any[];
            };
            getvalue: (label: any) => any;
            type: string;
        };
        title: {
            type: string;
        };
    };
    selectFilterType(event: FilterEvent): void;
    /**
     * For type ahead event handle
     * from tool bar component
     * @param event
     */
    filterQueries(event: FilterEvent): void;
    fnSplitParams(ref_arr: any): void;
    listenToQueryParams(): void;
    checkboxToggle(event: any): void;
}
