import type { ResolvedGitHubConfig } from "./types.js"; import { type GitHubBlobResponse, type GitHubContentItem, type GitHubTreeResponse } from "./schemas/index.js"; interface RateLimitInfo { limit: number; remaining: number; reset: Date; used: number; } export declare class GitHubApiClient { private readonly config; private readonly baseUrl; private readonly repositoryEndpoint; private rateLimitInfo; constructor(config: ResolvedGitHubConfig); get repoId(): string; getTree(ref?: string): Promise; getContents(path: string, ref?: string): Promise; getBlob(sha: string): Promise; getBlobBytesWithinLimit(sha: string, expectedSize: number, byteLimit: number): Promise; getRateLimitInfo(): RateLimitInfo | null; private request; private requestHeaders; private readExactResponseBytes; private updateRateLimitInfo; private createAPIError; private isClientError; private isRateLimitError; private calculateRetryDelay; } export {}; //# sourceMappingURL=github-api-client.d.ts.map