import { Observable } from 'rxjs/Observable';
import { ElementRef, EventEmitter, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
import { Router } from '@angular/router';
import { FormGroup } from '@angular/forms';
import { Subscription } from 'rxjs/Subscription';
import { Spaces } from 'ngx-fabric8-wit';
import { Broadcaster, Logger } from 'ngx-base';
import { AuthenticationService, User, UserService } from 'ngx-login-client';
import { AreaModel } from '../../models/area.model';
import { AreaService } from '../../services/area.service';
import { Comment } from './../../models/comment';
import { IterationModel } from '../../models/iteration.model';
import { IterationService } from '../../services/iteration.service';
import { LabelSelectorComponent } from './../label-selector/label-selector.component';
import { WorkItemTypeControlService } from '../../services/work-item-type-control.service';
import { TypeaheadDropdown, TypeaheadDropdownValue } from '../typeahead-dropdown/typeahead-dropdown.component';
import { WorkItem } from '../../models/work-item';
import { WorkItemService } from '../../services/work-item.service';
import { WorkItemDataService } from './../../services/work-item-data.service';
import { WorkItemType } from '../../models/work-item-type';
import { CollaboratorService } from '../../services/collaborator.service';
import { LabelService } from '../../services/label.service';
import { LabelModel } from '../../models/label.model';
import { AssigneeSelectorComponent } from './../assignee-selector/assignee-selector.component';
import { SelectDropdownComponent } from './../../widgets/select-dropdown/select-dropdown.component';
import { Store } from '@ngrx/store';
import { AppState } from './../../states/app.state';
export declare class WorkItemDetailComponent implements OnInit, OnDestroy {
    private areaService;
    private auth;
    private broadcaster;
    private labelService;
    private workItemService;
    private workItemDataService;
    private route;
    private location;
    private logger;
    private router;
    private iterationService;
    private userService;
    private workItemTypeControlService;
    private spaces;
    private collaboratorService;
    private store;
    title: any;
    userList: any;
    dropdownButton: any;
    areaSelectbox: TypeaheadDropdown;
    iterationSelectbox: TypeaheadDropdown;
    labelSelector: LabelSelectorComponent;
    assignee: any;
    labelnameInput: ElementRef;
    dropdownRef: SelectDropdownComponent;
    AssigneeSelector: AssigneeSelectorComponent;
    selectedLabels: LabelModel[];
    selectedAssignees: User[];
    onOpenSelector: EventEmitter<any>;
    onCloseSelector: EventEmitter<LabelModel[]>;
    workItem: WorkItem;
    workItemRef: WorkItem;
    workItemTypes: WorkItemType[];
    showDialog: boolean;
    submitted: boolean;
    active: boolean;
    loggedIn: Boolean;
    headerEditable: Boolean;
    validTitle: Boolean;
    titleText: any;
    descText: any;
    searchAssignee: Boolean;
    users: User[];
    loggedInUser: User;
    addNewWI: Boolean;
    panelState: string;
    areas: TypeaheadDropdownValue[];
    iterations: TypeaheadDropdownValue[];
    comments: Comment[];
    spaceSubscription: Subscription;
    workItemPayload: WorkItem;
    eventListeners: any[];
    dynamicFormGroup: FormGroup;
    dynamicFormDataArray: any;
    saving: Boolean;
    savingError: Boolean;
    errorMessage: String;
    queryParams: Object;
    itemSubscription: any;
    loadingComments: boolean;
    loadingTypes: boolean;
    loadingIteration: boolean;
    loadingArea: boolean;
    loadingLabels: boolean;
    loadingAssignees: boolean;
    labels: LabelModel[];
    private activeAddAssignee;
    private searchValue;
    constructor(areaService: AreaService, auth: AuthenticationService, broadcaster: Broadcaster, labelService: LabelService, workItemService: WorkItemService, workItemDataService: WorkItemDataService, route: ActivatedRoute, location: Location, logger: Logger, router: Router, iterationService: IterationService, userService: UserService, workItemTypeControlService: WorkItemTypeControlService, spaces: Spaces, collaboratorService: CollaboratorService, store: Store<AppState>);
    onClick(targetElement: any, assigned_user: any): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    openPreview(workitem: WorkItem): void;
    closePreview(): void;
    loadWorkItem(id: string): void;
    resolveWITypes(): Observable<any>;
    resolveAssignees(): Observable<any>;
    resolveCreators(): Observable<any>;
    resolveArea(): Observable<any>;
    resolveIteration(): Observable<any>;
    resolveLinks(): Observable<any>;
    resolveComments(): Observable<any>;
    resolveLabels(): Observable<any>;
    createWorkItemObj(type: string): void;
    getAllUsers(): Observable<any>;
    updateOnList(): void;
    descUpdate(event: any): void;
    showPreview(event: any): void;
    dynamicFieldUpdated(event: any): void;
    closeHeader(): void;
    openHeader(): void;
    getAreas(): void;
    getIterations(): void;
    onChangeState(option: any): void;
    saveTitle(event: any): void;
    updateLabels(selectedLabels: LabelModel[]): void;
    save(payload?: WorkItem, returnObservable?: boolean): Observable<WorkItem>;
    createComment(comment: any): void;
    updateComment(comment: any): void;
    deleteComment(comment: any): void;
    removeLable(event: any): void;
    closeDetails(): void;
    listenToEvents(): void;
    preventDef(event: any): void;
    activeSearchAssignee(): void;
    assignUser(users: User[]): void;
    cancelAssignment(): void;
    closeUserRestFields(): void;
    iterationUpdated(iterationId: string): void;
    extractAreaKeyValue(areas: AreaModel[]): TypeaheadDropdownValue[];
    extractIterationKeyValue(iterations: IterationModel[]): TypeaheadDropdownValue[];
    focusArea(): void;
    focusIteration(): void;
    areaUpdated(areaId: string): void;
    constructUrl(workItem: WorkItem): string;
    onLabelClick(event: any): void;
    onKeyEvent(event: any): void;
    onOpen(event: any): void;
    onClose(event: any): void;
    openDropdown(): void;
    closeDropdown(): void;
    closeAddAssignee(): void;
}
