import type { DeliverHookPayload, SessionCommand, SessionTimeoutHookPayload } from "#channel/types.js";
import { type SessionInboxAddress } from "#execution/session-inbox/address.js";
export interface ResumedSessionInboxHook {
    readonly ownerRunId: string;
    /** Lazy identity resolution; delivery never needs to decrypt hook metadata. */
    readonly sessionId: Promise<string>;
}
/**
 * Resumes the current owner with the current command shape. During a
 * deployment handoff the address is briefly unowned; the releasing owner
 * leaves a marker for that interval, so delivery retries instead of
 * reporting the session gone and letting a channel start a replacement.
 */
export declare function resumeSessionInbox(address: string | SessionInboxAddress, command: DeliverHookPayload | SessionCommand | SessionTimeoutHookPayload): Promise<ResumedSessionInboxHook>;
export declare class AcceptedSessionIdentityError extends Error {
    constructor(cause: unknown);
}
export declare function requireSessionId(metadata: unknown): string;
export declare function resolveSessionInbox(token: string): Promise<{
    sessionId: string;
}>;
