import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Tool message
 */
export declare const RoleToolMessage: {
    readonly Tool: "tool";
};
/**
 * Tool message
 */
export type RoleToolMessage = ClosedEnum<typeof RoleToolMessage>;
/**
 * User message
 */
export declare const RoleUserMessage: {
    readonly User: "user";
};
/**
 * User message
 */
export type RoleUserMessage = ClosedEnum<typeof RoleUserMessage>;
/**
 * Message role (user or tool for continuing executions)
 */
export type InvokeAgentRole = RoleUserMessage | RoleToolMessage;
export declare const InvokeAgentPublicMessagePartKind: {
    readonly ToolResult: "tool_result";
};
export type InvokeAgentPublicMessagePartKind = ClosedEnum<typeof InvokeAgentPublicMessagePartKind>;
/**
 * Tool execution result part. Use this ONLY when providing results for a pending tool call from the agent. The tool_call_id must match the ID from the agent's tool call request.
 */
export type ToolResultPart = {
    kind: InvokeAgentPublicMessagePartKind;
    toolCallId: string;
    result?: any | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export declare const PublicMessagePartKind: {
    readonly File: "file";
};
export type PublicMessagePartKind = ClosedEnum<typeof PublicMessagePartKind>;
/**
 * File in URI format. Check in the model's documentation for the supported mime types for the URI format
 */
export type FileInURIFormat = {
    /**
     * URL for the File content
     */
    uri: string;
    /**
     * Optional mimeType for the file
     */
    mimeType?: string | undefined;
    /**
     * Optional name for the file
     */
    name?: string | undefined;
};
/**
 * Binary in base64 format. Check in the model's documentation for the supported mime types for the binary format.
 */
export type BinaryFormat = {
    /**
     * base64 encoded content of the file
     */
    bytes: string;
    /**
     * Optional mimeType for the file
     */
    mimeType?: string | undefined;
    /**
     * Optional name for the file
     */
    name?: string | undefined;
};
export type PublicMessagePartFile = BinaryFormat | FileInURIFormat;
/**
 * File attachment part. Use this to send files (images, documents, etc.) to the agent for processing.
 */
export type FilePart = {
    kind: PublicMessagePartKind;
    file: BinaryFormat | FileInURIFormat;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export declare const Kind: {
    readonly Text: "text";
};
export type Kind = ClosedEnum<typeof Kind>;
/**
 * Text content part. Use this to send text messages to the agent.
 */
export type TextPart = {
    kind: Kind;
    text: string;
};
/**
 * 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;
export type Message = {
    /**
     * 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)
     */
    parts: Array<TextPart | FilePart | ToolResultPart>;
};
/**
 * Information about the contact making the request. If the contact does not exist, it will be created automatically.
 */
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 InvokeAgentThread = {
    /**
     * 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;
};
export type InvokeAgentRequestBody = {
    /**
     * 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;
    message: Message;
    /**
     * Optional variables for template replacement in system prompt, instructions, and messages
     */
    variables?: {
        [k: string]: any;
    } | undefined;
    /**
     * Information about the contact making the request. If the contact does not exist, it will be created automatically.
     */
    contact?: Contact | undefined;
    /**
     * Thread information to group related requests
     */
    thread?: InvokeAgentThread | 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;
};
export type InvokeAgentRequest = {
    /**
     * The key or ID of the agent to invoke
     */
    key: string;
    requestBody?: InvokeAgentRequestBody | undefined;
};
/**
 * A2A entity type
 */
export declare const InvokeAgentKind: {
    readonly Task: "task";
};
/**
 * A2A entity type
 */
export type InvokeAgentKind = ClosedEnum<typeof InvokeAgentKind>;
/**
 * Current task state
 */
export declare const InvokeAgentState: {
    readonly Submitted: "submitted";
    readonly Working: "working";
    readonly InputRequired: "input-required";
    readonly Completed: "completed";
    readonly Failed: "failed";
    readonly Canceled: "canceled";
    readonly Rejected: "rejected";
    readonly AuthRequired: "auth-required";
    readonly Unknown: "unknown";
};
/**
 * Current task state
 */
export type InvokeAgentState = ClosedEnum<typeof InvokeAgentState>;
export declare const InvokeAgentAgentsKind: {
    readonly Message: "message";
};
export type InvokeAgentAgentsKind = ClosedEnum<typeof InvokeAgentAgentsKind>;
/**
 * Extended A2A message role
 */
export declare const InvokeAgentAgentsRole: {
    readonly User: "user";
    readonly Agent: "agent";
    readonly Tool: "tool";
    readonly System: "system";
};
/**
 * Extended A2A message role
 */
export type InvokeAgentAgentsRole = ClosedEnum<typeof InvokeAgentAgentsRole>;
/**
 * Optional status message
 */
export type InvokeAgentMessage = {
    kind: InvokeAgentAgentsKind;
    messageId: string;
    /**
     * Extended A2A message role
     */
    role: InvokeAgentAgentsRole;
    parts: Array<any>;
};
/**
 * Task status information
 */
export type InvokeAgentStatus = {
    /**
     * Current task state
     */
    state: InvokeAgentState;
    /**
     * ISO timestamp of status update
     */
    timestamp?: string | undefined;
    /**
     * Optional status message
     */
    message?: InvokeAgentMessage | undefined;
};
/**
 * A2A Task response format
 */
export type InvokeAgentResponseBody = {
    /**
     * The ID of the created agent execution task
     */
    id: string;
    /**
     * The correlation ID for this execution
     */
    contextId: string;
    /**
     * A2A entity type
     */
    kind: InvokeAgentKind;
    /**
     * Task status information
     */
    status: InvokeAgentStatus;
    /**
     * Task metadata containing workspace_id and trace_id for feedback
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const RoleToolMessage$inboundSchema: z.ZodNativeEnum<typeof RoleToolMessage>;
/** @internal */
export declare const RoleToolMessage$outboundSchema: z.ZodNativeEnum<typeof RoleToolMessage>;
/** @internal */
export declare const RoleUserMessage$inboundSchema: z.ZodNativeEnum<typeof RoleUserMessage>;
/** @internal */
export declare const RoleUserMessage$outboundSchema: z.ZodNativeEnum<typeof RoleUserMessage>;
/** @internal */
export declare const InvokeAgentRole$inboundSchema: z.ZodType<InvokeAgentRole, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentRole$Outbound = string | string;
/** @internal */
export declare const InvokeAgentRole$outboundSchema: z.ZodType<InvokeAgentRole$Outbound, z.ZodTypeDef, InvokeAgentRole>;
export declare function invokeAgentRoleToJSON(invokeAgentRole: InvokeAgentRole): string;
export declare function invokeAgentRoleFromJSON(jsonString: string): SafeParseResult<InvokeAgentRole, SDKValidationError>;
/** @internal */
export declare const InvokeAgentPublicMessagePartKind$inboundSchema: z.ZodNativeEnum<typeof InvokeAgentPublicMessagePartKind>;
/** @internal */
export declare const InvokeAgentPublicMessagePartKind$outboundSchema: z.ZodNativeEnum<typeof InvokeAgentPublicMessagePartKind>;
/** @internal */
export declare const ToolResultPart$inboundSchema: z.ZodType<ToolResultPart, z.ZodTypeDef, unknown>;
/** @internal */
export type ToolResultPart$Outbound = {
    kind: string;
    tool_call_id: string;
    result?: any | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const ToolResultPart$outboundSchema: z.ZodType<ToolResultPart$Outbound, z.ZodTypeDef, ToolResultPart>;
export declare function toolResultPartToJSON(toolResultPart: ToolResultPart): string;
export declare function toolResultPartFromJSON(jsonString: string): SafeParseResult<ToolResultPart, SDKValidationError>;
/** @internal */
export declare const PublicMessagePartKind$inboundSchema: z.ZodNativeEnum<typeof PublicMessagePartKind>;
/** @internal */
export declare const PublicMessagePartKind$outboundSchema: z.ZodNativeEnum<typeof PublicMessagePartKind>;
/** @internal */
export declare const FileInURIFormat$inboundSchema: z.ZodType<FileInURIFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type FileInURIFormat$Outbound = {
    uri: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const FileInURIFormat$outboundSchema: z.ZodType<FileInURIFormat$Outbound, z.ZodTypeDef, FileInURIFormat>;
export declare function fileInURIFormatToJSON(fileInURIFormat: FileInURIFormat): string;
export declare function fileInURIFormatFromJSON(jsonString: string): SafeParseResult<FileInURIFormat, SDKValidationError>;
/** @internal */
export declare const BinaryFormat$inboundSchema: z.ZodType<BinaryFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type BinaryFormat$Outbound = {
    bytes: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const BinaryFormat$outboundSchema: z.ZodType<BinaryFormat$Outbound, z.ZodTypeDef, BinaryFormat>;
export declare function binaryFormatToJSON(binaryFormat: BinaryFormat): string;
export declare function binaryFormatFromJSON(jsonString: string): SafeParseResult<BinaryFormat, SDKValidationError>;
/** @internal */
export declare const PublicMessagePartFile$inboundSchema: z.ZodType<PublicMessagePartFile, z.ZodTypeDef, unknown>;
/** @internal */
export type PublicMessagePartFile$Outbound = BinaryFormat$Outbound | FileInURIFormat$Outbound;
/** @internal */
export declare const PublicMessagePartFile$outboundSchema: z.ZodType<PublicMessagePartFile$Outbound, z.ZodTypeDef, PublicMessagePartFile>;
export declare function publicMessagePartFileToJSON(publicMessagePartFile: PublicMessagePartFile): string;
export declare function publicMessagePartFileFromJSON(jsonString: string): SafeParseResult<PublicMessagePartFile, SDKValidationError>;
/** @internal */
export declare const FilePart$inboundSchema: z.ZodType<FilePart, z.ZodTypeDef, unknown>;
/** @internal */
export type FilePart$Outbound = {
    kind: string;
    file: BinaryFormat$Outbound | FileInURIFormat$Outbound;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const FilePart$outboundSchema: z.ZodType<FilePart$Outbound, z.ZodTypeDef, FilePart>;
export declare function filePartToJSON(filePart: FilePart): string;
export declare function filePartFromJSON(jsonString: string): SafeParseResult<FilePart, SDKValidationError>;
/** @internal */
export declare const Kind$inboundSchema: z.ZodNativeEnum<typeof Kind>;
/** @internal */
export declare const Kind$outboundSchema: z.ZodNativeEnum<typeof Kind>;
/** @internal */
export declare const TextPart$inboundSchema: z.ZodType<TextPart, z.ZodTypeDef, unknown>;
/** @internal */
export type TextPart$Outbound = {
    kind: string;
    text: string;
};
/** @internal */
export declare const TextPart$outboundSchema: z.ZodType<TextPart$Outbound, z.ZodTypeDef, TextPart>;
export declare function textPartToJSON(textPart: TextPart): string;
export declare function textPartFromJSON(jsonString: string): SafeParseResult<TextPart, SDKValidationError>;
/** @internal */
export declare const PublicMessagePart$inboundSchema: z.ZodType<PublicMessagePart, z.ZodTypeDef, unknown>;
/** @internal */
export type PublicMessagePart$Outbound = TextPart$Outbound | FilePart$Outbound | ToolResultPart$Outbound;
/** @internal */
export declare const PublicMessagePart$outboundSchema: z.ZodType<PublicMessagePart$Outbound, z.ZodTypeDef, PublicMessagePart>;
export declare function publicMessagePartToJSON(publicMessagePart: PublicMessagePart): string;
export declare function publicMessagePartFromJSON(jsonString: string): SafeParseResult<PublicMessagePart, SDKValidationError>;
/** @internal */
export declare const Message$inboundSchema: z.ZodType<Message, z.ZodTypeDef, unknown>;
/** @internal */
export type Message$Outbound = {
    messageId?: string | undefined;
    role: string | string;
    parts: Array<TextPart$Outbound | FilePart$Outbound | ToolResultPart$Outbound>;
};
/** @internal */
export declare const Message$outboundSchema: z.ZodType<Message$Outbound, z.ZodTypeDef, Message>;
export declare function messageToJSON(message: Message): string;
export declare function messageFromJSON(jsonString: string): SafeParseResult<Message, SDKValidationError>;
/** @internal */
export declare const Contact$inboundSchema: z.ZodType<Contact, z.ZodTypeDef, unknown>;
/** @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;
export declare function contactFromJSON(jsonString: string): SafeParseResult<Contact, SDKValidationError>;
/** @internal */
export declare const InvokeAgentThread$inboundSchema: z.ZodType<InvokeAgentThread, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentThread$Outbound = {
    id: string;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const InvokeAgentThread$outboundSchema: z.ZodType<InvokeAgentThread$Outbound, z.ZodTypeDef, InvokeAgentThread>;
export declare function invokeAgentThreadToJSON(invokeAgentThread: InvokeAgentThread): string;
export declare function invokeAgentThreadFromJSON(jsonString: string): SafeParseResult<InvokeAgentThread, SDKValidationError>;
/** @internal */
export declare const Memory$inboundSchema: z.ZodType<Memory, z.ZodTypeDef, unknown>;
/** @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;
export declare function memoryFromJSON(jsonString: string): SafeParseResult<Memory, SDKValidationError>;
/** @internal */
export declare const InvokeAgentRequestBody$inboundSchema: z.ZodType<InvokeAgentRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentRequestBody$Outbound = {
    task_id?: string | undefined;
    message: Message$Outbound;
    variables?: {
        [k: string]: any;
    } | undefined;
    contact?: Contact$Outbound | undefined;
    thread?: InvokeAgentThread$Outbound | undefined;
    memory?: Memory$Outbound | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const InvokeAgentRequestBody$outboundSchema: z.ZodType<InvokeAgentRequestBody$Outbound, z.ZodTypeDef, InvokeAgentRequestBody>;
export declare function invokeAgentRequestBodyToJSON(invokeAgentRequestBody: InvokeAgentRequestBody): string;
export declare function invokeAgentRequestBodyFromJSON(jsonString: string): SafeParseResult<InvokeAgentRequestBody, SDKValidationError>;
/** @internal */
export declare const InvokeAgentRequest$inboundSchema: z.ZodType<InvokeAgentRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentRequest$Outbound = {
    key: string;
    RequestBody?: InvokeAgentRequestBody$Outbound | undefined;
};
/** @internal */
export declare const InvokeAgentRequest$outboundSchema: z.ZodType<InvokeAgentRequest$Outbound, z.ZodTypeDef, InvokeAgentRequest>;
export declare function invokeAgentRequestToJSON(invokeAgentRequest: InvokeAgentRequest): string;
export declare function invokeAgentRequestFromJSON(jsonString: string): SafeParseResult<InvokeAgentRequest, SDKValidationError>;
/** @internal */
export declare const InvokeAgentKind$inboundSchema: z.ZodNativeEnum<typeof InvokeAgentKind>;
/** @internal */
export declare const InvokeAgentKind$outboundSchema: z.ZodNativeEnum<typeof InvokeAgentKind>;
/** @internal */
export declare const InvokeAgentState$inboundSchema: z.ZodNativeEnum<typeof InvokeAgentState>;
/** @internal */
export declare const InvokeAgentState$outboundSchema: z.ZodNativeEnum<typeof InvokeAgentState>;
/** @internal */
export declare const InvokeAgentAgentsKind$inboundSchema: z.ZodNativeEnum<typeof InvokeAgentAgentsKind>;
/** @internal */
export declare const InvokeAgentAgentsKind$outboundSchema: z.ZodNativeEnum<typeof InvokeAgentAgentsKind>;
/** @internal */
export declare const InvokeAgentAgentsRole$inboundSchema: z.ZodNativeEnum<typeof InvokeAgentAgentsRole>;
/** @internal */
export declare const InvokeAgentAgentsRole$outboundSchema: z.ZodNativeEnum<typeof InvokeAgentAgentsRole>;
/** @internal */
export declare const InvokeAgentMessage$inboundSchema: z.ZodType<InvokeAgentMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentMessage$Outbound = {
    kind: string;
    messageId: string;
    role: string;
    parts: Array<any>;
};
/** @internal */
export declare const InvokeAgentMessage$outboundSchema: z.ZodType<InvokeAgentMessage$Outbound, z.ZodTypeDef, InvokeAgentMessage>;
export declare function invokeAgentMessageToJSON(invokeAgentMessage: InvokeAgentMessage): string;
export declare function invokeAgentMessageFromJSON(jsonString: string): SafeParseResult<InvokeAgentMessage, SDKValidationError>;
/** @internal */
export declare const InvokeAgentStatus$inboundSchema: z.ZodType<InvokeAgentStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentStatus$Outbound = {
    state: string;
    timestamp?: string | undefined;
    message?: InvokeAgentMessage$Outbound | undefined;
};
/** @internal */
export declare const InvokeAgentStatus$outboundSchema: z.ZodType<InvokeAgentStatus$Outbound, z.ZodTypeDef, InvokeAgentStatus>;
export declare function invokeAgentStatusToJSON(invokeAgentStatus: InvokeAgentStatus): string;
export declare function invokeAgentStatusFromJSON(jsonString: string): SafeParseResult<InvokeAgentStatus, SDKValidationError>;
/** @internal */
export declare const InvokeAgentResponseBody$inboundSchema: z.ZodType<InvokeAgentResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type InvokeAgentResponseBody$Outbound = {
    id: string;
    contextId: string;
    kind: string;
    status: InvokeAgentStatus$Outbound;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const InvokeAgentResponseBody$outboundSchema: z.ZodType<InvokeAgentResponseBody$Outbound, z.ZodTypeDef, InvokeAgentResponseBody>;
export declare function invokeAgentResponseBodyToJSON(invokeAgentResponseBody: InvokeAgentResponseBody): string;
export declare function invokeAgentResponseBodyFromJSON(jsonString: string): SafeParseResult<InvokeAgentResponseBody, SDKValidationError>;
//# sourceMappingURL=invokeagent.d.ts.map