import type { HarnessToolDefinition } from "#harness/execute-tool.js";
import type { HarnessToolMap } from "#harness/types.js";
import type { ContextReader } from "#context/key.js";
import { type CurrentDynamicToolMetadata } from "#context/dynamic-tool-metadata.js";
import { type DynamicToolCallbackOwner } from "#tools/durable-callbacks.js";
/** Reconstructs every callback exclusively from its durable descriptor. */
export declare function replayDynamicTools(metadata: readonly CurrentDynamicToolMetadata[], scope: Pick<DynamicToolCallbackOwner, "sessionId" | "scope">): HarnessToolDefinition[];
/**
 * Builds live dynamic tool definitions. Narrower scopes appear first so they
 * win on name collision (the tool loop uses `??=` for deduplication).
 */
export declare function buildResponseAuthorizationTools(input: {
    readonly authoredTools: HarnessToolMap;
    readonly context?: ContextReader;
}): HarnessToolMap;
export declare function buildDynamicTools(ctx: ContextReader): readonly HarnessToolDefinition[];
