import type { ProfileId } from '../profiles/index.js';
import type { WorkflowPhase, WorkflowRunRecord } from '../types/index.js';
export type ClosePhaseOptions = {
    actualMinutes?: number | null;
    estimatedUnguidedMinutes?: number | null;
    confidence?: 'low' | 'medium' | 'high';
    rationale?: string;
};
export type GateBlockedNotification = {
    storyId: string;
    blockedGate: string;
    responsibleRole: ProfileId;
    reason: string;
    reviewId?: string;
};
export type GateBlockedCallback = (notification: GateBlockedNotification) => void;
export declare function resolveResponsibleRole(fromPhase: WorkflowPhase, reviewResult: 'blocked' | 'changes'): ProfileId;
export declare function buildGateBlockedNotification(storyId: string, fromPhase: WorkflowPhase, toPhase: WorkflowPhase, reason: string, reviewId?: string): GateBlockedNotification;
export declare function closePhaseWithHandoff(cwd: string, run: WorkflowRunRecord, fromPhase: WorkflowPhase, toPhase: WorkflowPhase, summary: string, evidenceIds: string[], toProfileOverride?: ProfileId, effortOptions?: ClosePhaseOptions): {
    handoffId: string;
    reviewId?: string;
    effortId?: string;
};
