/ src / types.d.ts
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 {};