import { ApiResponse } from './types/index.js';
export declare class JiraApiClient {
    private config;
    private logger;
    private rateLimiter;
    private authHeader;
    constructor();
    private getJiraConfig;
    testConnection(): Promise<void>;
    makeRequest<T = any>(endpoint: string, options?: {
        method?: string;
        body?: any;
        useV3Api?: boolean;
        useAgileApi?: boolean;
        headers?: Record<string, string>;
    }): Promise<T>;
    getBoards(params?: {
        type?: string;
        projectKeyOrId?: string;
    }): Promise<ApiResponse<any>>;
    getBoard(boardId: string): Promise<any>;
    getBoardIssues(boardId: string, params?: {
        jql?: string;
        maxResults?: number;
        startAt?: number;
        fields?: string[];
    }): Promise<ApiResponse<any>>;
    searchIssues(jql: string, params?: {
        maxResults?: number;
        startAt?: number;
        fields?: string[];
        expand?: string[];
    }): Promise<ApiResponse<any>>;
    getIssue(issueIdOrKey: string, params?: {
        fields?: string[];
        expand?: string[];
    }): Promise<any>;
    addComment(issueIdOrKey: string, comment: string): Promise<any>;
    updateIssue(issueIdOrKey: string, updateData: any): Promise<void>;
    createIssue(issueData: any): Promise<any>;
    transitionIssue(issueIdOrKey: string, transitionId: string, comment?: string): Promise<void>;
    getIssueTransitions(issueIdOrKey: string): Promise<any>;
    getCurrentUser(): Promise<any>;
    searchUsers(query: string): Promise<any[]>;
    getUser(accountId: string): Promise<any>;
    getProjects(): Promise<any[]>;
    getProject(projectIdOrKey: string): Promise<any>;
    getServerInfo(): Promise<any>;
    addWorklog(issueIdOrKey: string, timeSpent: string, comment?: string, startedDate?: string): Promise<any>;
    getWorklogs(issueIdOrKey: string): Promise<any>;
}
