import { ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { WorkItemLinkQuery } from '../../models/link';
import { WorkItemLinkUI } from './../../models/link';
import { WorkItemLinkTypeQuery } from './../../models/link-type';
import { LinkTypeUI } from './../../models/link-type';
import { WorkItemUI } from './../../models/work-item';
import { WorkItemService } from '../../services/work-item.service';
import { Store } from '@ngrx/store';
import { SpaceQuery } from './../../models/space';
import { AppState } from './../../states/app.state';
import { TypeaheadDropdownItem } from './../typeahead-selector/typeahead-selector.component';
export declare class WorkItemLinkComponent implements OnInit, OnDestroy {
    private store;
    private workItemService;
    private linkTypeQuery;
    private workItemLinkQuery;
    private spaceQuery;
    context: string;
    loggedIn: Boolean;
    detailContext: string;
    readonly onLinkClick: EventEmitter<{}>;
    searchResultList: any;
    linkTypeSelector: ElementRef;
    wiSearchBox: ElementRef;
    workItemSetter: WorkItemUI;
    private workItem;
    selectedWorkItem: TypeaheadDropdownItem;
    selectedLinkType: LinkTypeUI;
    linkTypesSource: Observable<LinkTypeUI[]>;
    workItemLinksSource: Observable<WorkItemLinkUI[]>;
    workItemLinksCountSource: Observable<number>;
    showLinkComponent: Boolean;
    lockCreation: boolean;
    searchNotAllowedIds: string[];
    constructor(store: Store<AppState>, workItemService: WorkItemService, linkTypeQuery: WorkItemLinkTypeQuery, workItemLinkQuery: WorkItemLinkQuery, spaceQuery: SpaceQuery);
    ngOnDestroy(): void;
    ngOnInit(): void;
    setSearchNotAllowedIds(): void;
    onSelectRelation(selectedLinkTypes: LinkTypeUI[]): void;
    onSelectWorkItem(event: any): void;
    createLink(event: Event): void;
    deleteLink(event: any, wiLink: any, workItem: any): void;
    onLinkClicked(wiNumber: any): void;
    searchWorkItem(term: string): Observable<TypeaheadDropdownItem[]>;
    createLinkObject(sourceId: string, targetId: string, linkId: string, linkType: string): {
        'attributes': {
            'version': number;
        };
        'relationships': {
            'link_type': {
                'data': {
                    'id': string;
                    'type': string;
                };
            };
            'source': {
                'data': {
                    'id': string;
                    'type': string;
                };
            };
            'target': {
                'data': {
                    'id': string;
                    'type': string;
                };
            };
        };
        'type': string;
    };
}
