import type { Octokit } from 'octokit'; import type { EventBus } from '../events/bus'; import type { EmitContext } from '../events/emit'; import type { PrIdent } from '../events/schema'; export type ReviewComment = { id: string; threadId: string; path: string | null; line: number | null; body: string; url?: string; isOutdated: boolean; }; export type ReviewCommentsResult = { pr: PrIdent; comments: ReviewComment[]; }; type ReviewThreadsResponse = { repository: { pullRequest: { reviewThreads: { pageInfo: { hasNextPage: boolean; endCursor: string | null; }; nodes: Array<{ id: string; isResolved: boolean; isOutdated: boolean; comments: { nodes: Array<{ id: string; body: string; path: string | null; line: number | null; url: string | null; }>; }; }>; } | null; } | null; } | null; }; type ReviewThreadNode = NonNullable['pullRequest']>['reviewThreads']>['nodes'][number]; export declare function fetchReviewThreadById(options: { threadId: string; token?: string; octokit?: Octokit; bus?: EventBus; context: EmitContext; }): Promise; export declare function fetchUnresolvedReviewComments(options: { owner: string; repo: string; headBranch: string; token?: string; octokit?: Octokit; bus?: EventBus; context: EmitContext; }): Promise; export declare function resolveReviewThread(options: { threadId: string; pr?: PrIdent; token?: string; octokit?: Octokit; bus?: EventBus; context: EmitContext; }): Promise<{ resolved: boolean; }>; export declare function fetchReviewApprovals(options: { pr: { owner: string; repo: string; number: number; }; token: string; octokit?: Octokit; bus?: EventBus; context: EmitContext; }): Promise<{ approvedCount: number; }>; export {};