import type { RedmineUser, RedmineProject, RedmineIssue, TimeEntry, WikiPage, IssueQuery, TimeEntryQuery, RedmineResponse, IssueStatus, IssuePriority, Tracker, Activity, Version, Attachment, RedmineFile, Upload } from './types.js'; export declare class RedmineClient { private axios; constructor(); private setupRetryInterceptor; listProjects(params?: { offset?: number; limit?: number; }): Promise>; getProject(id: number | string, include?: string[]): Promise<{ project: RedmineProject; }>; listIssues(query?: IssueQuery): Promise>; getIssue(id: number, include?: string[]): Promise<{ issue: RedmineIssue; }>; createIssue(issue: Partial): Promise<{ issue: RedmineIssue; }>; updateIssue(id: number, issue: Partial): Promise; deleteIssue(id: number): Promise; listTimeEntries(query?: TimeEntryQuery): Promise>; getTimeEntry(id: number): Promise<{ time_entry: TimeEntry; }>; createTimeEntry(timeEntry: Partial): Promise<{ time_entry: TimeEntry; }>; updateTimeEntry(id: number, timeEntry: Partial): Promise; deleteTimeEntry(id: number): Promise; listUsers(params?: { offset?: number; limit?: number; name?: string; group_id?: number; }): Promise>; getCurrentUser(): Promise<{ user: RedmineUser; }>; getUser(id: number, include?: string[]): Promise<{ user: RedmineUser; }>; listWikiPages(projectId: number | string): Promise<{ wiki_pages: WikiPage[]; }>; getWikiPage(projectId: number | string, title: string, version?: number): Promise<{ wiki_page: WikiPage; }>; createOrUpdateWikiPage(projectId: number | string, title: string, wikiPage: Partial): Promise; deleteWikiPage(projectId: number | string, title: string): Promise; listIssueStatuses(): Promise<{ issue_statuses: IssueStatus[]; }>; listIssuePriorities(): Promise<{ issue_priorities: IssuePriority[]; }>; listTrackers(): Promise<{ trackers: Tracker[]; }>; listTimeEntryActivities(): Promise<{ time_entry_activities: Activity[]; }>; listVersions(projectId: number | string): Promise<{ versions: Version[]; }>; updateJournal(id: number, data: { notes?: string; private_notes?: boolean; }): Promise; getAttachment(id: number): Promise<{ attachment: Attachment; }>; updateAttachment(id: number, data: { filename?: string; description?: string; }): Promise; deleteAttachment(id: number): Promise; listFiles(projectId: number | string): Promise<{ files: RedmineFile[]; }>; createFile(projectId: number | string, data: { token: string; version_id?: number; filename?: string; description?: string; }): Promise; uploadFile(content: Buffer, filename?: string): Promise<{ upload: Upload; }>; customRequest(method: string, path: string, data?: unknown, params?: Record): Promise; } export declare const redmineClient: RedmineClient; //# sourceMappingURL=index.d.ts.map