import type { RepoInfo, IssueDetails, PullRequestDetails, LocalGitStatus, RateLimitSnapshot, GitHubRateLimitResponse } from './types.js'; import type { GitHubIssue, GitHubMilestone, GitHubPullRequest, GitHubReview, GitHubReviewComment, GitHubWorkflowRun, CopilotReviewSummary, ProjectContext, KanbanBoard, RepoStats, TrafficData, TrafficReferrer, PopularPath } from '../../types/index.js'; export type { RepoInfo, IssueDetails, PullRequestDetails }; import type { ServerRuntime } from '../../utils/maintenance-lock.js'; export declare function getGitHubIntegration(workingDir?: string, runtime?: ServerRuntime, token?: string): GitHubIntegration; /** * GitHubIntegration - Handles GitHub API and local git operations * Uses composition over sub-modules to maintain the exact same API surface. */ export declare class GitHubIntegration { private client; private issuesManager; private pullRequestsManager; private projectsManager; private milestonesManager; private insightsManager; private repositoryManager; constructor(workingDir?: string, token?: string); isApiAvailable(): boolean; getLatestRateLimit(): RateLimitSnapshot | null; getRateLimit(): Promise; clearCache(): void; getRepoInfo(): Promise; getCachedRepoInfo(): RepoInfo | null; setCachedRepoInfo(info: RepoInfo): void; getLocalGitStatus(): Promise; getIssues(owner: string, repo: string, state?: 'open' | 'closed' | 'all', limit?: number, abortSignal?: AbortSignal): Promise; getIssue(owner: string, repo: string, issueNumber: number): Promise; getIssueComments(owner: string, repo: string, issueNumber: number, limit?: number): Promise<{ author: string; body: string; createdAt: string; }[]>; createIssue(owner: string, repo: string, title: string, body?: string, labels?: string[], assignees?: string[], milestone?: number): Promise<{ number: number; url: string; title: string; nodeId: string; } | null>; closeIssue(owner: string, repo: string, issueNumber: number, comment?: string): Promise<{ success: boolean; url: string; } | null>; getPullRequests(owner: string, repo: string, state?: 'open' | 'closed' | 'all', limit?: number, abortSignal?: AbortSignal): Promise; getPullRequest(owner: string, repo: string, prNumber: number): Promise; getReviews(owner: string, repo: string, prNumber: number): Promise; getReviewComments(owner: string, repo: string, prNumber: number): Promise; getCopilotReviewSummary(owner: string, repo: string, prNumber: number): Promise; getWorkflowRuns(owner: string, repo: string, limit?: number, abortSignal?: AbortSignal): Promise; getRepoContext(abortSignal?: AbortSignal): Promise; getProjectKanban(owner: string, projectNumber: number, repo?: string, abortSignal?: AbortSignal): Promise; moveProjectItem(projectId: string, itemId: string, statusFieldId: string, statusOptionId: string): Promise<{ success: boolean; error?: string; }>; addProjectItem(projectId: string, contentId: string): Promise<{ success: boolean; itemId?: string; error?: string; }>; deleteProjectItem(projectId: string, itemId: string): Promise<{ success: boolean; error?: string; }>; getMilestones(owner: string, repo: string, state?: 'open' | 'closed' | 'all', limit?: number, abortSignal?: AbortSignal): Promise; getMilestone(owner: string, repo: string, milestoneNumber: number): Promise; createMilestone(owner: string, repo: string, title: string, description?: string, dueOn?: string): Promise; updateMilestone(owner: string, repo: string, milestoneNumber: number, updates: { title?: string; description?: string; dueOn?: string | null; state?: 'open' | 'closed'; }): Promise; deleteMilestone(owner: string, repo: string, milestoneNumber: number): Promise<{ success: boolean; error?: string; }>; getRepoStats(owner: string, repo: string): Promise; getTrafficData(owner: string, repo: string): Promise; getTopReferrers(owner: string, repo: string, limit?: number): Promise; getPopularPaths(owner: string, repo: string, limit?: number): Promise; } //# sourceMappingURL=index.d.ts.map