import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { ErrorPart, ErrorPart$Outbound } from "./errorpart.js";
import { FilePart, FilePart$Outbound } from "./filepart.js";
import { TextPart, TextPart$Outbound } from "./textpart.js";
import { ToolResultPart, ToolResultPart$Outbound } from "./toolresultpart.js";
/**
 * Message containing tool execution results
 */
export declare const RoleToolMessage: {
    readonly Tool: "tool";
};
/**
 * Message containing tool execution results
 */
export type RoleToolMessage = ClosedEnum<typeof RoleToolMessage>;
/**
 * Message from the end user
 */
export declare const RoleUserMessage: {
    readonly User: "user";
};
/**
 * Message from the end user
 */
export type RoleUserMessage = ClosedEnum<typeof RoleUserMessage>;
/**
 * Message role (user or tool for continuing executions)
 */
export type AgentResponseRequestRole = RoleUserMessage | RoleToolMessage;
/**
 * Message part that can be provided by users. Use "text" for regular messages, "file" for attachments, or "tool_result" when responding to tool call requests.
 */
export type PublicMessagePart = TextPart | FilePart | ToolResultPart | ErrorPart;
/**
 * The A2A message to send to the agent (user input or tool results)
 */
export type A2AMessage = {
    /**
     * Optional A2A message ID in ULID format
     */
    messageId?: string | undefined;
    /**
     * Message role (user or tool for continuing executions)
     */
    role: RoleUserMessage | RoleToolMessage;
    /**
     * A2A message parts (text, file, or tool_result only). Note: Tool role messages must only contain tool_result parts.
     */
    parts: Array<TextPart | FilePart | ToolResultPart | ErrorPart>;
};
/**
 * Information about the identity making the request. If the identity does not exist, it will be created automatically.
 */
export type AgentResponseRequestIdentity = {
    /**
     * Unique identifier for the contact
     */
    id: string;
    /**
     * Display name of the contact
     */
    displayName?: string | undefined;
    /**
     * Email address of the contact
     */
    email?: string | undefined;
    /**
     * A hash of key/value pairs containing any other data about the contact
     */
    metadata?: Array<{
        [k: string]: any;
    }> | undefined;
    /**
     * URL to the contact's avatar or logo
     */
    logoUrl?: string | undefined;
    /**
     * A list of tags associated with the contact
     */
    tags?: Array<string> | undefined;
};
/**
 * @deprecated Use identity instead. Information about the contact making the request.
 *
 * @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
 */
export type Contact = {
    /**
     * Unique identifier for the contact
     */
    id: string;
    /**
     * Display name of the contact
     */
    displayName?: string | undefined;
    /**
     * Email address of the contact
     */
    email?: string | undefined;
    /**
     * A hash of key/value pairs containing any other data about the contact
     */
    metadata?: Array<{
        [k: string]: any;
    }> | undefined;
    /**
     * URL to the contact's avatar or logo
     */
    logoUrl?: string | undefined;
    /**
     * A list of tags associated with the contact
     */
    tags?: Array<string> | undefined;
};
/**
 * Thread information to group related requests
 */
export type AgentResponseRequestThread = {
    /**
     * Unique thread identifier to group related invocations.
     */
    id: string;
    /**
     * Optional tags to differentiate or categorize threads
     */
    tags?: Array<string> | undefined;
};
/**
 * Memory configuration for the agent execution. Used to associate memory stores with specific entities like users or sessions.
 */
export type Memory = {
    /**
     * An entity ID used to link memory stores to a specific user, session, or conversation. This ID is used to isolate and retrieve memories specific to the entity across agent executions.
     */
    entityId: string;
};
/**
 * Override template engine for this invocation. If not provided, uses the agent default.
 */
export declare const Engine: {
    readonly Text: "text";
    readonly Jinja: "jinja";
    readonly Mustache: "mustache";
};
/**
 * Override template engine for this invocation. If not provided, uses the agent default.
 */
export type Engine = ClosedEnum<typeof Engine>;
/**
 * Configuration options for the agent invocation
 */
export type Configuration = {
    /**
     * Whether to block until the agent task completes. When true, the response will include the full task with messages. When false (default), returns immediately with task ID and status.
     */
    blocking?: boolean | undefined;
};
/**
 * Conversation context for chat studio integration
 */
export type Conversation = {
    /**
     * Unique ULID identifier for the conversation, prefixed with "conv_". Used to link agent executions to a specific conversation thread.
     */
    id: string;
};
/**
 * Request body for creating an agent response. Extends A2AInvokeRequest with response options. Matches POST /v2/agents/{key}/responses
 */
