import type { ModelMessage } from "ai"; import { type AlsContext } from "#context/container.js"; import type { SessionStartedStreamEvent, StepStartedStreamEvent, UnstampedMessageStreamEvent } from "#protocol/message.js"; import { type DynamicToolEntry } from "#tools/dynamic.js"; import { type DynamicToolCallbackOwner, type DurableDynamicToolCallbacks } from "#tools/durable-callbacks.js"; import type { ResolvedDynamicToolResolver } from "#runtime/types.js"; export declare function validateDurableDynamicToolCallbacks(name: string, entry: DynamicToolEntry, owner: DynamicToolCallbackOwner): DurableDynamicToolCallbacks; /** Resolves step-scoped tools once for one internal policy/model pass. */ export declare function resolveStepDynamicTools(input: { readonly ctx: AlsContext; readonly resolvers: readonly ResolvedDynamicToolResolver[]; readonly event: StepStartedStreamEvent; readonly messages: readonly ModelMessage[]; }): Promise; /** Converts persisted step metadata before any approval replay can read it. */ export declare function preparePersistedStepDynamicToolMetadata(input: { readonly ctx: AlsContext; readonly resolvers: readonly ResolvedDynamicToolResolver[]; readonly event: StepStartedStreamEvent; readonly messages: readonly ModelMessage[]; }): Promise; export declare function dispatchDynamicToolEvent(input: { readonly ctx: AlsContext; readonly resolvers: readonly ResolvedDynamicToolResolver[]; readonly event: UnstampedMessageStreamEvent; readonly messages: readonly ModelMessage[]; }): Promise; /** * Refreshes session-scoped definitions when the deployed code revision changes * or when persisted callbacks have no registered binding (fresh process after * a crash, or a redeploy), so replay always resolves against current code. */ export declare function refreshDynamicSessionToolsForRuntimeRevision(input: { readonly ctx: AlsContext; readonly resolvers: readonly ResolvedDynamicToolResolver[]; readonly event: SessionStartedStreamEvent; readonly messages: readonly ModelMessage[]; readonly runtimeRevision: string; }): Promise; /** Re-registers missing callbacks while preserving the active turn's persisted tool set. */ export declare function rebindMissingCompiledDynamicToolCallbacks(input: { readonly ctx: AlsContext; readonly event: UnstampedMessageStreamEvent; readonly messages: readonly ModelMessage[]; readonly resolvers: readonly ResolvedDynamicToolResolver[]; }): Promise;