import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { AppState } from '../states/app.state';
import { Mapper, MapTree } from './common.model';
import { LinkTypeService } from './link-type';
import { WorkItemMapper, WorkItemUI } from './work-item';
export declare class Link {
    id?: string;
    type: string;
    attributes: {
        'version': Number;
    };
    relationships: {
        'link_type': {
            'data': {
                'id': string;
                'type': string;
            };
        };
        'source': {
            'data': {
                'id': string;
                'type': string;
            };
        };
        'target': {
            'data': {
                'id': string;
                'type': string;
            };
        };
    };
    relationalData?: RelationalData;
}
export declare class RelationalData {
    source?: {
        title: string;
        id: string;
        number: string;
        state: string;
    };
    target?: {
        title: string;
        id: string;
        number: string;
        state: string;
    };
    linkType?: string;
}
export interface WorkItemLinkService extends Link {
}
export interface LinkTypeUI {
    id: string;
    type: string;
    forwardName: string;
    reverseName: string;
    version: string;
    selfLink: string;
}
export declare class LinkTypeMapper implements Mapper<LinkTypeService, LinkTypeUI> {
    serviceToUiMapTree: MapTree;
    uiToServiceMapTree: MapTree;
    toUIModel(arg: LinkTypeService): LinkTypeUI;
    toServiceModel(arg: LinkTypeUI): LinkTypeService;
}
export interface WorkItemLinkUI {
    id: string;
    type: string;
    version: number;
    linkType: LinkTypeUI;
    source: WorkItemUI;
    target: WorkItemUI;
    newlyAdded: boolean;
}
export declare class WorkItemLinkMapper implements Mapper<WorkItemLinkService, WorkItemLinkUI> {
    ltMapper: LinkTypeMapper;
    wiMapper: WorkItemMapper;
    serviceToUiMapTree: MapTree;
    uiToServiceMapTree: MapTree;
    toUIModel(arg: WorkItemLinkService): WorkItemLinkUI;
    toServiceModel(arg: WorkItemLinkUI): WorkItemLinkService;
}
export declare class WorkItemLinkQuery {
    private store;
    constructor(store: Store<AppState>);
    readonly getWorkItemLinks: Observable<WorkItemLinkUI[]>;
    readonly getWorkItemLinksCount: Observable<number>;
}
