import { ReviewComment } from '../entities/ReviewComment'; import { ReviewReport } from '../entities/ReviewReport'; export interface GitHubConfig { readonly token: string; readonly baseUrl?: string; readonly apiVersion?: string; } export interface PullRequestInfo { readonly number: number; readonly title: string; readonly body: string; readonly author: string; readonly baseBranch: string; readonly headBranch: string; readonly state: 'open' | 'closed' | 'merged'; readonly files: string[]; readonly commits: string[]; } export interface IssueInfo { readonly number: number; readonly title: string; readonly body: string; readonly author: string; readonly state: 'open' | 'closed'; readonly labels: string[]; } export interface GitHubPort { /** * Post a review comment to a pull request */ postReviewComment(owner: string, repo: string, pullNumber: number, comment: ReviewComment): Promise; /** * Post multiple review comments to a pull request */ postReviewComments(owner: string, repo: string, pullNumber: number, comments: ReviewComment[]): Promise; /** * Post a review report as a comment to a pull request */ postReviewReport(owner: string, repo: string, pullNumber: number, report: ReviewReport): Promise; /** * Get pull request information */ getPullRequest(owner: string, repo: string, pullNumber: number): Promise; /** * Get issue information */ getIssue(owner: string, repo: string, issueNumber: number): Promise; /** * Get repository information */ getRepository(owner: string, repo: string): Promise<{ readonly name: string; readonly fullName: string; readonly description: string; readonly language: string; readonly defaultBranch: string; readonly isPrivate: boolean; } | null>; /** * Check if the GitHub API is accessible */ isAccessible(): Promise; /** * Get the current user information */ getCurrentUser(): Promise<{ readonly login: string; readonly name: string; readonly email: string; } | null>; } //# sourceMappingURL=GitHubPort.d.ts.map