import type { ToolSet, TypedToolCall } from "ai";
import type { ActionPresentationByCallId } from "#protocol/message.js";
import type { HarnessToolDefinition } from "#harness/execute-tool.js";
import type { HarnessToolMap } from "#harness/types.js";
import type { RuntimeActionRequest } from "#shared/action-types.js";
export interface RuntimeActionRequestProjection {
    readonly action: RuntimeActionRequest;
    readonly presentationLabel?: string;
}
export declare function createPresentedRuntimeActionRequestFromToolCall(input: {
    readonly toolCall: TypedToolCall<ToolSet>;
    readonly tools: HarnessToolMap;
}): RuntimeActionRequestProjection;
/** Calls a tool's label callback with a detached, JSON-safe input copy. */
export declare function projectToolStartLabel(definition: {
    readonly label?: HarnessToolDefinition["label"];
} | undefined, input: unknown): string | undefined;
export declare function collectActionPresentation(actions: readonly RuntimeActionRequestProjection[]): ActionPresentationByCallId | undefined;
