export declare const LOW_RATE_LIMIT_REMAINING = 10; export type GitHubRateLimitReason = "low_remaining" | "primary" | "secondary"; export interface GitHubRateLimitStatus { repo: string; limit: number | null; remaining: number | null; resetAt: Date | null; retryAfter: string | null; resumeEndpoint: string; partialResults: number; reason: GitHubRateLimitReason; } export declare class GitHubRateLimitError extends Error { readonly status: GitHubRateLimitStatus; constructor(status: GitHubRateLimitStatus); } export interface GitHubApiResponse { body: unknown; statusCode: number; links: ReadonlyMap; rateLimitLimit: number | null; rateLimitRemaining: number | null; rateLimitReset: number | null; retryAfter: string | null; } export declare function parseGitHubApiResponse(stdout: string): GitHubApiResponse; export declare function nextGitHubEndpoint(response: GitHubApiResponse): string | null; export declare function githubResetAt(response: GitHubApiResponse, now?: () => Date): Date | null; export declare function rateLimitReason(response: GitHubApiResponse): GitHubRateLimitReason | null; export declare function rateLimitStatus(response: GitHubApiResponse, input: { repo: string; resumeEndpoint: string; partialResults: number; now?: () => Date; }): GitHubRateLimitStatus | null;