import VSSInterfaces = require("../interfaces/common/VSSInterfaces");
/**
* Comment on an artifact like Work Item or Wiki, etc.
*/
export interface Comment extends CommentResourceReference {
/**
* The id of the artifact this comment belongs to
*/
artifactId?: string;
/**
* IdentityRef of the creator of the comment.
*/
createdBy?: VSSInterfaces.IdentityRef;
/**
* The creation date of the comment.
*/
createdDate?: Date;
/**
* The id assigned to the comment.
*/
id?: number;
/**
* Indicates if the comment has been deleted.
*/
isDeleted?: boolean;
/**
* The mentions of the comment.
*/
mentions?: CommentMention[];
/**
* IdentityRef of the user who last modified the comment.
*/
modifiedBy?: VSSInterfaces.IdentityRef;
/**
* The last modification date of the comment.
*/
modifiedDate?: Date;
/**
* The comment id of the parent comment, if any
*/
parentId?: number;
/**
* The reactions on the comment.
*/
reactions?: CommentReaction[];
/**
* The rendered text of the comment
*/
renderedText?: string;
/**
* Replies for this comment
*/
replies?: CommentList;
/**
* Indicates the current state of the comment
*/
state?: CommentState;
/**
* The plaintext/markdown version of the comment
*/
text?: string;
/**
* The current version of the comment
*/
version?: number;
}
/**
* Represents an attachment to a comment.
*/
export interface CommentAttachment extends CommentResourceReference {
/**
* IdentityRef of the creator of the attachment.
*/
createdBy?: VSSInterfaces.IdentityRef;
/**
* The creation date of the attachment.
*/
createdDate?: Date;
/**
* Unique Id of the attachment.
*/
id?: string;
}
/**
* Represents a request to create a work item comment.
*/
export interface CommentCreateParameters {
/**
* Optional CommentId of the parent in order to add a reply for an existing comment
*/
parentId?: number;
/**
* Text of the comment
*/
text: string;
}
/**
* Specifies the additional data retrieval options for comments.
*/
export declare enum CommentExpandOptions {
/**
* Include comments only, no mentions, reactions or rendered text
*/
None = 0,
/**
* Include comment reactions
*/
Reactions = 1,
/**
* Include the rendered text (html) in addition to markdown text
*/
RenderedText = 8,
/**
* If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes.
*/
RenderedTextOnly = 16,
/**
* If specified, then responses will be expanded in the results
*/
Children = 32,
/**
* Expand everything including Reactions, Mentions and also include RenderedText (HTML) for markdown comments
*/
All = -17
}
/**
* Format of the comment. Ex. Markdown, Html.
*/
export declare enum CommentFormat {
Markdown = 0,
Html = 1
}
/**
* Represents a list of comments.
*/
export interface CommentList extends CommentResourceReference {
/**
* List of comments in the current batch.
*/
comments?: Comment[];
/**
* A string token that can be used to retrieving next page of comments if available. Otherwise null.
*/
continuationToken?: string;
/**
* The count of comments in the current batch.
*/
count?: number;
/**
* Uri to the next page of comments if it is available. Otherwise null.
*/
nextPage?: string;
/**
* Total count of comments on a work item.
*/
totalCount?: number;
}
/**
* Contains information about various artifacts mentioned in the comment
*/
export interface CommentMention extends CommentResourceReference {
/**
* Id of the artifact this mention belongs to
*/
artifactId?: string;
/**
* Id of the comment associated with this mention. Nullable to support legacy mentions which can potentially have null commentId
*/
commentId?: number;
/**
* Value of the mentioned artifact. Expected Value varies by CommentMentionType: Person: VSID associated with the identity Work Item: ID of the work item Pull Request: ID of the Pull Request
*/
mentionedArtifact?: string;
/**
* The context which represent where this mentioned was parsed from
*/
type?: CommentMentionType;
}
export declare enum CommentMentionType {
/**
* An identity was mentioned by using the format @{VSID}
*/
Person = 0,
/**
* A work item was mentioned by using the format #{Work Item ID}
*/
WorkItem = 1,
/**
* A Pull Request was mentioned by using the format !{PR Number}
*/
PullRequest = 2
}
/**
* Contains information about comment reaction for a particular reaction type.
*/
export interface CommentReaction extends CommentResourceReference {
/**
* The id of the comment this reaction belongs to.
*/
commentId?: number;
/**
* Total number of reactions for the CommentReactionType.
*/
count?: number;
/**
* Flag to indicate if the current user has engaged on this particular EngagementType (e.g. if they liked the associated comment).
*/
isCurrentUserEngaged?: boolean;
/**
* Type of the reaction.
*/
type?: CommentReactionType;
}
/**
* Represents different reaction types for a comment
*/
export declare enum CommentReactionType {
Like = 0,
Dislike = 1,
Heart = 2,
Hooray = 3,
Smile = 4,
Confused = 5
}
/**
* Base class for comment resource references
*/
export interface CommentResourceReference {
/**
* REST URL for the resource.
*/
url?: string;
}
export declare enum CommentSortOrder {
/**
* The results will be sorted in Ascending order.
*/
Asc = 1,
/**
* The results will be sorted in Descending order.
*/
Desc = 2
}
/**
* Represents the possible comment states.
*/
export declare enum CommentState {
Active = 0,
Resolved = 1,
Closed = 2
}
/**
* Represents a request to update a comment.
*/
export interface CommentUpdateParameters {
/**
* Set the current state of the comment
*/
state?: CommentState;
/**
* The updated text of the comment
*/
text: string;
}
/**
* Represents a specific version of a comment on a work item.
*/
export interface CommentVersion extends CommentResourceReference {
/**
* IdentityRef of the creator of the comment.
*/
createdBy?: VSSInterfaces.IdentityRef;
/**
* The creation date of the comment.
*/
createdDate?: Date;
/**
* The id assigned to the comment.
*/
id?: number;
/**
* Indicates if the comment has been deleted at this version.
*/
isDeleted?: boolean;
/**
* IdentityRef of the user who modified the comment at this version.
*/
modifiedBy?: VSSInterfaces.IdentityRef;
/**
* The modification date of the comment for this version.
*/
modifiedDate?: Date;
/**
* The rendered content of the comment at this version.
*/
renderedText?: string;
/**
* Indicates the current state of the comment
*/
state?: CommentState;
/**
* The text of the comment at this version.
*/
text?: string;
/**
* The version number.
*/
version?: number;
}
export declare var TypeInfo: {
Comment: any;
CommentAttachment: any;
CommentExpandOptions: {
enumValues: {
none: number;
reactions: number;
renderedText: number;
renderedTextOnly: number;
children: number;
all: number;
};
};
CommentFormat: {
enumValues: {
markdown: number;
html: number;
};
};
CommentList: any;
CommentMention: any;
CommentMentionType: {
enumValues: {
person: number;
workItem: number;
pullRequest: number;
};
};
CommentReaction: any;
CommentReactionType: {
enumValues: {
like: number;
dislike: number;
heart: number;
hooray: number;
smile: number;
confused: number;
};
};
CommentSortOrder: {
enumValues: {
asc: number;
desc: number;
};
};
CommentState: {
enumValues: {
active: number;
resolved: number;
closed: number;
};
};
CommentUpdateParameters: any;
CommentVersion: any;
};