/**
 * watch-pr-review 기능에서 공유하는 도메인 타입을 정의하는 파일이다.
 * 설정(repos.json), 이력(history.json), 폴링으로 수집한 PR 요약 구조를 한 곳에서 관리한다.
 */
/**
 * 감시 대상 저장소 한 건을 표현한다.
 */
export interface WatchRepo {
    /** GitHub 저장소 식별자다. `owner/repository` 형식을 사용한다. */
    repo: string;
    /** 감시 활성화 여부다. `false`면 폴링 대상에서 제외한다. 기본값은 활성(true)이다. */
    enabled?: boolean;
}
/**
 * `repos.json` 설정 파일의 구조다.
 */
export interface WatchConfig {
    /** 폴링 주기(ms)다. 미지정 시 기본 10초를 사용한다. */
    pollIntervalMs?: number;
    /** 큐에서 동시에 꺼내 리뷰를 진행하는 워커(스레드) 수다. 미지정 시 기본 2다. */
    concurrency?: number;
    /** 감시 대상 저장소 목록이다. */
    repos: WatchRepo[];
}
/**
 * 리뷰를 완료한 PR 이력 한 건이다.
 */
export interface ReviewedPrHistory {
    /** PR 웹 URL이다. 이력 식별 키로 사용한다. */
    url: string;
    /** 리뷰 시점의 PR 커밋 해시(OID) 목록이다. 커밋이 달라지면 재리뷰한다. */
    commitOids: string[];
    /** 마지막 리뷰 완료 시각(ISO 8601 문자열)이다. */
    reviewedAt: string;
}
/**
 * `history.json` 설정 파일의 구조다.
 */
export interface WatchHistory {
    /** 리뷰를 완료한 PR 이력 목록이다. */
    reviewed: ReviewedPrHistory[];
}
/**
 * 큐에 적재되어 워커가 처리할 단일 리뷰 작업이다.
 */
export interface ReviewTask {
    /** `owner/repository` 형식 저장소 식별자다. */
    repo: string;
    /** 리뷰 대상 PR 요약 정보다. */
    pullRequest: PullRequestInfo;
    /** 적재 시점에 조회한 PR 커밋 OID 목록이다. 리뷰 완료 후 이력 기록에 사용한다. */
    commitOids: string[];
}
/**
 * 폴링으로 수집한 PR 요약 정보다.
 */
export interface PullRequestInfo {
    /** PR 번호다. */
    number: number;
    /** PR 제목이다. */
    title: string;
    /** PR 웹 URL이다. */
    url: string;
    /** 작성자 로그인 아이디다. */
    author: string;
    /** base 브랜치 이름이다. */
    baseRefName: string;
    /** head 브랜치 이름이다. */
    headRefName: string;
}
//# sourceMappingURL=types.d.ts.map