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 StreamAgentRoleToolMessage: {
    readonly Tool: "tool";
};
/**
 * Tool message
 */
export type StreamAgentRoleToolMessage = ClosedEnum<typeof StreamAgentRoleToolMessage>;
/**
 * User message
 */
export declare const StreamAgentRoleUserMessage: {
    readonly User: "user";
};
/**
 * User message
 */
export type StreamAgentRoleUserMessage = ClosedEnum<typeof StreamAgentRoleUserMessage>;
/**
 * Message role (user or tool for continuing executions)
 */
export type StreamAgentRole = StreamAgentRoleUserMessage | StreamAgentRoleToolMessage;
export declare const StreamAgentPublicMessagePartAgentsRequestKind: {
    readonly ToolResult: "tool_result";
};
export type StreamAgentPublicMessagePartAgentsRequestKind = ClosedEnum<typeof StreamAgentPublicMessagePartAgentsRequestKind>;
/**
 * 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 StreamAgentPublicMessagePartToolResultPart = {
    kind: StreamAgentPublicMessagePartAgentsRequestKind;
    toolCallId: string;
    result?: any | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export declare const StreamAgentPublicMessagePartAgentsKind: {
    readonly File: "file";
};
export type StreamAgentPublicMessagePartAgentsKind = ClosedEnum<typeof StreamAgentPublicMessagePartAgentsKind>;
/**
 * File in URI format. Check in the model's documentation for the supported mime types for the URI format
 */
