import CNShell from "cn-shell"; interface AuthDetails { username: string; password: string; } interface FieldDict { byName: { [key: string]: { id: string; type: string; itemType: string; }; }; byId: { [key: string]: { name: string; type: string; itemType: string; }; }; } interface JqlResults { startAt: number; maxResults: number; total: number; issues: { key: string; }[]; } declare class CNJira extends CNShell { private _server; private _user; private _password; private _jiraSessionId; private _refreshPeriod; private _timeout; private _resourceUrls; private _fieldDict; constructor(name: string, master?: CNShell); start(): Promise; stop(): Promise; healthCheck(): Promise; login(auth?: AuthDetails): Promise; logout(): Promise; getFieldDict(update?: boolean): Promise; getAllowedFieldValues(projectKey: string, issueType: string, fieldName: string): Promise; getComponents(projectKey: string): Promise<{ [key: string]: string; }>; getProjects(component?: string): Promise; updateProject(project: string, data: { [key: string]: string; }): Promise; updateProjectLead(project: string, lead: string): Promise; createIssue(projectKey: string, issueType: string, component: string, fields: { [key: string]: any; }): Promise; updateIssue(key: string, fields: { [key: string]: any; }, notifyUsers?: boolean): Promise; getIssue(idOrKey: string): Promise; issueReporter(key: string, reporter: string, notifyUsers?: boolean): Promise; assignIssue(key: string, assignee: string, notifyUsers?: boolean): Promise; updateLabels(key: string, action: "add" | "remove", labels: string[], notifyUsers?: boolean): Promise; addComment(idOrKey: string, comment: string): Promise; addWatcher(idOrKey: string, watcher: string): Promise; removeWatcher(idOrKey: string, watcher: string): Promise; getTransitions(idOrKey: string): Promise<{ [key: string]: string; }>; doTransition(idOrKey: string, transitionIdOrName: string, fields?: string[], comment?: string): Promise; runJql(jql: string): Promise; jqlGetAll(jql: string): Promise; getUserDashboardIds(userId: string): Promise; getUserFilterIds(userId: string): Promise; migrateDashboards(fromUserId: string, toUserId: string, dashboardIds: number[]): Promise; migrateFilters(fromUserId: string, toUserId: string, filterIds: string[]): Promise; getUser(user: string, byKey: boolean, includeGroups?: boolean): Promise; addUserToGroup(user: string, group: string): Promise; getUserGroups(user: string): Promise; addUserToApplication(user: string, applicationKey: string): Promise; } export { CNJira, AuthDetails, FieldDict, JqlResults };