/**
 * GitHub `gh` CLI를 감싸 watch-pr-review에서 필요한 PR 조회/댓글 작성 기능을 제공하는 파일이다.
 * 모든 호출은 셸 인젝션을 피하기 위해 `execFileSync` 인자 배열 방식으로 실행한다.
 * 대용량 산출물(PR diff)은 변수에 적재하지 않고 파일로 직접 흘려보낸다.
 */
import type { PullRequestInfo } from '../domain/types';
/**
 * @description gh CLI가 설치되어 있고 인증된 상태인지 확인한다.
 * @returns 사용 가능하면 true
 */
export declare function isGhAvailable(): boolean;
/**
 * @description 저장소의 열린(open) PR 목록을 조회한다.
 * @param repo `owner/repository` 형식 저장소 식별자
 * @returns PR 요약 정보 배열
 */
export declare function getListOpenPullRequests(repo: string): PullRequestInfo[];
/**
 * @description PR을 구성하는 커밋 해시(OID) 목록을 조회한다.
 * @param repo `owner/repository` 형식 저장소 식별자
 * @param prNumber PR 번호
 * @returns 커밋 OID 문자열 배열
 */
export declare function getPullRequestCommitOids(repo: string, prNumber: number): string[];
/**
 * @description PR에 달린 댓글 본문 목록을 조회한다. (다른 PC에서의 중복 리뷰 방어에 사용)
 * @param repo `owner/repository` 형식 저장소 식별자
 * @param prNumber PR 번호
 * @returns 댓글 본문 문자열 목록
 */
export declare function getPullRequestComments(repo: string, prNumber: number): string[];
/**
 * @description PR의 변경 대상 파일 경로 목록을 조회한다. (조건부 리뷰 규칙 선택에 사용)
 * diff를 파싱하지 않고 메타데이터로 가져와 대용량 문자열 적재를 피한다.
 * @param repo `owner/repository` 형식 저장소 식별자
 * @param prNumber PR 번호
 * @returns 변경된 파일 경로 목록
 */
export declare function getPullRequestChangedFiles(repo: string, prNumber: number): string[];
/**
 * @description PR의 통합 diff를 변수에 담지 않고 지정 파일로 직접 스트리밍 저장한다.
 * @param repo `owner/repository` 형식 저장소 식별자
 * @param prNumber PR 번호
 * @param outputPath diff를 저장할 파일 경로
 * @returns 저장된 diff 파일의 바이트 크기 (0이면 변경 없음)
 */
export declare function writePullRequestDiff(repo: string, prNumber: number, outputPath: string): number;
/**
 * @description PR에 댓글을 작성한다. 본문은 길이 제한과 메모리 적재를 피하기 위해 파일에서 직접 읽는다.
 * @param repo `owner/repository` 형식 저장소 식별자
 * @param prNumber PR 번호
 * @param bodyFilePath 댓글 본문이 저장된 마크다운 파일 경로
 */
export declare function createPullRequestComment(repo: string, prNumber: number, bodyFilePath: string): void;
//# sourceMappingURL=gh.d.ts.map