import { IssueCommentRepository } from '../../domain/usecases/adapter-interfaces/IssueCommentRepository'; import { Issue } from '../../domain/entities/Issue'; import { Comment } from '../../domain/entities/Comment'; import { LocalStorageCacheRepository } from './LocalStorageCacheRepository'; import { Sleep } from './issue/githubRateLimitRetry'; export declare const FETCH_COMMENTS_TRANSIENT_ERROR_MAX_RETRIES = 3; export declare const FETCH_COMMENTS_TRANSIENT_ERROR_BASE_BACKOFF_MS = 1000; export declare class GitHubCommentFetchHttpError extends Error { readonly name = "GitHubCommentFetchHttpError"; readonly statusCode: number; constructor(statusCode: number, message: string); } export declare class GitHubCommentCreateHttpError extends Error { readonly name = "GitHubCommentCreateHttpError"; readonly statusCode: number; constructor(statusCode: number, message: string); } type CommentCacheRepository = Pick; export declare class GitHubIssueCommentRepository implements IssueCommentRepository { private readonly token; private readonly commentCacheRepository; private readonly sleep; constructor(token: string, commentCacheRepository?: CommentCacheRepository | null, sleep?: Sleep); private parseIssueUrl; private commentCacheKey; private readCommentPageCache; private writeCommentPageCache; private withCommentCacheLock; private fetchCommentsPage; getCommentsFromIssue(issue: Issue): Promise; createComment(issue: Issue, commentContent: string): Promise; updateComment(issue: Issue, commentId: string, commentContent: string): Promise; } export {}; //# sourceMappingURL=GitHubIssueCommentRepository.d.ts.map