/** * GitHubIssueRepository — Implements IIssueRepository against GitHub GraphQL API. * * Uses FieldExtractor for all field value extraction. * Uses InputSanitizer for input validation. */ import type { IIssueRepository, TaskData, TaskDataWithComments, TaskComment, TaskDetailOptions, PullRequestInfo, SubIssueData, IProjectConfig } from '../../../container/interfaces.js'; import type { ILogger } from '../../../shared/logger.js'; import type { GitHubGraphQLClient } from '../core/graphql-client.js'; export declare class GitHubIssueRepository implements IIssueRepository { private readonly client; private readonly config; private readonly logger; private readonly containerDefs; constructor(client: GitHubGraphQLClient, config: IProjectConfig, logger: ILogger, containerDefs?: ReadonlyArray<{ id: string; taskField: string; }>); private get owner(); private get repo(); getTask(issueNumber: number): Promise; getTaskWithDetails(issueNumber: number, options?: TaskDetailOptions): Promise; getIssueComments(issueNumber: number): Promise; createIssue(title: string, body?: string): Promise<{ id: string; number: number; url: string; }>; updateTaskStatus(issueNumber: number, statusKey: string): Promise; updateTaskField(issueNumber: number, fieldKey: string, value: string, fieldType?: string): Promise; updateTaskContainer(issueNumber: number, containerName: string): Promise; assignTask(issueNumber: number, assignee: string): Promise; addComment(issueNumber: number, comment: string): Promise; closeIssue(issueNumber: number): Promise; findPullRequestForIssue(issueNumber: number): Promise; addSubIssue(parentIssueId: string, childIssueId: string): Promise; getSubIssues(issueNumber: number): Promise; private mapIssueToTaskData; } //# sourceMappingURL=issue-repository.d.ts.map