/** * Jira REST API Client * * Minimal, typed wrapper around Jira Cloud REST API (v3). * Provides core operations for interacting with Jira issues. */ import { type RetryOptions } from "@/utils/retry"; import type { JiraIssue, JiraTransition, JiraComment, JiraEpic } from "@/types"; import type { JiraClient } from "@/server/jira/jiraClient"; export { textToADF, adfToText } from "@/utils/adf"; /** * Options for API calls */ export interface JiraClientOptions { retry?: RetryOptions; client?: JiraClient; } /** * Get a Jira issue by key (e.g., "NOVA-123") */ export declare function getIssue(issueKey: string, options?: JiraClientOptions): Promise; /** * Add a comment to a Jira issue * * @param issueKey - Issue key (e.g., "NOVA-123") * @param body - Comment body (plain text - will be converted to ADF format) * @param options - Client options */ export declare function addComment(issueKey: string, body: string, options?: JiraClientOptions): Promise; /** * List available transitions for an issue */ export declare function listTransitions(issueKey: string, options?: JiraClientOptions): Promise; /** * Transition an issue to a new status * * @param issueKey - Issue key (e.g., "NOVA-123") * @param transitionNameOrId - Transition name (e.g., "In Progress") or transition ID * @param options - Client options */ export declare function transitionIssue(issueKey: string, transitionNameOrId: string, options?: JiraClientOptions): Promise; /** * Search for issues using JQL (Jira Query Language) */ export declare function searchIssues(jql: string, options?: JiraClientOptions & { maxResults?: number; startAt?: number; }): Promise; /** * Get an epic by key */ export declare function getEpic(epicKey: string, options?: JiraClientOptions): Promise; /** * Get all issues linked to an epic */ export declare function getEpicIssues(epicKey: string, options?: JiraClientOptions): Promise; /** * Create a new Jira issue */ export declare function createIssue(fields: { summary: string; description?: string | any; issuetype: { id: string; } | { name: string; }; project: { key: string; } | { id: string; }; [key: string]: unknown; }, options?: JiraClientOptions): Promise; /** * Update a Jira issue */ export declare function updateIssue(issueKey: string, fields: Partial<{ summary: string; description: string | any; [key: string]: unknown; }>, options?: JiraClientOptions): Promise; /** * Get available issue types for a project */ export declare function getIssueTypes(projectKey: string, options?: JiraClientOptions): Promise>; /** * Get current user information */ export declare function getMyself(options?: JiraClientOptions): Promise<{ accountId: string; displayName: string; emailAddress?: string; }>; /** * Check if a project exists and is accessible */ export declare function ensureProjectExists(projectKey: string, options?: JiraClientOptions): Promise; /** * List all accessible Jira projects */ export declare function listProjects(options?: JiraClientOptions): Promise>; /** * List issues with flexible filtering */ export declare function listIssues(filters?: { projectKey?: string; jql?: string; status?: string; assignee?: string | "me"; labels?: string[]; maxResults?: number; }, options?: JiraClientOptions): Promise; /** * Get JQL Autocomplete Data * Returns the field names, function names, and reserved words for JQL. */ export declare function getJqlAutocompleteData(options?: JiraClientOptions): Promise; /** * Parse JQL query * Validates and parses JQL queries. */ export declare function parseJql(jql: string, options?: JiraClientOptions): Promise; /** * Sanitize JQL query (GDPR) * Converts user identifiers to account IDs. */ export declare function sanitizeJql(jql: string, options?: JiraClientOptions): Promise; /** * Add an attachment to a Jira issue * * @param issueKey - Issue key (e.g., "NOVA-123") * @param file - File blob/buffer to upload * @param filename - Name of the file * @param options - Client options */ export declare function addAttachment(issueKey: string, file: Blob, filename: string, options?: JiraClientOptions): Promise>; //# sourceMappingURL=jira-client.d.ts.map