/** * Jira Adapter - PMAdapter Implementation * * Adapts Jira REST API to F5 unified issue format. */ import { PMAdapter, F5Issue, F5Attachment, IssueFilter, BulkOperationResult, FieldDefinition, ProjectInfo, IssueTypeInfo, PriorityInfo, StatusInfo, ConnectionTestResult, JiraConfig } from '../../types/integrations.js'; import { JiraClient } from './jira-client.js'; export declare class JiraAdapter implements PMAdapter { readonly name = "Jira"; readonly version = "1.0.0"; private client; private config; private connected; constructor(config: JiraConfig); connect(): Promise; disconnect(): Promise; testConnection(): Promise; getIssue(id: string): Promise; getIssues(filter: IssueFilter): Promise; createIssue(issue: Omit): Promise; updateIssue(id: string, updates: Partial): Promise; deleteIssue(id: string): Promise; bulkCreate(issues: Omit[]): Promise; bulkUpdate(updates: Array<{ id: string; changes: Partial; }>): Promise; getChangedSince(since: Date): Promise; getIssueHash(id: string): Promise; getAvailableFields(): Promise; getProjects(): Promise; getIssueTypes(): Promise; getPriorities(): Promise; getStatuses(): Promise; /** * Get attachments for an issue */ getAttachments(issueKey: string): Promise; /** * Upload attachment to an issue */ addAttachment(issueKey: string, filePath: string, filename?: string): Promise; /** * Download attachment to local file */ downloadAttachment(issueKey: string, attachmentId: string, outputDir: string): Promise; /** * Download all attachments for an issue */ downloadAllAttachments(issueKey: string, outputDir: string): Promise; /** * Delete an attachment */ deleteAttachment(attachmentId: string): Promise; /** * Get the Jira client for direct access (e.g., for attachments URL) */ getClient(): JiraClient; private toF5Issue; private toF5Attachment; private toJiraCreateRequest; private mapJiraIssueType; private mapJiraPriority; private mapJiraStatus; private toJiraIssueType; private toJiraPriority; private transitionToStatus; private getJiraStatusNames; private mapFieldType; private mapStatusCategory; private buildJql; }