import { z } from "zod"; export declare const PullRequestWatchInputSchema: z.ZodObject<{ repo: z.ZodPipe>; pullRequestNumber: z.ZodNumber; reviewOwner: z.ZodString; redHeadOid: z.ZodPipe>; }, z.core.$strip>; export type PullRequestWatchInput = z.infer; export declare const PrwatchDeleteInputSchema: z.ZodObject<{ repo: z.ZodPipe>; pullRequestNumber: z.ZodNumber; }, z.core.$strip>; export type PrwatchDeleteInput = z.infer; declare const PullRequestSchema: z.ZodObject<{ head: z.ZodObject<{ sha: z.ZodString; }, z.core.$strip>; html_url: z.ZodString; merged: z.ZodDefault>; state: z.ZodEnum<{ closed: "closed"; open: "open"; }>; }, z.core.$strip>; declare const ReviewSchema: z.ZodObject<{ commit_id: z.ZodNullable; state: z.ZodString; submitted_at: z.ZodNullable; user: z.ZodNullable>; }, z.core.$strip>; type PullRequest = z.infer; type Review = z.infer; export interface PullRequestWatchSnapshot { readonly headOid: string; readonly ownerApprovedCurrentHead: boolean; readonly ownerReviewState: string | null; readonly ownerReviewSubmittedAt: string | null; readonly state: "open" | "closed" | "merged"; readonly url: string; } interface PullRequestWatchNotificationState { readonly previousSnapshot: PullRequestWatchSnapshot | null; readonly redHeadPolls: number; readonly redHeadWakeSent: boolean; } export type PullRequestWatchWakeReason = "head_changed" | "owner_review_changed" | "red_head_stalled"; export declare function initialPullRequestWatchNotificationState(): PullRequestWatchNotificationState; export declare function framePullRequestWatchWake(instruction: string): string; export declare function advancePullRequestWatchNotification(input: { readonly redHeadOid: string; readonly snapshot: PullRequestWatchSnapshot; readonly staleAfterPolls: number; readonly state: PullRequestWatchNotificationState; }): { readonly state: PullRequestWatchNotificationState; readonly wakeReason: PullRequestWatchWakeReason | null; }; export declare function shouldRefreshPullRequestWatchToken(error: unknown): boolean; export declare function isRetryablePullRequestWatchError(error: unknown): boolean; export declare function pullRequestWatchSnapshot(input: { readonly pullRequest: PullRequest; readonly reviewOwner: string; readonly reviews: readonly Review[]; }): PullRequestWatchSnapshot; export declare function repoFullName(repo: string): string; export declare function readPullRequestWatchSnapshot(input: PullRequestWatchInput): Promise; export {};