/**
 * commit feature의 git 실행과 실제 커밋 오케스트레이션을 담당한다.
 * argv 기반 git 호출, staging/commit 수행, 최신 로그 조회를 이 레이어에 모은다.
 */
import type { ParsedCliArgs } from '../../../platform/types/index';
import type { CommitExecutionResult, CommitMessageDraft } from '../domain/types';
/**
 * @description
 * 현재 저장소 상태에 맞는 `git add` 인자 목록을 생성한다.
 * `.ju-hong-e`가 이미 ignore 상태라면 pathspec exclude를 중복으로 넘기지 않아야
 * ignored path 오류 없이 현재 폴더 변경만 정상적으로 stage 할 수 있다.
 * @param rootDir git 명령 실행 기준 디렉터리
 * @returns `git add` 인자 배열
 */
export declare function getStageWorkspaceArgs(rootDir: string): string[];
/**
 * @description
 * 현재 HEAD 해시를 조회한다.
 * 커밋 전후 HEAD 비교를 통해 실제 새 커밋 생성 여부를 판별하는 용도다.
 * @param rootDir git 명령 실행 기준 디렉터리
 * @returns HEAD 해시. 조회 실패 시 빈 문자열
 */
export declare function getHeadHash(rootDir: string): string;
/**
 * @description
 * 커밋 수행이 끝난 뒤 사용자에게 보여줄 최신 short hash를 조회한다.
 * @param rootDir git 명령 실행 기준 디렉터리
 * @returns short hash. 조회 실패 시 빈 문자열
 */
export declare function getShortHeadHash(rootDir: string): string;
/**
 * @description
 * 가장 최신 커밋 1건을 사람이 읽기 쉬운 상세 로그 형태로 조회한다.
 * 명령 실행 결과를 사용자가 바로 확인할 수 있도록 `git log -1 --stat` 기반 포맷을 고정한다.
 * @param rootDir git 명령 실행 기준 디렉터리
 * @returns 최신 커밋 로그 문자열. 조회 실패 시 빈 문자열
 */
export declare function getLatestCommitLog(rootDir: string): string;
/**
 * @description
 * AI가 생성한 메시지를 바탕으로 실제 git add/commit/log 실행을 오케스트레이션한다.
 * test mode에서는 동일한 명령 흐름만 preview로 남기고 실제 쓰기 작업은 생략한다.
 * @param options 커밋 실행 옵션
 * @returns 실제 실행 상태와 명령 기록
 */
export declare function executeCommitWithMessage(options: {
    /**
     * AI 응답에서 해석한 커밋 초안이다.
     */
    draft: CommitMessageDraft;
    /**
     * CLI 파싱 결과다.
     */
    parsedArgs: ParsedCliArgs;
    /**
     * git 명령 실행 기준 디렉터리다.
     */
    rootDir: string;
}): CommitExecutionResult;
//# sourceMappingURL=git.d.ts.map