/**
 * review feature의 git 조회와 diff 조합을 담당한다.
 * working tree와 commit 대상의 실제 파일 목록, patch, log 조회를 이 레이어에 모은다.
 */
import type { CommitOption } from '../../../platform/types/index';
/**
 * @description
 * staged/unstaged working tree의 변경 파일 경로 목록을 조회한다.
 * @param rootDir 현재 작업 루트
 * @param kind working tree 종류
 * @returns 변경 파일 경로 목록
 */
export declare function getWorkingTreeFileList(rootDir: string, kind: Extract<CommitOption['kind'], 'staged' | 'unstaged'>): string[];
/**
 * @description
 * 최근 커밋 로그를 review 선택 옵션 목록으로 조회한다.
 * @param rootDir 현재 작업 루트
 * @returns 최근 커밋 옵션 목록
 */
export declare function getRecentCommitOptions(rootDir: string): CommitOption[];
/**
 * @description
 * working tree 가상 항목과 최근 커밋 항목을 합쳐 review 대상 목록을 만든다.
 * @param rootDir 현재 작업 루트
 * @returns review 대상 선택 옵션 목록
 */
export declare function getReviewTargetOptions(rootDir: string): CommitOption[];
/**
 * @description
 * 사용자가 선택한 review 대상의 patch/stat 출력을 markdown 문자열 하나로 합친다.
 * @param rootDir 현재 작업 루트
 * @param commits 사용자가 선택한 review 대상 목록
 * @returns 리뷰 프롬프트 입력용 diff 텍스트
 */
export declare function buildSelectedCommitDiff(rootDir: string, commits: CommitOption[]): string;
/**
 * @description
 * review 대상 하나가 실제로 변경한 파일 경로 목록을 조회한다.
 * staged/unstaged 는 working tree diff를, commit 은 `git show --name-only` 를 사용한다.
 * @param rootDir 현재 작업 루트
 * @param target 선택한 review 대상
 * @returns 대상 파일 경로 목록
 */
export declare function getReviewTargetFilePaths(rootDir: string, target: CommitOption): string[];
/**
 * @description
 * 여러 review 대상에서 변경된 파일 경로를 중복 없이 합친다.
 * @param rootDir 현재 작업 루트
 * @param targets 사용자가 선택한 review 대상 목록
 * @returns dedupe 된 파일 경로 목록
 */
export declare function buildSelectedCommitFilePaths(rootDir: string, targets: CommitOption[]): string[];
//# sourceMappingURL=git.d.ts.map