import type { UserContent } from "ai"; import type { SessionCallback, SessionCapabilities } from "#channel/types.js"; import type { LegacyRemoteAgentCaller } from "#execution/legacy-remote-agent/protocol.js"; import type { JsonObject } from "#shared/json.js"; import type { ToolStub } from "#tool-stubs/types.js"; export interface ParsedCreateBody { stubs?: readonly ToolStub[]; callback?: SessionCallback; capabilities?: SessionCapabilities; message?: string | UserContent; context?: readonly string[]; operationId?: string; outputSchema?: JsonObject; /** Remote agent protocol of a delegating caller; set only with {@link callback}. */ protocolVersion?: number; legacyRemoteAgentCaller?: LegacyRemoteAgentCaller; } /** Enforces the fields that only make sense when creation also starts a turn. */ export declare function validateMessageFreeCreate(input: { readonly callback: SessionCallback | undefined; readonly hasClientContext: boolean; readonly hasMessageField: boolean; readonly message: string | UserContent | undefined; readonly outputSchema: JsonObject | undefined; }): Response | undefined;