/**
 * 리터치 어시스트 도메인 타입 정의 파일이다.
 * 브리지 요청/응답과 파일 변경 단위를 명확히 표현해 호출부에서 의도를 빠르게 파악할 수 있게 한다.
 */
/** 단일 파일의 변경 단위 (before=현재 내용, after=AI 제안 내용) */
export type RetouchFileChange = {
    /** 작업 루트 기준 절대 경로 */
    absolutePath: string;
    /** AI 제안(또는 사용자 수정) 내용 */
    after: string;
    /** 현재 파일 내용 */
    before: string;
    /** 스토리 디렉터리 기준 표시용 상대 경로 */
    relativePath: string;
};
/** `/api/retouch` 편집 실행 결과 */
export type RetouchEditResult = {
    /** 변경 파일 목록 */
    files: RetouchFileChange[];
    /** AI 원본 응답 텍스트 (디버깅/표시용) */
    rawOutput: string;
};
/** `/api/retouch` 요청 payload */
export type RetouchEditRequest = {
    /** Storybook 현재 스토리 importPath (.storybook 기준 상대 경로) */
    importPath: string;
    /** 프리뷰 에러 메시지 (있으면 프롬프트에 첨부) */
    previewError?: string;
    /** 사용자 프롬프트 */
    prompt: string;
    /** DOM 선택으로 마킹된 대상 목록 (token=프롬프트 내 참조, descriptor=AI가 소스에서 찾을 설명) */
    selectedElements?: RetouchSelectedElement[];
};
/** DOM 선택으로 마킹된 단일 대상 */
export type RetouchSelectedElement = {
    /** 요소를 소스에서 찾기 위한 추상 설명 (태그/읽기 쉬운 클래스/텍스트) */
    descriptor: string;
    /** 프롬프트 안에서 참조하는 토큰 (예: [input-dom-타겟1]) */
    token: string;
};
/** `/api/retouch/apply` 요청 payload */
export type RetouchApplyRequest = {
    /** 적용할 파일 목록 (사용자가 diff에서 수정한 content 포함) */
    files: Array<{
        /** 작업 루트 기준 절대 경로 */
        absolutePath: string;
        /** 기록할 내용 */
        content: string;
    }>;
};
//# sourceMappingURL=types.d.ts.map