/**
 * GitHub implementation of GitProvider
 *
 * Delegates each operation to the corresponding function in
 * issue.ts and pr.ts. This class is the single place that binds
 * the GitProvider contract to the GitHub/gh-CLI implementation.
 */
import { checkGhCli, fetchIssue, listOpenIssues, createIssue } from './issue.js';
import { findExistingPr, commentOnPr, closePr, createPullRequest, fetchPrReviewComments, listOpenPrs, mergePr } from './pr.js';
export class GitHubProvider {
    checkCliStatus(cwd) {
        return checkGhCli(cwd ?? process.cwd());
    }
    fetchIssue(issueNumber, cwd) {
        return fetchIssue(issueNumber, cwd ?? process.cwd());
    }
    createIssue(options, cwd) {
        return createIssue(options, cwd ?? process.cwd());
    }
    fetchPrReviewComments(prNumber, cwd) {
        return fetchPrReviewComments(prNumber, cwd ?? process.cwd());
    }
    listOpenIssues(cwd) {
        return listOpenIssues(cwd ?? process.cwd());
    }
    listOpenPrs(cwd) {
        return listOpenPrs(cwd ?? process.cwd());
    }
    findExistingPr(branch, cwd) {
        return findExistingPr(branch, cwd ?? process.cwd());
    }
    createPullRequest(options, cwd) {
        return createPullRequest(options, cwd ?? process.cwd());
    }
    commentOnPr(prNumber, body, cwd) {
        return commentOnPr(prNumber, body, cwd ?? process.cwd());
    }
    closePr(prNumber, cwd) {
        return closePr(prNumber, cwd ?? process.cwd());
    }
    mergePr(prNumber, cwd) {
        return mergePr(prNumber, cwd ?? process.cwd());
    }
}
//# sourceMappingURL=GitHubProvider.js.map