import type { FileChange, GitProvider, Issue, IssueOptions, PullRequest, PullRequestOptions } from '../types'; /** * Thrown when lockfile regeneration fails. Not a transient git error — * must bubble past the API fallback so we don't silently open a PR with * stale lockfiles. */ declare class LockfileRegenerationError extends Error { constructor(message: string); } export declare class GitHubProvider implements GitProvider { constructor(token: string, owner: string, repo: string, hasWorkflowPermissions?: boolean, workflowToken?: string); clearCache(): void; branchExists(branchName: string): Promise; createBranch(branchName: string, baseBranch: string): Promise; commitChanges(branchName: string, message: string, files: FileChange[], baseBranch?: string): Promise; createPullRequest(options: PullRequestOptions): Promise; runCommand(command: string, args: string[], tokenOverride?: string): Promise; getPullRequests(state?: 'open' | 'closed' | 'all'): Promise; updatePullRequest(prNumber: number, options: Partial): Promise; closePullRequest(prNumber: number): Promise; reopenPullRequest(prNumber: number): Promise; createComment(prNumber: number, comment: string): Promise; mergePullRequest(prNumber: number, strategy?: 'merge' | 'squash' | 'rebase'): Promise; deleteBranch(branchName: string): Promise; getBuddyBotBranches(): Promise>; getOrphanedBuddyBotBranches(): Promise>; cleanupStaleBranches(olderThanDays?: number, dryRun?: boolean): Promise<{ deleted: string[], failed: string[] }>; createIssue(options: IssueOptions): Promise; getIssues(state?: 'open' | 'closed' | 'all'): Promise; updateIssue(issueNumber: number, options: Partial): Promise; closeIssue(issueNumber: number): Promise; unpinIssue(issueNumber: number): Promise; }