import { type AcceptanceCriterionCoverage } from "./release-readiness.js"; import { type ReleaseReviewerSelection } from "./release-reviewer-selection.js"; import type { EventEntry } from "./types.js"; export interface ReleaseStoryReadiness { taskId: string; title: string; backlogItem: string | undefined; githubIssue: string | undefined; approved: boolean; missing: string[]; blockers: string[]; acceptanceCoverage: AcceptanceCriterionCoverage[]; releaseReviewerSelection: ReleaseReviewerSelection; missingRequiredReviewerApprovals: string[]; goNoGoInputs: string[]; } export interface CandidateReleasePlan { version: string | undefined; stories: ReleaseStoryReadiness[]; approvedStories: ReleaseStoryReadiness[]; changelog: string; operations: ReleaseOperationsPlan; ready: boolean; missing: string[]; } export interface ReleaseOperationsPlan { semverImpact: "patch" | "minor" | "major"; rolloutChecklist: string[]; rollbackChecklist: string[]; postReleaseChecklist: string[]; } export type ReleaseEvidenceKind = "smoke" | "rollback" | "post-release" | "release-notes"; export declare function generateCandidateReleasePlan({ root, version, }?: { root?: string; version?: string | undefined; }): Promise; export declare function writeCandidateReleasePlan({ root, version, }?: { root?: string; version?: string | undefined; }): Promise<{ artifact: string; content: string; }>; export declare function recordReleaseTagApproval({ root, version, approver, approved, }: { root?: string; version: string; approver?: string | undefined; approved: boolean; }): Promise; export declare function attachReleaseEvidence({ root, kind, summary, artifactPath, }: { root?: string; kind: ReleaseEvidenceKind; summary: string; artifactPath?: string | undefined; }): Promise;