import { EntityState } from '@ngrx/entity'; import { MemoizedSelector, Store } from '@ngrx/store'; import { Observable } from 'rxjs'; import { AppState, DetailPageState } from './../states/app.state'; import { AreaModel, AreaQuery, AreaUI } from './area.model'; import { Comment, CommentUI } from './comment'; import { CommonSelectorUI, Mapper, MapTree, modelService } from './common.model'; import { IterationModel, IterationQuery, IterationUI } from './iteration.model'; import { LabelMapper, LabelModel, LabelQuery, LabelUI } from './label.model'; import { Link } from './link'; import { UserQuery, UserService, UserUI } from './user'; import { WorkItemType, WorkItemTypeMapper, WorkItemTypeQuery, WorkItemTypeUI } from './work-item-type'; export declare class WorkItem extends modelService { hasChildren?: boolean; attributes: object; number?: number; relationships?: WorkItemRelations; relationalData?: RelationalData; links?: { self: string; }; } export declare class WorkItemRelations { area?: { data?: AreaModel; }; assignees?: { data?: UserService[]; }; labels?: { data?: LabelModel[]; links?: { related?: string; }; }; baseType?: { data: WorkItemType; }; parent?: { data?: WorkItem; }; children?: { links: { related: string; }; meta: { hasChildren: boolean; }; }; events?: { links?: { related?: string; }; }; comments?: { data?: Comment[]; links: { self?: string; related?: string; }; meta?: { totalCount?: number; }; }; creator?: { data: UserService; }; iteration?: { data?: IterationModel; }; codebase?: { links: { meta: { edit: string; }; }; }; workItemLinks?: { links?: { related?: string; }; }; } export declare class RelationalData { area?: AreaModel; creator?: UserService; comments?: Comment[]; parent?: WorkItem; assignees?: UserService[]; labels?: LabelModel[]; linkDicts?: LinkDict[]; iteration?: IterationModel; totalLinkCount?: number; wiType?: WorkItemType; } export declare class LinkDict { linkName: any; links: Link[]; count: number; } export interface WorkItemService extends WorkItem { } export interface WorkItemUI { id: string; title: string; number: string | number; createdAt: string; updatedAt: string; state: string; descriptionMarkup: string; descriptionRendered: string; description: string | { content: string; markup: 'Markdown'; rendered?: string; }; version: number; order: number; dynamicfields?: any; areaId: string; areaObs?: Observable; iterationId: string; iterationObs?: Observable; assignees: string[]; assigneesObs?: Observable; creator: string; creatorObs?: Observable; type: string; typeObs?: Observable; labels: string[]; labelsObs?: Observable; comments?: CommentUI[]; children?: WorkItemUI[]; commentLink: string; childrenLink: string; eventLink: string; hasChildren: boolean; parentID: string; link: string; WILinkUrl: string; columnIds?: string[] | null; treeStatus: 'collapsed' | 'expanded' | 'disabled' | 'loading'; childrenLoaded: boolean; bold: boolean; createId?: number; selected: boolean; editable?: boolean; } export interface WorkItemStateModel extends EntityState { nextLink: string; } export declare class WorkItemMapper implements Mapper { wiTypeMapper: WorkItemTypeMapper; labelMapper: LabelMapper; serviceToUiMapTree: MapTree; uiToServiceMapTree: MapTree; toDynamicUIModel(arg: WorkItemService, dynamicFields: any): any; toDyanmicServiceModel(arg: WorkItemUI, dynamicFields: any): any; toUIModel(arg: WorkItemService): WorkItemUI; toServiceModel(arg: WorkItemUI): WorkItemService; cleanModel(arg: WorkItemService, keysToRemove?: string[]): any; } export declare const workItemSelector: MemoizedSelector; export declare const getAllWorkItemSelector: MemoizedSelector; export declare const workItemDetailSelector: MemoizedSelector; export declare const workItemInDetailSelector: MemoizedSelector; export declare class WorkItemQuery { private store; private userQuery; private iterationQuery; private areaQuery; private labelQuery; private workItemTypeQuery; constructor(store: Store, userQuery: UserQuery, iterationQuery: IterationQuery, areaQuery: AreaQuery, labelQuery: LabelQuery, workItemTypeQuery: WorkItemTypeQuery); private workItemSource; resolveWorkItem(workItem: WorkItemUI): WorkItemUI; getWorkItems(): Observable; getWorkItem(number: string | number): Observable; /** * @description set property workItem.editable: true * IF loggedInUser is a Collaborator or creator of WorkItem * @param WorkItemUI || @param WorkItemUI[] * @return Observable || @return Observable */ setWorkItemsEditable(workItems: WorkItemUI | WorkItemUI[]): Observable; /** * This function returns an observable for the the selector component * with iteration data and the selected iteration flagged * This data can be used in work item detail page for the * iteration selector dropdown. * @param number */ getIterationsForWorkItem(number: string | number): Observable; /** * This function returns an observable for the the selector component * with area data and the selected area flagged * This data can be used in work item detail page for the * area selector dropdown. * @param number */ getAreasForWorkItem(number: string | number): Observable; /** * This function returns an observable for the the selector component * with work item type data and the selected iteration flagged * This data can be used in work item detail page for the * work item type selector dropdown. * @param number */ getTypesForWorkItem(number: string | number): Observable; /** * This function returns an observable for the the selector component * with work item state data and the selected iteration flagged * This data can be used in work item detail page for the * work item states selector dropdown. * @param number */ getStatesForWorkItem(number: string | number): Observable; readonly getWorkItemEntities: Observable<{ [id: string]: WorkItemUI; }>; getWorkItemsByIds(ids: string[]): Observable; getWorkItemWithId(id: string): Observable; }