import type { DeliverHookPayload, HookPayload } from "#channel/types.js";
/** Reads and rekeys the public delivery hook for one session driver. */
export interface SessionDeliveryHook {
    consumeNext(): void;
    next(): Promise<IteratorResult<HookPayload>>;
    rekey(token: string): Promise<void>;
}
/** Adds workflow-entry lifecycle ownership to a session delivery hook. */
export interface SessionDeliveryHookHandle extends SessionDeliveryHook {
    dispose(): Promise<void>;
}
/**
 * Creates the public delivery hook used by `workflowEntry`.
 *
 * Retired hooks are disposed immediately, but their already-armed reads stay
 * in the logical hook's delivery race. A delivery that committed before disposal can
 * therefore still resolve on replay; a later delivery loses the storage race
 * to `hook_disposed` and receives `HookNotFoundError` from the Workflow SDK.
 */
export declare function createSessionDeliveryHook(bufferedDeliveries: DeliverHookPayload[]): SessionDeliveryHookHandle;
