/**
 * Handoff-initiate route — the operator/test trigger for a planned handoff
 * (spec §8 G3e). Bearer-authed local route (mounted AFTER the global auth
 * middleware in AgentServer, so it inherits the same authToken gate as every
 * other operator route).
 *
 * This is the explicit "hand off now" signal. There is deliberately NO
 * sleep/pre-sleep auto-trigger: SleepWakeDetector emits only a 'wake' event
 * (verified), so there is no pre-sleep moment to hook for v1. A planned handoff
 * is therefore operator/test-initiated; an automatic trigger is a tracked
 * follow-on design.
 *
 *   POST /handoff/initiate — run the planned-handoff lifecycle to a terminal
 *     outcome; returns { outcome, inProgress }. outcome ∈ handed-off |
 *     aborted-stay-awake | failed. A `failed` outcome maps to HTTP 500 (the
 *     handoff genuinely errored); handed-off / aborted-stay-awake are both 200
 *     (the sentinel resolved safely — aborting and staying awake is a correct,
 *     expected outcome, not an error).
 *   GET  /handoff/status — race-guard observability: { inProgress }.
 *
 * The DECISION and all safety live in HandoffSentinel (verify the ack echo +
 * validate BEFORE yielding; otherwise abort and stay awake). This route only
 * pulls the trigger and surfaces the outcome. When the wiring is absent (solo
 * agent, or multi-machine disabled), the route 503s honestly — never a silent
 * ok that pretends a handoff happened.
 */
import { Router } from 'express';
/** The HandoffSentinel's terminal outcomes (mirrors HandoffOutcome). */
export type HandoffOutcomeStr = 'handed-off' | 'aborted-stay-awake' | 'failed';
export interface HandoffInitiateRoutesDeps {
    /**
     * Run the planned handoff to a terminal outcome (HandoffSentinel.initiate via
     * the handoffSentinelWiring). null → not wired (solo / multi-machine off).
     */
    onInitiate: (() => Promise<HandoffOutcomeStr>) | null;
    /** Race-guard read: is a handoff mid-flight? (HandoffSentinel.inProgress) */
    inProgress: (() => boolean) | null;
}
export declare function createHandoffInitiateRoutes(deps: HandoffInitiateRoutesDeps): Router;
//# sourceMappingURL=handoffInitiateRoutes.d.ts.map