import type { DialogInterruptionReason } from '@longrun-ai/kernel/types/display-state';
import type { DialogExecutionMarker } from '@longrun-ai/kernel/types/storage';
/**
 * Decides whether a finalized stopped dialog should expose manual Continue.
 *
 * This only applies to the persisted/broadcast final stopped state after the driver has fully
 * unwound and confirmed an interrupted terminal projection. Transient interruption markers and
 * retry-stop progress events must stay disabled until that final stopped state is written. Do not
 * "simplify" this by enabling Continue earlier: that would let the UI offer a resume action before
 * the dialog is actually resumable again, reintroducing exactly the class of race/false-positive
 * bugs this split is here to prevent.
 *
 * `llm_retry_stopped` is intentionally resumable here:
 * - manual Continue starts a fresh drive invocation, which naturally resets per-run retry state
 *   and provider-quirk tracking state;
 * - it does NOT reset process-wide adaptive smart-rate backoff, which is shared by
 *   provider/model and should keep protecting the system.
 */
export declare function isInterruptionReasonManualResumeEligible(reason: DialogInterruptionReason): boolean;
export declare function doesInterruptionReasonRequireExplicitResume(reason: DialogInterruptionReason): boolean;
export declare function isInterruptedDialogBlockedWithoutExplicitResume(marker: DialogExecutionMarker | undefined, explicitResumeAuthorized: boolean): boolean;
