/** * PR Watch Handler * * Manages PR watch list - watch, unwatch, and list watched PRs. * Stores watching state in Neo4j for persistence across sessions. * * @see .dev/features/github-pr.md for full specification */ import type { IGithubClient } from '../../../domain/interfaces/dal/IGithubClient'; import type { IPullRequestRepository } from '../../../domain/interfaces/dal/IPullRequestRepository'; import type { CheckStatus } from '../../../domain/interfaces/types/IPullRequest'; /** * Watched PR with summary info. */ export interface IWatchedPr { readonly number: number; readonly repo: string; readonly title: string; readonly status: 'open' | 'merged' | 'closed'; readonly checksStatus: CheckStatus; readonly unresolvedComments: number; readonly watchingSince: string; readonly lastPolled?: string; } /** * Result from PrWatchHandler. */ export interface IPrWatchResult { readonly action: 'watch' | 'unwatch' | 'list'; readonly success: boolean; readonly message: string; readonly watchedPrs?: readonly IWatchedPr[]; readonly pr?: IWatchedPr; } /** * Options for watch command. */ export interface IPrWatchOptions { readonly repo?: string; readonly prNumber: number; } /** * Options for list command. */ export interface IPrWatchingOptions { readonly repo?: string; readonly limit?: number; } /** * Handler for PR watch operations. */ export declare class PrWatchHandler { private readonly githubClient; private readonly prRepository; constructor(githubClient: IGithubClient, prRepository: IPullRequestRepository); /** * Start watching a PR. */ watch(options: IPrWatchOptions): Promise; /** * Stop watching a PR. */ unwatch(options: IPrWatchOptions): Promise; /** * List all watched PRs. */ list(options?: IPrWatchingOptions): Promise; /** * Map GitHub PR state to domain status. */ private mapPrStatus; /** * Convert domain IPullRequest to IWatchedPr. */ private toWatchedPr; } //# sourceMappingURL=PrWatchHandler.d.ts.map