export type AgentResponseRequest = {
    /**
     * Optional task ID to continue an existing agent execution. When provided, the agent will continue the conversation from the existing task state. The task must be in an inactive state to continue.
     */
    taskId?: string | undefined;
    /**
     * The A2A message to send to the agent (user input or tool results)
     */
    message: A2AMessage;
    /**
     * Optional variables for template replacement in system prompt, instructions, and messages
     */
    variables?: {
        [k: string]: any;
    } | undefined;
    /**
     * Information about the identity making the request. If the identity does not exist, it will be created automatically.
     */
    identity?: AgentResponseRequestIdentity | undefined;
    /**
     * @deprecated Use identity instead. Information about the contact making the request.
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    contact?: Contact | undefined;
    /**
     * Thread information to group related requests
     */
    thread?: AgentResponseRequestThread | undefined;
    /**
     * Memory configuration for the agent execution. Used to associate memory stores with specific entities like users or sessions.
     */
    memory?: Memory | undefined;
    /**
     * Optional metadata for the agent invocation as key-value pairs that will be included in traces
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * Override template engine for this invocation. If not provided, uses the agent default.
     */
    engine?: Engine | undefined;
    /**
     * Configuration options for the agent invocation
     */
    configuration?: Configuration | undefined;
    /**
     * If true, returns immediately without waiting for completion. If false (default), waits until the agent becomes inactive or errors.
     */
    background?: boolean | undefined;
    /**
     * If true, returns Server-Sent Events (SSE) streaming response with real-time events. If false (default), returns standard JSON response.
     */
    stream?: boolean | undefined;
    /**
     * Conversation context for chat studio integration
     */
    conversation?: Conversation | undefined;
};
/** @internal */
export declare const RoleToolMessage$outboundSchema: z.ZodNativeEnum<typeof RoleToolMessage>;
/** @internal */
export declare const RoleUserMessage$outboundSchema: z.ZodNativeEnum<typeof RoleUserMessage>;
/** @internal */
export type AgentResponseRequestRole$Outbound = string | string;
/** @internal */
export declare const AgentResponseRequestRole$outboundSchema: z.ZodType<AgentResponseRequestRole$Outbound, z.ZodTypeDef, AgentResponseRequestRole>;
export declare function agentResponseRequestRoleToJSON(agentResponseRequestRole: AgentResponseRequestRole): string;
/** @internal */
export type PublicMessagePart$Outbound = TextPart$Outbound | FilePart$Outbound | ToolResultPart$Outbound | ErrorPart$Outbound;
/** @internal */
export declare const PublicMessagePart$outboundSchema: z.ZodType<PublicMessagePart$Outbound, z.ZodTypeDef, PublicMessagePart>;
export declare function publicMessagePartToJSON(publicMessagePart: PublicMessagePart): string;
/** @internal */
export type A2AMessage$Outbound = {
    messageId?: string | undefined;
    role: string | string;
    parts: Array<TextPart$Outbound | FilePart$Outbound | ToolResultPart$Outbound | ErrorPart$Outbound>;
};
/** @internal */
export declare const A2AMessage$outboundSchema: z.ZodType<A2AMessage$Outbound, z.ZodTypeDef, A2AMessage>;
export declare function a2AMessageToJSON(a2AMessage: A2AMessage): string;
/** @internal */
export type AgentResponseRequestIdentity$Outbound = {
    id: string;
    display_name?: string | undefined;
    email?: string | undefined;
    metadata?: Array<{
        [k: string]: any;
    }> | undefined;
    logo_url?: string | undefined;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const AgentResponseRequestIdentity$outboundSchema: z.ZodType<AgentResponseRequestIdentity$Outbound, z.ZodTypeDef, AgentResponseRequestIdentity>;
export declare function agentResponseRequestIdentityToJSON(agentResponseRequestIdentity: AgentResponseRequestIdentity): string;
/** @internal */
export type Contact$Outbound = {
    id: string;
    display_name?: string | undefined;
    email?: string | undefined;
    metadata?: Array<{
        [k: string]: any;
    }> | undefined;
    logo_url?: string | undefined;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const Contact$outboundSchema: z.ZodType<Contact$Outbound, z.ZodTypeDef, Contact>;
export declare function contactToJSON(contact: Contact): string;
/** @internal */
export type AgentResponseRequestThread$Outbound = {
    id: string;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const AgentResponseRequestThread$outboundSchema: z.ZodType<AgentResponseRequestThread$Outbound, z.ZodTypeDef, AgentResponseRequestThread>;
export declare function agentResponseRequestThreadToJSON(agentResponseRequestThread: AgentResponseRequestThread): string;
/** @internal */
export type Memory$Outbound = {
    entity_id: string;
};
/** @internal */
export declare const Memory$outboundSchema: z.ZodType<Memory$Outbound, z.ZodTypeDef, Memory>;
export declare function memoryToJSON(memory: Memory): string;
/** @internal */
export declare const Engine$outboundSchema: z.ZodNativeEnum<typeof Engine>;
/** @internal */
export type Configuration$Outbound = {
    blocking: boolean;
};
/** @internal */
export declare const Configuration$outboundSchema: z.ZodType<Configuration$Outbound, z.ZodTypeDef, Configuration>;
export declare function configurationToJSON(configuration: Configuration): string;
/** @internal */
export type Conversation$Outbound = {
    _id: string;
};
/** @internal */
export declare const Conversation$outboundSchema: z.ZodType<Conversation$Outbound, z.ZodTypeDef, Conversation>;
export declare function conversationToJSON(conversation: Conversation): string;
/** @internal */
export type AgentResponseRequest$Outbound = {
    task_id?: string | undefined;
    message: A2AMessage$Outbound;
    variables?: {
        [k: string]: any;
    } | undefined;
    identity?: AgentResponseRequestIdentity$Outbound | undefined;
    contact?: Contact$Outbound | undefined;
    thread?: AgentResponseRequestThread$Outbound | undefined;
    memory?: Memory$Outbound | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    engine?: string | undefined;
    configuration?: Configuration$Outbound | undefined;
    background: boolean;
    stream: boolean;
    conversation?: Conversation$Outbound | undefined;
};
/** @internal */
export declare const AgentResponseRequest$outboundSchema: z.ZodType<AgentResponseRequest$Outbound, z.ZodTypeDef, AgentResponseRequest>;
export declare function agentResponseRequestToJSON(agentResponseRequest: AgentResponseRequest): string;
//# sourceMappingURL=agentresponserequest.d.ts.map