import { type Issue, type CreateIssueParams, type IssueFilters } from "../../types/index.js"; /** * Service for GitHub issue operations * Single Responsibility: Issue CRUD and listing */ export declare class IssueService { /** * Build a consistent cache key for an issue. * Uses `issue:owner/repo#number` when owner/repo are known, otherwise `issue:number`. */ static getCacheKey(issueNumber: number, owner?: string, repo?: string): string; /** * Create a new GitHub issue */ create(params: CreateIssueParams): Promise; /** * Get a specific issue by number. * When owner/repo are provided, queries that repo directly instead of the CWD repo. */ get(issueNumber: number, owner?: string, repo?: string): Promise; /** * Update issue body */ updateBody(issueNumber: number, body: string): Promise; /** * Close an issue */ close(issueNumber: number, owner?: string, repo?: string): Promise; /** * List issues with filters */ list(filters?: IssueFilters): Promise; /** * Add a comment to an issue */ addComment(issueNumber: number, body: string): Promise; /** * Get comments for an issue/PR */ getComments(issueNumber: number): Promise>; /** * Add labels to an issue */ addLabels(issueNumber: number, labels: string[]): Promise; /** * Remove a label from an issue */ removeLabel(issueNumber: number, label: string): Promise; /** * List user's open issues (authored or assigned) */ listUserIssues(username: string): Promise; /** * Transform GitHub API issue to internal format */ private transformToInternalIssue; } //# sourceMappingURL=IssueService.d.ts.map