/**
 * GitHub Issue Fetcher Service
 *
 * Adapter implementing `IExternalIssueFetcher` against the `gh` CLI.
 * GitHub-specific methods shell out to `gh`; `fetchJiraTicket` is not
 * supported by this adapter and throws `IssueServiceUnavailableError`.
 *
 * Supports owner/repo#number and #number (current repo) formats.
 */
import type { IExternalIssueFetcher, ExternalIssue, ExternalIssueSummary } from '../../../application/ports/output/services/external-issue-fetcher.interface.js';
type ExecFileFn = (cmd: string, args: string[], options?: object) => Promise<{
    stdout: string;
    stderr?: string;
}>;
export declare class GitHubIssueFetcher implements IExternalIssueFetcher {
    private readonly execFile;
    constructor(execFile: ExecFileFn);
    fetchGitHubIssue(ref: string): Promise<ExternalIssue>;
    fetchJiraTicket(_key: string): Promise<ExternalIssue>;
    getMergedPrCount(owner: string, repo: string, login: string): Promise<number>;
    listIssuesByLabel(owner: string, repo: string, label: string): Promise<ExternalIssueSummary[]>;
    listIssuesByLabels(owner: string, repo: string, labels: readonly string[]): Promise<ExternalIssueSummary[]>;
    private parseRef;
    private translateError;
}
export {};
//# sourceMappingURL=github-issue.service.d.ts.map