export type StreamAgentFileFileInURIFormat = {
    /**
     * 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 StreamAgentFileBinaryFormat = {
    /**
     * 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 StreamAgentPublicMessagePartFile = StreamAgentFileBinaryFormat | StreamAgentFileFileInURIFormat;
/**
 * File attachment part. Use this to send files (images, documents, etc.) to the agent for processing.
 */
export type StreamAgentPublicMessagePartFilePart = {
    kind: StreamAgentPublicMessagePartAgentsKind;
    file: StreamAgentFileBinaryFormat | StreamAgentFileFileInURIFormat;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
export declare const StreamAgentPublicMessagePartKind: {
    readonly Text: "text";
};
export type StreamAgentPublicMessagePartKind = ClosedEnum<typeof StreamAgentPublicMessagePartKind>;
/**
 * Text content part. Use this to send text messages to the agent.
 */
export type StreamAgentPublicMessagePartTextPart = {
    kind: StreamAgentPublicMessagePartKind;
    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 StreamAgentPublicMessagePart = StreamAgentPublicMessagePartTextPart | StreamAgentPublicMessagePartFilePart | StreamAgentPublicMessagePartToolResultPart;
export type StreamAgentMessage = {
    /**
     * Optional A2A message ID in ULID format
     */
    messageId?: string | undefined;
    /**
     * Message role (user or tool for continuing executions)
     */
    role: StreamAgentRoleUserMessage | StreamAgentRoleToolMessage;
    /**
     * A2A message parts (text, file, or tool_result only)
     */
    parts: Array<StreamAgentPublicMessagePartTextPart | StreamAgentPublicMessagePartFilePart | StreamAgentPublicMessagePartToolResultPart>;
};
/**
 * Information about the contact making the request. If the contact does not exist, it will be created automatically.
 */
export type StreamAgentContact = {
    /**
     * 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 StreamAgentThread = {
    /**
     * 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 StreamAgentMemory = {
    /**
     * 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 StreamAgentRequestBody = {
    /**
     * 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: StreamAgentMessage;
    /**
     * 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?: StreamAgentContact | undefined;
    /**
     * Thread information to group related requests
     */
    thread?: StreamAgentThread | undefined;
    /**
     * Memory configuration for the agent execution. Used to associate memory stores with specific entities like users or sessions.
     */
    memory?: StreamAgentMemory | undefined;
    /**
     * Optional metadata for the agent invocation as key-value pairs that will be included in traces
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * Stream timeout in seconds (1-3600). Default: 1800 (30 minutes)
     */
    streamTimeoutSeconds?: number | undefined;
};
export type StreamAgentRequest = {
    /**
     * The key or ID of the agent to invoke
     */
    key: string;
    requestBody?: StreamAgentRequestBody | undefined;
};
/**
 * SSE stream of agent events
 */
export type StreamAgentResponseBody = {
    /**
     * JSON-encoded event data
     */
    data: string;
};
/** @internal */
export declare const StreamAgentRoleToolMessage$inboundSchema: z.ZodNativeEnum<typeof StreamAgentRoleToolMessage>;
/** @internal */
export declare const StreamAgentRoleToolMessage$outboundSchema: z.ZodNativeEnum<typeof StreamAgentRoleToolMessage>;
/** @internal */
export declare const StreamAgentRoleUserMessage$inboundSchema: z.ZodNativeEnum<typeof StreamAgentRoleUserMessage>;
/** @internal */
export declare const StreamAgentRoleUserMessage$outboundSchema: z.ZodNativeEnum<typeof StreamAgentRoleUserMessage>;
/** @internal */
export declare const StreamAgentRole$inboundSchema: z.ZodType<StreamAgentRole, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentRole$Outbound = string | string;
/** @internal */
export declare const StreamAgentRole$outboundSchema: z.ZodType<StreamAgentRole$Outbound, z.ZodTypeDef, StreamAgentRole>;
export declare function streamAgentRoleToJSON(streamAgentRole: StreamAgentRole): string;
export declare function streamAgentRoleFromJSON(jsonString: string): SafeParseResult<StreamAgentRole, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePartAgentsRequestKind$inboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartAgentsRequestKind>;
/** @internal */
export declare const StreamAgentPublicMessagePartAgentsRequestKind$outboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartAgentsRequestKind>;
/** @internal */
export declare const StreamAgentPublicMessagePartToolResultPart$inboundSchema: z.ZodType<StreamAgentPublicMessagePartToolResultPart, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentPublicMessagePartToolResultPart$Outbound = {
    kind: string;
    tool_call_id: string;
    result?: any | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const StreamAgentPublicMessagePartToolResultPart$outboundSchema: z.ZodType<StreamAgentPublicMessagePartToolResultPart$Outbound, z.ZodTypeDef, StreamAgentPublicMessagePartToolResultPart>;
export declare function streamAgentPublicMessagePartToolResultPartToJSON(streamAgentPublicMessagePartToolResultPart: StreamAgentPublicMessagePartToolResultPart): string;
export declare function streamAgentPublicMessagePartToolResultPartFromJSON(jsonString: string): SafeParseResult<StreamAgentPublicMessagePartToolResultPart, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePartAgentsKind$inboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartAgentsKind>;
/** @internal */
export declare const StreamAgentPublicMessagePartAgentsKind$outboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartAgentsKind>;
/** @internal */
export declare const StreamAgentFileFileInURIFormat$inboundSchema: z.ZodType<StreamAgentFileFileInURIFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentFileFileInURIFormat$Outbound = {
    uri: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const StreamAgentFileFileInURIFormat$outboundSchema: z.ZodType<StreamAgentFileFileInURIFormat$Outbound, z.ZodTypeDef, StreamAgentFileFileInURIFormat>;
export declare function streamAgentFileFileInURIFormatToJSON(streamAgentFileFileInURIFormat: StreamAgentFileFileInURIFormat): string;
export declare function streamAgentFileFileInURIFormatFromJSON(jsonString: string): SafeParseResult<StreamAgentFileFileInURIFormat, SDKValidationError>;
/** @internal */
export declare const StreamAgentFileBinaryFormat$inboundSchema: z.ZodType<StreamAgentFileBinaryFormat, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentFileBinaryFormat$Outbound = {
    bytes: string;
    mimeType?: string | undefined;
    name?: string | undefined;
};
/** @internal */
export declare const StreamAgentFileBinaryFormat$outboundSchema: z.ZodType<StreamAgentFileBinaryFormat$Outbound, z.ZodTypeDef, StreamAgentFileBinaryFormat>;
export declare function streamAgentFileBinaryFormatToJSON(streamAgentFileBinaryFormat: StreamAgentFileBinaryFormat): string;
export declare function streamAgentFileBinaryFormatFromJSON(jsonString: string): SafeParseResult<StreamAgentFileBinaryFormat, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePartFile$inboundSchema: z.ZodType<StreamAgentPublicMessagePartFile, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentPublicMessagePartFile$Outbound = StreamAgentFileBinaryFormat$Outbound | StreamAgentFileFileInURIFormat$Outbound;
/** @internal */
export declare const StreamAgentPublicMessagePartFile$outboundSchema: z.ZodType<StreamAgentPublicMessagePartFile$Outbound, z.ZodTypeDef, StreamAgentPublicMessagePartFile>;
export declare function streamAgentPublicMessagePartFileToJSON(streamAgentPublicMessagePartFile: StreamAgentPublicMessagePartFile): string;
export declare function streamAgentPublicMessagePartFileFromJSON(jsonString: string): SafeParseResult<StreamAgentPublicMessagePartFile, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePartFilePart$inboundSchema: z.ZodType<StreamAgentPublicMessagePartFilePart, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentPublicMessagePartFilePart$Outbound = {
    kind: string;
    file: StreamAgentFileBinaryFormat$Outbound | StreamAgentFileFileInURIFormat$Outbound;
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const StreamAgentPublicMessagePartFilePart$outboundSchema: z.ZodType<StreamAgentPublicMessagePartFilePart$Outbound, z.ZodTypeDef, StreamAgentPublicMessagePartFilePart>;
export declare function streamAgentPublicMessagePartFilePartToJSON(streamAgentPublicMessagePartFilePart: StreamAgentPublicMessagePartFilePart): string;
export declare function streamAgentPublicMessagePartFilePartFromJSON(jsonString: string): SafeParseResult<StreamAgentPublicMessagePartFilePart, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePartKind$inboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartKind>;
/** @internal */
export declare const StreamAgentPublicMessagePartKind$outboundSchema: z.ZodNativeEnum<typeof StreamAgentPublicMessagePartKind>;
/** @internal */
export declare const StreamAgentPublicMessagePartTextPart$inboundSchema: z.ZodType<StreamAgentPublicMessagePartTextPart, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentPublicMessagePartTextPart$Outbound = {
    kind: string;
    text: string;
};
/** @internal */
export declare const StreamAgentPublicMessagePartTextPart$outboundSchema: z.ZodType<StreamAgentPublicMessagePartTextPart$Outbound, z.ZodTypeDef, StreamAgentPublicMessagePartTextPart>;
export declare function streamAgentPublicMessagePartTextPartToJSON(streamAgentPublicMessagePartTextPart: StreamAgentPublicMessagePartTextPart): string;
export declare function streamAgentPublicMessagePartTextPartFromJSON(jsonString: string): SafeParseResult<StreamAgentPublicMessagePartTextPart, SDKValidationError>;
/** @internal */
export declare const StreamAgentPublicMessagePart$inboundSchema: z.ZodType<StreamAgentPublicMessagePart, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentPublicMessagePart$Outbound = StreamAgentPublicMessagePartTextPart$Outbound | StreamAgentPublicMessagePartFilePart$Outbound | StreamAgentPublicMessagePartToolResultPart$Outbound;
/** @internal */
export declare const StreamAgentPublicMessagePart$outboundSchema: z.ZodType<StreamAgentPublicMessagePart$Outbound, z.ZodTypeDef, StreamAgentPublicMessagePart>;
export declare function streamAgentPublicMessagePartToJSON(streamAgentPublicMessagePart: StreamAgentPublicMessagePart): string;
export declare function streamAgentPublicMessagePartFromJSON(jsonString: string): SafeParseResult<StreamAgentPublicMessagePart, SDKValidationError>;
/** @internal */
export declare const StreamAgentMessage$inboundSchema: z.ZodType<StreamAgentMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentMessage$Outbound = {
    messageId?: string | undefined;
    role: string | string;
    parts: Array<StreamAgentPublicMessagePartTextPart$Outbound | StreamAgentPublicMessagePartFilePart$Outbound | StreamAgentPublicMessagePartToolResultPart$Outbound>;
};
/** @internal */
export declare const StreamAgentMessage$outboundSchema: z.ZodType<StreamAgentMessage$Outbound, z.ZodTypeDef, StreamAgentMessage>;
export declare function streamAgentMessageToJSON(streamAgentMessage: StreamAgentMessage): string;
export declare function streamAgentMessageFromJSON(jsonString: string): SafeParseResult<StreamAgentMessage, SDKValidationError>;
/** @internal */
export declare const StreamAgentContact$inboundSchema: z.ZodType<StreamAgentContact, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentContact$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 StreamAgentContact$outboundSchema: z.ZodType<StreamAgentContact$Outbound, z.ZodTypeDef, StreamAgentContact>;
export declare function streamAgentContactToJSON(streamAgentContact: StreamAgentContact): string;
export declare function streamAgentContactFromJSON(jsonString: string): SafeParseResult<StreamAgentContact, SDKValidationError>;
/** @internal */
export declare const StreamAgentThread$inboundSchema: z.ZodType<StreamAgentThread, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentThread$Outbound = {
    id: string;
    tags?: Array<string> | undefined;
};
/** @internal */
export declare const StreamAgentThread$outboundSchema: z.ZodType<StreamAgentThread$Outbound, z.ZodTypeDef, StreamAgentThread>;
export declare function streamAgentThreadToJSON(streamAgentThread: StreamAgentThread): string;
export declare function streamAgentThreadFromJSON(jsonString: string): SafeParseResult<StreamAgentThread, SDKValidationError>;
/** @internal */
export declare const StreamAgentMemory$inboundSchema: z.ZodType<StreamAgentMemory, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentMemory$Outbound = {
    entity_id: string;
};
/** @internal */
export declare const StreamAgentMemory$outboundSchema: z.ZodType<StreamAgentMemory$Outbound, z.ZodTypeDef, StreamAgentMemory>;
export declare function streamAgentMemoryToJSON(streamAgentMemory: StreamAgentMemory): string;
export declare function streamAgentMemoryFromJSON(jsonString: string): SafeParseResult<StreamAgentMemory, SDKValidationError>;
/** @internal */
export declare const StreamAgentRequestBody$inboundSchema: z.ZodType<StreamAgentRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentRequestBody$Outbound = {
    task_id?: string | undefined;
    message: StreamAgentMessage$Outbound;
    variables?: {
        [k: string]: any;
    } | undefined;
    contact?: StreamAgentContact$Outbound | undefined;
    thread?: StreamAgentThread$Outbound | undefined;
    memory?: StreamAgentMemory$Outbound | undefined;
    metadata?: {
        [k: string]: any;
    } | undefined;
    stream_timeout_seconds?: number | undefined;
};
/** @internal */
export declare const StreamAgentRequestBody$outboundSchema: z.ZodType<StreamAgentRequestBody$Outbound, z.ZodTypeDef, StreamAgentRequestBody>;
export declare function streamAgentRequestBodyToJSON(streamAgentRequestBody: StreamAgentRequestBody): string;
export declare function streamAgentRequestBodyFromJSON(jsonString: string): SafeParseResult<StreamAgentRequestBody, SDKValidationError>;
/** @internal */
export declare const StreamAgentRequest$inboundSchema: z.ZodType<StreamAgentRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentRequest$Outbound = {
    key: string;
    RequestBody?: StreamAgentRequestBody$Outbound | undefined;
};
/** @internal */
export declare const StreamAgentRequest$outboundSchema: z.ZodType<StreamAgentRequest$Outbound, z.ZodTypeDef, StreamAgentRequest>;
export declare function streamAgentRequestToJSON(streamAgentRequest: StreamAgentRequest): string;
export declare function streamAgentRequestFromJSON(jsonString: string): SafeParseResult<StreamAgentRequest, SDKValidationError>;
/** @internal */
export declare const StreamAgentResponseBody$inboundSchema: z.ZodType<StreamAgentResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type StreamAgentResponseBody$Outbound = {
    data: string;
};
/** @internal */
export declare const StreamAgentResponseBody$outboundSchema: z.ZodType<StreamAgentResponseBody$Outbound, z.ZodTypeDef, StreamAgentResponseBody>;
export declare function streamAgentResponseBodyToJSON(streamAgentResponseBody: StreamAgentResponseBody): string;
export declare function streamAgentResponseBodyFromJSON(jsonString: string): SafeParseResult<StreamAgentResponseBody, SDKValidationError>;
//# sourceMappingURL=streamagent.d.ts.map