import type { PiiProtectionPipeline } from '@mcp-consultant-tools/core'; import type { AzureDevOpsClient } from '../azure-devops-client.js'; export declare class WorkItemService { private readonly client; private readonly piiPipeline?; constructor(client: AzureDevOpsClient, piiPipeline?: PiiProtectionPipeline | undefined); private redact; private static readonly SUMMARY_FIELDS; getWorkItem(project: string, workItemId: number): Promise; queryWorkItems(project: string, wiql: string, maxResults?: number): Promise; runSavedQuery(project: string, queryId: string, maxResults?: number, detail?: 'summary' | 'full', fields?: string[], groupBy?: string): Promise; getSavedQuery(project: string, queryId: string): Promise; getWorkItemComments(project: string, workItemId: number): Promise; addWorkItemComment(project: string, workItemId: number, commentText: string): Promise; updateWorkItemComment(project: string, workItemId: number, commentId: number, commentText: string): Promise; updateWorkItem(project: string, workItemId: number, patchOperations: any[]): Promise; setFieldsToMarkdownFormat(project: string, workItemId: number, fields: string[]): Promise; createWorkItem(project: string, workItemType: string, fields: any, parentId?: number, relations?: Array<{ rel: string; url: string; attributes?: Record; }>): Promise; /** * Download a work item attachment by its GUID and write it to disk. * * The endpoint `_apis/wit/attachments/{guid}?download=true` returns the raw * binary content. We write it to `{outputDir}/{filename}`. */ downloadAttachment(project: string, attachmentGuid: string, urlFileName: string, outputDir: string, outputFileName?: string): Promise<{ filePath: string; fileName: string; size: number; guid: string; }>; /** * Upload a local file as a work item attachment. * * The endpoint `_apis/wit/attachments?fileName={name}&uploadType=simple` * accepts the raw file bytes (octet-stream) and returns the attachment URL * which can be embedded in HTML fields as ``. */ uploadAttachment(project: string, filePath: string, fileName?: string): Promise<{ id: string; url: string; fileName: string; size: number; }>; deleteWorkItem(project: string, workItemId: number): Promise; } //# sourceMappingURL=work-item-service.d.ts.map