import type { ExecutionMode, ToolName } from "./config.js";
import type { DispatchCollection, DispatchManifest } from "./dispatch.js";
import type { GitState, PushAssessment } from "./git.js";
import type { PolicyEvaluation } from "./policies.js";
import type { ReconcileReport } from "./reconcile.js";
import type { SpecialistSelection } from "./specialists.js";
import type { PhaseRecord } from "./state.js";
export interface ReleaseCheckReport {
    version: number;
    createdAt: string;
    profile: string;
    mode: ExecutionMode;
    status: "ready-for-release" | "review-required" | "blocked" | "not-applicable";
    phaseLabel: string;
    validationsRun: string[];
    missingValidations: string[];
    unresolvedRisks: string[];
    reconcileStatus?: ReconcileReport["status"];
    pushSuitability: PushAssessment["result"];
    policyResult: PolicyEvaluation["result"];
    policyFindings: string[];
    activeSpecialists: string[];
    recommendedNextStep: string;
}
export interface CommitPlanGroup {
    title: string;
    files: string[];
    rationale: string;
}
export interface CommitPlan {
    phaseLabel: string;
    groups: CommitPlanGroup[];
    validationsRun: string[];
    warnings: string[];
    suggestedCommitNotes: string[];
}
export interface PhaseCloseRecord {
    version: number;
    createdAt: string;
    label: string;
    goal: string;
    profile: string;
    mode: ExecutionMode;
    status: "complete" | "blocked";
    tool?: ToolName;
    checkpointPath?: string;
    reconcileStatus?: ReconcileReport["status"];
    policyResult: PolicyEvaluation["result"];
    policyFindings: string[];
    recommendedNextTool?: ToolName;
    recommendedNextSpecialist?: string;
    recommendedNextStep: string;
}
export declare function getReleasePaths(targetRoot: string): {
    releaseRoot: string;
    releaseHistoryDir: string;
    releaseLatestJson: string;
    releaseLatestMarkdown: string;
    phaseCloseRoot: string;
    phaseCloseHistoryDir: string;
    phaseCloseLatestJson: string;
    phaseCloseLatestMarkdown: string;
};
export declare function writeReleaseCheckArtifacts(targetRoot: string, report: ReleaseCheckReport): Promise<{
    jsonPath: string;
    markdownPath: string;
}>;
export declare function writePhaseCloseArtifacts(targetRoot: string, record: PhaseCloseRecord): Promise<{
    jsonPath: string;
    markdownPath: string;
}>;
export declare function loadLatestReleaseCheck(targetRoot: string): Promise<ReleaseCheckReport | null>;
export declare function loadLatestPhaseClose(targetRoot: string): Promise<PhaseCloseRecord | null>;
export declare function buildReleaseCheckReport(options: {
    profileName: string;
    executionMode: ExecutionMode;
    latestPhase: PhaseRecord | null;
    latestDispatch: DispatchManifest | null;
    latestCollection: DispatchCollection | null;
    latestReconcile: ReconcileReport | null;
    pushAssessment: PushAssessment;
    policyEvaluation: PolicyEvaluation;
}): ReleaseCheckReport;
export declare function buildCommitPlan(options: {
    targetRoot: string;
    gitState: GitState;
    latestPhase: PhaseRecord | null;
    latestReconcile: ReconcileReport | null;
}): CommitPlan;
export declare function buildPhaseCloseRecord(options: {
    label: string;
    goal: string;
    profileName: string;
    executionMode: ExecutionMode;
    tool?: ToolName;
    checkpointPath?: string;
    latestReconcile: ReconcileReport | null;
    policyEvaluations: PolicyEvaluation[];
    nextSpecialist?: SpecialistSelection;
    nextTool?: ToolName;
}): PhaseCloseRecord;
export declare function renderReleaseCheckMarkdown(report: ReleaseCheckReport): string;
export declare function renderPhaseCloseMarkdown(record: PhaseCloseRecord): string;
export declare function listReleaseHistory(targetRoot: string): Promise<string[]>;
//# sourceMappingURL=release.d.ts.map