types.d.ts
1 import type { 2 ChangedFile, 3 GenerateReviewRequest, 4 Preferences, 5 PrSearchResult, 6 PrStatus, 7 ReviewGuide, 8 ReviewHistoryEntry, 9 SendSlideChatRequest, 10 StartReviewResult, 11 SubmitReviewRequest, 12 FreshnessResult, 13 UpdateInfo, 14 } from '../lib/types'; 15 16 declare global { 17 interface Window { 18 electronAPI: { 19 startReview: (req: GenerateReviewRequest) => Promise<StartReviewResult>; 20 cancelReview: (reviewId: string) => Promise<void>; 21 getConfig: () => Promise<{ githubToken: string | null }>; 22 startOAuth: () => Promise<void>; 23 getAuthState: () => Promise<{ authenticated: boolean; login: string | null }>; 24 signOut: () => Promise<void>; 25 savePat: (token: string) => Promise<string>; 26 listReviews: () => Promise<ReviewHistoryEntry[]>; 27 loadReview: (id: string) => Promise<ReviewGuide>; 28 deleteReview: (id: string) => Promise<void>; 29 deleteAllReviews: () => Promise<void>; 30 onReviewProgress: (callback: (reviewId: string, chunk: string, isThinking: boolean) => void) => void; 31 offReviewProgress: () => void; 32 onReviewToolUse: (callback: (reviewId: string, toolName: string) => void) => void; 33 offReviewToolUse: () => void; 34 onReviewPhase: (callback: (reviewId: string, phase: string) => void) => void; 35 offReviewPhase: () => void; 36 onReviewCompleted: (callback: (reviewId: string) => void) => void; 37 offReviewCompleted: () => void; 38 onReviewFailed: (callback: (reviewId: string, error: string) => void) => void; 39 offReviewFailed: () => void; 40 onReviewStats: (callback: (reviewId: string, inputBytes: number) => void) => void; 41 offReviewStats: () => void; 42 onReviewNavigate: (callback: (reviewId: string) => void) => void; 43 offReviewNavigate: () => void; 44 sendSlideChat: (req: SendSlideChatRequest) => Promise<string>; 45 onChatProgress: (callback: (chunk: string) => void) => void; 46 offChatProgress: () => void; 47 onChatToolUse: (callback: (toolName: string) => void) => void; 48 offChatToolUse: () => void; 49 submitReview: (req: SubmitReviewRequest) => Promise<{ reviewUrl: string; droppedCommentCount: number }>; 50 checkPrFreshness: (prUrl: string, headSha: string | undefined) => Promise<FreshnessResult>; 51 loadPreferences: () => Promise<Preferences>; 52 savePreferences: (prefs: Preferences) => Promise<void>; 53 searchPullRequests: () => Promise<PrSearchResult[]>; 54 reRenderHunks: (review: ReviewGuide) => Promise<ReviewGuide>; 55 getPrStatus: (prUrl: string) => Promise<PrStatus>; 56 onUpdateAvailable: (callback: (info: UpdateInfo) => void) => void; 57 offUpdateAvailable: () => void; 58 onUpdateReady: (callback: (version: string) => void) => void; 59 offUpdateReady: () => void; 60 dismissUpdate: (version: string) => Promise<void>; 61 openExternal: (url: string) => Promise<void>; 62 openLogsDirectory: () => Promise<void>; 63 openReviewPrompt: (id: string) => Promise<void>; 64 detectBinaryPath: (name: string) => Promise<string>; 65 checkCliInstalled: (provider: string) => Promise<{ installed: boolean; resolvedPath: string }>; 66 onNewReviewInHistory: (callback: () => void) => void; 67 offNewReviewInHistory: () => void; 68 markReviewRead: (id: string) => Promise<void>; 69 getPrState: (prUrl: string) => Promise<{ prState: 'open' | 'merged' | 'closed'; headSha: string }>; 70 getPrFiles: (prUrl: string) => Promise<ChangedFile[]>; 71 platform: NodeJS.Platform; 72 isPackaged: boolean; 73 }; 74 } 75 } 76 77 export {};