import type { IssueStatus } from "../../types/common.schema.js"; import { type DeploymentStatusResult } from "./DeploymentDetectionService.js"; interface IssueStatusChange { issueNumber: number; oldStatus: IssueStatus; newStatus: IssueStatus; } interface DeploymentStatusChange { issueNumber: number; prNumber?: number; deploymentStatus: DeploymentStatusResult; } /** * Batch-optimized service for detecting Copilot status changes * Uses a single GraphQL query to fetch all issue data at once */ export declare class BatchCopilotDetectionService { /** Maximum number of issues to process per GraphQL query */ private static readonly BATCH_SIZE; private currentUsername; private deploymentService; constructor(); /** * Detect status changes for multiple issues using batched API calls */ detectStatusChanges(issues: Array<{ number: number; status: IssueStatus; }>): Promise; /** * Detect deployment status for multiple issues using batched API calls * Reuses the same data fetched for Copilot status detection */ detectDeploymentStatus(issueNumbers: number[]): Promise; /** * Fetch all issues data in a single GraphQL query */ private fetchAllIssuesData; /** * Calculate new status based on issue data * Same logic as the original CopilotDetectionService but using batch data */ private calculateNewStatus; /** * Check if Copilot's work is ready for review */ private isCopilotWorkReady; /** * Check if user commented with @copilot after Copilot's last comment */ private isWaitingForCopilotResponse; /** * Check if Copilot has responded after user's @copilot mention */ private hasCopilotResponded; } export {}; //# sourceMappingURL=BatchCopilotDetectionService.d.ts.map