/** * GitHub Client Interface * * Domain interface for GitHub operations. * Implemented by GithubClient in the infrastructure layer. * * This interface ensures the application layer doesn't depend * directly on infrastructure implementations. */ import type { IGhPrResponse, IGhCheckResponse, IGhReviewCommentResponse, IGhReviewThreadResponse, IGhIssueResponse, IGhUserResponse } from '../../../infrastructure/github/types'; /** * GitHub client interface for PR and repository operations. */ export interface IGithubClient { getPr(repo: string, prNumber: number): Promise; getPrChecks(repo: string, prNumber: number): Promise; getPrComments(repo: string, prNumber: number): Promise; getPrReviewThreads(repo: string, prNumber: number): Promise; getPrDiff(repo: string, prNumber: number): Promise; getIssue(repo: string, issueNumber: number): Promise; replyToComment(repo: string, commentId: number, body: string): Promise; addReaction(repo: string, commentId: number, reaction: '+1' | '-1' | 'laugh' | 'confused' | 'heart' | 'hooray' | 'rocket' | 'eyes'): Promise; getCurrentUser(): Promise; getUserId(): Promise; getCurrentRepo(): Promise; getCurrentPrNumber(): Promise; getCurrentBranch(): Promise; getDefaultBranch(repo: string): Promise; getCommitMessages(base: string, head?: string): Promise; getChangedFiles(base: string, head?: string): Promise; commentOnIssue(repo: string, issueNumber: number, body: string): Promise; createPr(options: { repo: string; title: string; body: string; base?: string; head?: string; draft?: boolean; }): Promise; isAvailable(): Promise; } //# sourceMappingURL=IGithubClient.d.ts.map