import { type ModelMessage } from "ai";
import type { HarnessToolDefinition } from "#harness/execute-tool.js";
import type { HandleMessageStreamEvent } from "#protocol/message.js";
import type { ResolvedDynamicToolResolver } from "#runtime/types.js";
import type { ContextContainer } from "#context/container.js";
import type { DurableDynamicToolMetadata } from "#context/keys.js";
/**
 * Reconstructs tool definitions from durable metadata using
 * registered step functions. No resolver re-invocation — the
 * execute function is looked up by step ID and called with stored
 * closure vars.
 */
export declare function replayDynamicSessionTools(metadata: readonly DurableDynamicToolMetadata[], _resolvers: readonly ResolvedDynamicToolResolver[]): readonly HarnessToolDefinition[];
/**
 * Dispatches a stream event to dynamic tool resolvers. Each
 * resolver's metadata replaces its slot (by slug) in the
 * scope-appropriate durable key. The tool-loop calls
 * {@link buildDynamicTools} to assemble the effective toolset.
 */
export declare function dispatchDynamicToolEvent(input: {
    readonly ctx: ContextContainer;
    readonly resolvers: readonly ResolvedDynamicToolResolver[];
    readonly event: HandleMessageStreamEvent;
    readonly messages: readonly ModelMessage[];
}): Promise<void>;
