import { Result, ApiError, NetworkError } from "@atlassian-cli/shared"; import type { JiraConfig, Issue, IssueSearchResult, Transition, Comment, CommentsResponse, CreateIssueRequest, UpdateIssueRequest, ApproximateCountResponse, ProjectFull, ProjectSearchResult, ProjectStatus, ProjectComponent, ProjectVersion, IssueLinkType, CreateIssueLinkRequest, LabelsResponse, JiraField, Filter, FilterSearchResult, CreateFilterRequest, UpdateFilterRequest, Worklog, WorklogsResponse, CreateWorklogRequest, UpdateWorklogRequest, Attachment, Watchers, TaskResult, ArchiveIssuesResponse } from "../types/jira.js"; export declare class JiraClient { private client; private domain; constructor(config: JiraConfig); private handleError; /** * Convert AxiosError to typed error for Result */ private toError; /** * Get issue - Result-returning version */ getIssueResult(issueKey: string, expand?: string[]): Promise>; /** * @deprecated Use getIssueResult for typed error handling */ getIssue(issueKey: string, expand?: string[]): Promise; searchIssues(jql: string, options?: { startAt?: number; maxResults?: number; fields?: string[]; expand?: string[]; nextPageToken?: string; }): Promise; getApproximateCount(jql: string): Promise; createIssue(request: CreateIssueRequest): Promise; updateIssue(issueKey: string, request: UpdateIssueRequest): Promise; deleteIssue(issueKey: string, deleteSubtasks?: boolean): Promise; assignIssue(issueKey: string, accountId: string | null): Promise; getTransitions(issueKey: string): Promise; transitionIssue(issueKey: string, transitionId: string): Promise; getComments(issueKey: string, options?: { startAt?: number; maxResults?: number; }): Promise; addComment(issueKey: string, body: string | object): Promise; searchUsers(query: string): Promise<{ accountId: string; displayName: string; emailAddress?: string; }[]>; listProjects(options?: { startAt?: number; maxResults?: number; expand?: string[]; query?: string; typeKey?: string; orderBy?: string; }): Promise; getProject(projectKeyOrId: string, expand?: string[]): Promise; getProjectStatuses(projectKeyOrId: string): Promise; getProjectComponents(projectKeyOrId: string): Promise; getProjectVersions(projectKeyOrId: string, options?: { startAt?: number; maxResults?: number; orderBy?: string; status?: string; expand?: string[]; }): Promise<{ values: ProjectVersion[]; startAt: number; maxResults: number; total: number; isLast: boolean; }>; getIssueLinkTypes(): Promise; createIssueLink(request: CreateIssueLinkRequest): Promise; deleteIssueLink(linkId: string): Promise; listLabels(options?: { startAt?: number; maxResults?: number; }): Promise; listFields(): Promise; searchFilters(options?: { filterName?: string; accountId?: string; owner?: string; groupname?: string; projectId?: number; orderBy?: string; startAt?: number; maxResults?: number; expand?: string[]; favourites?: boolean; }): Promise; getFilter(filterId: string, expand?: string[]): Promise; createFilter(request: CreateFilterRequest): Promise; updateFilter(filterId: string, request: UpdateFilterRequest): Promise; deleteFilter(filterId: string): Promise; getWorklogs(issueKey: string, options?: { startAt?: number; maxResults?: number; }): Promise; getWorklog(issueKey: string, worklogId: string): Promise; addWorklog(issueKey: string, request: CreateWorklogRequest): Promise; updateWorklog(issueKey: string, worklogId: string, request: UpdateWorklogRequest): Promise; deleteWorklog(issueKey: string, worklogId: string): Promise; getAttachments(issueKey: string): Promise; addAttachment(issueKey: string, filePath: string): Promise; deleteAttachment(attachmentId: string): Promise; getWatchers(issueKey: string): Promise; addWatcher(issueKey: string, accountId: string): Promise; removeWatcher(issueKey: string, accountId: string): Promise; getCurrentUser(): Promise<{ accountId: string; displayName: string; emailAddress?: string; }>; getTask(taskId: string): Promise; cancelTask(taskId: string): Promise; archiveIssues(issueIdsOrKeys: string[]): Promise; archiveIssuesByJql(jql: string): Promise; }