import { type QaAutomationCoverageReport } from "./qa-coverage.js"; import { type ReleaseReviewerSelection } from "./release-reviewer-selection.js"; import type { EventEntry, EvidenceType, Task } from "./types.js"; declare const EVIDENCE_TYPES_BY_LABEL: Record; export interface AcceptanceEvidenceReference { eventId: string; type: EvidenceType; summary: string; artifactCount: number; } export interface AcceptanceCriterionCoverage { index: number; criterion: string; evidenceKind: keyof typeof EVIDENCE_TYPES_BY_LABEL; requiresPlaywright: boolean; covered: boolean; acceptedRisk: boolean; missing: string[]; evidence: AcceptanceEvidenceReference[]; } export interface ReleaseReadinessTaskReport { taskId: string; title: string; acceptanceCoverage: AcceptanceCriterionCoverage[]; qaAutomationCoverage: QaAutomationCoverageReport; releaseReviewerSelection: ReleaseReviewerSelection; missingRequiredReviewerApprovals: string[]; goNoGoInputs: string[]; uncoveredAcceptanceCriteria: string[]; qaAutomationGaps: string[]; blockerReviews: string[]; activeLocks: string[]; } export interface ReleaseReadinessReport { passed: boolean; tasks: ReleaseReadinessTaskReport[]; uncoveredAcceptanceCriteria: Array<{ taskId: string; criterion: string; }>; blockerReviews: Array<{ taskId: string; finding: string; }>; activeLocks: Array<{ taskId: string; lockId: string; reason: string; }>; missingRequiredReviewerApprovals: Array<{ taskId: string; reviewer: string; }>; missingSmokeEvidence: boolean; missingRollbackEvidence: boolean; missingDocumentationEvidence: boolean; missingObservabilityEvidence: boolean; rollbackRequired: boolean; acceptedRisks: Array<{ taskId: string; acceptedBy: string; rationale: string; complete: boolean; missing: string[]; }>; gaReadiness: GaReadinessReport; sonarInsights?: SonarReleaseInsight; knownGaps: string[]; } export interface SonarReleaseInsight { projectKey: string; qualityGateStatus: string; findings: number; sourceUrl?: string; } export interface GaReadinessCriterion { id: string; label: string; required: boolean; blocking: boolean; passed: boolean; missing: string[]; } export interface GaReadinessReport { passed: boolean; decision: "go" | "no-go"; blockers: string[]; acceptedRiskGaps: Array<{ taskId: string; missing: string[]; }>; criteria: GaReadinessCriterion[]; } export declare function generateReleaseReadinessReport(root?: string, options?: { scope?: "all" | "release"; }): Promise; export declare function evaluateAcceptanceCoverage(task: Task, events: EventEntry[]): AcceptanceCriterionCoverage[]; export declare function unresolvedStoryBlockers(task: Task, events: EventEntry[]): string[]; export {};