import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.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 CreateAgentResponseRequestRole = RoleUserMessage | RoleToolMessage;
export declare const PublicMessagePartKind: {
    readonly ToolResult: "tool_result";
};
export type PublicMessagePartKind = ClosedEnum<typeof PublicMessagePartKind>;
/**
 * 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: PublicMessagePartKind;
    toolCallId: string;
    result?: any | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export declare const Kind: {
    readonly File: "file";
};
export type Kind = ClosedEnum<typeof Kind>;
/**
 * 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: Kind;
    file: BinaryFormat | FileInURIFormat;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/**
 * 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 = components.TextPart | FilePart | ToolResultPart;
/**
 * 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)
     */
    parts: Array<components.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 CreateAgentResponseRequestThread = {
    /**
     * 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 CreateAgentResponseRequestRequestBody = {
    /**
     * 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 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?: CreateAgentResponseRequestThread | 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;
    /**
     * If true, returns immediately without waiting for completion. If false (default), waits until the agent becomes inactive or errors.
     */
    background?: boolean | undefined;
};
export type CreateAgentResponseRequestRequest = {
    /**
     * The unique key of identifier of the agent to invoke
     */
    agentKey: string;
    requestBody: CreateAgentResponseRequestRequestBody;
};
export declare const CreateAgentResponseRequestAgentsResponsesRole: {
    readonly User: "user";
    readonly Agent: "agent";
    readonly Tool: "tool";
    readonly System: "system";
};
export type CreateAgentResponseRequestAgentsResponsesRole = ClosedEnum<typeof CreateAgentResponseRequestAgentsResponsesRole>;
export type Parts = (components.ToolCallPart & {
    kind: "tool_call";
}) | (components.TextPart & {
    kind: "text";
}) | (components.DataPart & {
    kind: "data";
}) | (components.FilePart & {
    kind: "file";
}) | (components.ToolResultPart & {
    kind: "tool_result";
});
export type Output = {
    messageId: string;
    role: CreateAgentResponseRequestAgentsResponsesRole;
    parts: Array<(components.ToolCallPart & {
        kind: "tool_call";
    }) | (components.TextPart & {
        kind: "text";
    }) | (components.DataPart & {
        kind: "data";
    }) | (components.FilePart & {
        kind: "file";
    }) | (components.ToolResultPart & {
        kind: "tool_result";
    })>;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export type PromptTokensDetails = {
    cachedTokens?: number | null | undefined;
    /**
     * The number of audio input tokens consumed by the request.
     */
    audioTokens?: number | null | undefined;
};
export type CompletionTokensDetails = {
    reasoningTokens?: number | null | undefined;
    acceptedPredictionTokens?: number | null | undefined;
    rejectedPredictionTokens?: number | null | undefined;
    /**
     * The number of audio output tokens produced by the response.
     */
    audioTokens?: number | null | undefined;
};
/**
 * Token usage from the agent execution
 */
export type CreateAgentResponseRequestUsage = {
    /**
     * Number of tokens in the generated completion.
     */
    completionTokens?: number | undefined;
    /**
     * Number of tokens in the prompt.
     */
    promptTokens?: number | undefined;
    /**
     * Total number of tokens used in the request (prompt + completion).
     */
    totalTokens?: number | undefined;
    promptTokensDetails?: PromptTokensDetails | null | undefined;
    completionTokensDetails?: CompletionTokensDetails | null | undefined;
};
/**
 * Agent response successfully created and completed. Returns the full conversation including all messages, tool interactions, model used, and token usage statistics. In background mode, returns immediately with initial task details.
 */
export type CreateAgentResponseRequestResponseBody = {
    /**
     * The unique response ID
     */
    id: string;
    /**
     * The agent execution task ID
     */
    taskId: string;
    /**
     * Array of messages from the agent execution
     */
    output: Array<Output>;
    /**
     * ISO timestamp of response creation
     */
    createdAt: string;
    /**
     * Model used in provider/model format
     */
    model: string;
    /**
     * Token usage from the agent execution
     */
    usage?: CreateAgentResponseRequestUsage | null | 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 CreateAgentResponseRequestRole$inboundSchema: z.ZodType<CreateAgentResponseRequestRole, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestRole$Outbound = string | string;
/** @internal */
export declare const CreateAgentResponseRequestRole$outboundSchema: z.ZodType<CreateAgentResponseRequestRole$Outbound, z.ZodTypeDef, CreateAgentResponseRequestRole>;
export declare function createAgentResponseRequestRoleToJSON(createAgentResponseRequestRole: CreateAgentResponseRequestRole): string;
export declare function createAgentResponseRequestRoleFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestRole, 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 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 Kind$inboundSchema: z.ZodNativeEnum<typeof Kind>;
/** @internal */
export declare const Kind$outboundSchema: z.ZodNativeEnum<typeof Kind>;
/** @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 PublicMessagePart$inboundSchema: z.ZodType<PublicMessagePart, z.ZodTypeDef, unknown>;
/** @internal */
export type PublicMessagePart$Outbound = components.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 A2AMessage$inboundSchema: z.ZodType<A2AMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type A2AMessage$Outbound = {
    messageId?: string | undefined;
    role: string | string;
    parts: Array<components.TextPart$Outbound | FilePart$Outbound | ToolResultPart$Outbound>;
};
/** @internal */
export declare const A2AMessage$outboundSchema: z.ZodType<A2AMessage$Outbound, z.ZodTypeDef, A2AMessage>;
export declare function a2AMessageToJSON(a2AMessage: A2AMessage): string;
export declare function a2AMessageFromJSON(jsonString: string): SafeParseResult<A2AMessage, 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 CreateAgentResponseRequestThread$inboundSchema: z.ZodType<CreateAgentResponseRequestThread, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestThread$Outbound = {
    id: string;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const CreateAgentResponseRequestThread$outboundSchema: z.ZodType<CreateAgentResponseRequestThread$Outbound, z.ZodTypeDef, CreateAgentResponseRequestThread>;
export declare function createAgentResponseRequestThreadToJSON(createAgentResponseRequestThread: CreateAgentResponseRequestThread): string;
export declare function createAgentResponseRequestThreadFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestThread, 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 CreateAgentResponseRequestRequestBody$inboundSchema: z.ZodType<CreateAgentResponseRequestRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestRequestBody$Outbound = {
    task_id?: string | undefined;
    message: A2AMessage$Outbound;
    variables?: {
        [k: string]: any;
    } | undefined;
    contact?: Contact$Outbound | undefined;
    thread?: CreateAgentResponseRequestThread$Outbound | undefined;
    memory?: Memory$Outbound | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    background: boolean;
};
/** @internal */
export declare const CreateAgentResponseRequestRequestBody$outboundSchema: z.ZodType<CreateAgentResponseRequestRequestBody$Outbound, z.ZodTypeDef, CreateAgentResponseRequestRequestBody>;
export declare function createAgentResponseRequestRequestBodyToJSON(createAgentResponseRequestRequestBody: CreateAgentResponseRequestRequestBody): string;
export declare function createAgentResponseRequestRequestBodyFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestRequestBody, SDKValidationError>;
/** @internal */
export declare const CreateAgentResponseRequestRequest$inboundSchema: z.ZodType<CreateAgentResponseRequestRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestRequest$Outbound = {
    agent_key: string;
    RequestBody: CreateAgentResponseRequestRequestBody$Outbound;
};
/** @internal */
export declare const CreateAgentResponseRequestRequest$outboundSchema: z.ZodType<CreateAgentResponseRequestRequest$Outbound, z.ZodTypeDef, CreateAgentResponseRequestRequest>;
export declare function createAgentResponseRequestRequestToJSON(createAgentResponseRequestRequest: CreateAgentResponseRequestRequest): string;
export declare function createAgentResponseRequestRequestFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestRequest, SDKValidationError>;
/** @internal */
export declare const CreateAgentResponseRequestAgentsResponsesRole$inboundSchema: z.ZodNativeEnum<typeof CreateAgentResponseRequestAgentsResponsesRole>;
/** @internal */
export declare const CreateAgentResponseRequestAgentsResponsesRole$outboundSchema: z.ZodNativeEnum<typeof CreateAgentResponseRequestAgentsResponsesRole>;
/** @internal */
export declare const Parts$inboundSchema: z.ZodType<Parts, z.ZodTypeDef, unknown>;
/** @internal */
export type Parts$Outbound = (components.ToolCallPart$Outbound & {
    kind: "tool_call";
}) | (components.TextPart$Outbound & {
    kind: "text";
}) | (components.DataPart$Outbound & {
    kind: "data";
}) | (components.FilePart$Outbound & {
    kind: "file";
}) | (components.ToolResultPart$Outbound & {
    kind: "tool_result";
});
/** @internal */
export declare const Parts$outboundSchema: z.ZodType<Parts$Outbound, z.ZodTypeDef, Parts>;
export declare function partsToJSON(parts: Parts): string;
export declare function partsFromJSON(jsonString: string): SafeParseResult<Parts, SDKValidationError>;
/** @internal */
export declare const Output$inboundSchema: z.ZodType<Output, z.ZodTypeDef, unknown>;
/** @internal */
export type Output$Outbound = {
    messageId: string;
    role: string;
    parts: Array<(components.ToolCallPart$Outbound & {
        kind: "tool_call";
    }) | (components.TextPart$Outbound & {
        kind: "text";
    }) | (components.DataPart$Outbound & {
        kind: "data";
    }) | (components.FilePart$Outbound & {
        kind: "file";
    }) | (components.ToolResultPart$Outbound & {
        kind: "tool_result";
    })>;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const Output$outboundSchema: z.ZodType<Output$Outbound, z.ZodTypeDef, Output>;
export declare function outputToJSON(output: Output): string;
export declare function outputFromJSON(jsonString: string): SafeParseResult<Output, SDKValidationError>;
/** @internal */
export declare const PromptTokensDetails$inboundSchema: z.ZodType<PromptTokensDetails, z.ZodTypeDef, unknown>;
/** @internal */
export type PromptTokensDetails$Outbound = {
    cached_tokens?: number | null | undefined;
    audio_tokens?: number | null | undefined;
};
/** @internal */
export declare const PromptTokensDetails$outboundSchema: z.ZodType<PromptTokensDetails$Outbound, z.ZodTypeDef, PromptTokensDetails>;
export declare function promptTokensDetailsToJSON(promptTokensDetails: PromptTokensDetails): string;
export declare function promptTokensDetailsFromJSON(jsonString: string): SafeParseResult<PromptTokensDetails, SDKValidationError>;
/** @internal */
export declare const CompletionTokensDetails$inboundSchema: z.ZodType<CompletionTokensDetails, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionTokensDetails$Outbound = {
    reasoning_tokens?: number | null | undefined;
    accepted_prediction_tokens?: number | null | undefined;
    rejected_prediction_tokens?: number | null | undefined;
    audio_tokens?: number | null | undefined;
};
/** @internal */
export declare const CompletionTokensDetails$outboundSchema: z.ZodType<CompletionTokensDetails$Outbound, z.ZodTypeDef, CompletionTokensDetails>;
export declare function completionTokensDetailsToJSON(completionTokensDetails: CompletionTokensDetails): string;
export declare function completionTokensDetailsFromJSON(jsonString: string): SafeParseResult<CompletionTokensDetails, SDKValidationError>;
/** @internal */
export declare const CreateAgentResponseRequestUsage$inboundSchema: z.ZodType<CreateAgentResponseRequestUsage, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestUsage$Outbound = {
    completion_tokens?: number | undefined;
    prompt_tokens?: number | undefined;
    total_tokens?: number | undefined;
    prompt_tokens_details?: PromptTokensDetails$Outbound | null | undefined;
    completion_tokens_details?: CompletionTokensDetails$Outbound | null | undefined;
};
/** @internal */
export declare const CreateAgentResponseRequestUsage$outboundSchema: z.ZodType<CreateAgentResponseRequestUsage$Outbound, z.ZodTypeDef, CreateAgentResponseRequestUsage>;
export declare function createAgentResponseRequestUsageToJSON(createAgentResponseRequestUsage: CreateAgentResponseRequestUsage): string;
export declare function createAgentResponseRequestUsageFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestUsage, SDKValidationError>;
/** @internal */
export declare const CreateAgentResponseRequestResponseBody$inboundSchema: z.ZodType<CreateAgentResponseRequestResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type CreateAgentResponseRequestResponseBody$Outbound = {
    _id: string;
    task_id: string;
    output: Array<Output$Outbound>;
    created_at: string;
    model: string;
    usage?: CreateAgentResponseRequestUsage$Outbound | null | undefined;
};
/** @internal */
export declare const CreateAgentResponseRequestResponseBody$outboundSchema: z.ZodType<CreateAgentResponseRequestResponseBody$Outbound, z.ZodTypeDef, CreateAgentResponseRequestResponseBody>;
export declare function createAgentResponseRequestResponseBodyToJSON(createAgentResponseRequestResponseBody: CreateAgentResponseRequestResponseBody): string;
export declare function createAgentResponseRequestResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateAgentResponseRequestResponseBody, SDKValidationError>;
//# sourceMappingURL=createagentresponserequest.d.ts.map