/**
 * 리터치 대상 파일 경로 해석/쓰기 등 파일시스템 경계 처리를 담당한다.
 * AI/프롬프트 의존이 없는 순수 파일 로직만 모아, 편집 오케스트레이션(retouch-edit)과 분리한다.
 */
import type { StoragePaths, TraceLogger } from '../../../platform/types/index';
import type { RetouchFileChange } from '../domain/types';
/** 디렉터리에서 읽어들인 소스 파일 단위 (스냅샷) */
export type RetouchSourceFile = {
    absolutePath: string;
    content: string;
    relativePath: string;
};
/**
 * @description 스토리 디렉터리의 소스 파일들을 읽어 스냅샷으로 만든다. (before/after 비교용)
 * @param directory 스토리 디렉터리
 * @returns 소스 파일 스냅샷 목록
 */
export declare function collectRetouchSourceFiles(directory: string): RetouchSourceFile[];
/**
 * @description
 * before/after 스냅샷을 비교해 변경(추가/수정/삭제)된 파일만 변경 목록으로 만든다. (순수 함수)
 * @param directory 스토리 디렉터리
 * @param beforeFiles 편집 전 스냅샷
 * @param afterFiles 편집 후 스냅샷
 * @returns 변경 파일 목록
 */
export declare function computeRetouchFileChanges(directory: string, beforeFiles: RetouchSourceFile[], afterFiles: RetouchSourceFile[]): RetouchFileChange[];
/**
 * @description
 * Storybook importPath(.storybook 기준 상대 경로)를 작업 루트 기준 절대 경로로 해석하고,
 * generated 디렉터리 내부인지 검증한다.
 * @param paths 저장소 경로 정보
 * @param importPath Storybook 현재 스토리 importPath
 * @returns 대상 파일 절대 경로와 디렉터리
 */
export declare function resolveRetouchTargetFile(paths: StoragePaths, importPath: string): {
    absolutePath: string;
    directory: string;
};
/**
 * @description
 * 변경 파일을 실제로 덮어쓴다. (diff 모드에서 사용자가 수정한 content 반영 포함)
 * generated 디렉터리 내부 경로만 허용한다.
 * @param paths 저장소 경로 정보
 * @param files 기록할 파일 목록
 * @param trace trace 로거
 * @returns 실제로 기록한 절대 경로 목록
 */
export declare function applyRetouchFiles(paths: StoragePaths, files: Array<{
    absolutePath: string;
    content: string;
}>, trace: TraceLogger): string[];
//# sourceMappingURL=retouch-files.d.ts.map