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";
import { DataPart } from "./datapart.js";
import { ErrorPart } from "./errorpart.js";
import { FilePart } from "./filepart.js";
import { TextPart } from "./textpart.js";
import { ToolCallPart } from "./toolcallpart.js";
import { ToolResultPart } from "./toolresultpart.js";
export declare const ExtendedMessageKind: {
    readonly Message: "message";
};
export type ExtendedMessageKind = ClosedEnum<typeof ExtendedMessageKind>;
/**
 * Role of the message sender in the A2A protocol. Values: user (end user), agent (AI agent), tool (tool execution result), system (system instructions/prompts).
 */
export declare const ExtendedMessageRole: {
    readonly User: "user";
    readonly Agent: "agent";
    readonly Tool: "tool";
    readonly System: "system";
};
/**
 * Role of the message sender in the A2A protocol. Values: user (end user), agent (AI agent), tool (tool execution result), system (system instructions/prompts).
 */
export type ExtendedMessageRole = ClosedEnum<typeof ExtendedMessageRole>;
export type ExtendedMessageParts = TextPart | ErrorPart | DataPart | FilePart | ToolCallPart | ToolResultPart;
/**
 * Extended Agent-to-Agent protocol message with support for tool calls and tool results. Extends the base A2A message format with Orquesta-specific features.
 */
export type ExtendedMessage = {
    kind: ExtendedMessageKind;
    /**
     * Unique identifier for the message
     */
    messageId: string;
    /**
     * Role of the message sender in the A2A protocol. Values: user (end user), agent (AI agent), tool (tool execution result), system (system instructions/prompts).
     */
    role: ExtendedMessageRole;
    /**
     * Array of message parts (text, file, tool_call, tool_result)
     */
    parts: Array<TextPart | ErrorPart | DataPart | FilePart | ToolCallPart | ToolResultPart>;
    /**
     * Associated task ID if applicable
     */
    taskId?: string | undefined;
    /**
     * Correlation ID for execution tracking
     */
    contextId?: string | undefined;
    /**
     * Additional message metadata
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
};
/** @internal */
export declare const ExtendedMessageKind$inboundSchema: z.ZodNativeEnum<typeof ExtendedMessageKind>;
/** @internal */
export declare const ExtendedMessageRole$inboundSchema: z.ZodNativeEnum<typeof ExtendedMessageRole>;
/** @internal */
export declare const ExtendedMessageParts$inboundSchema: z.ZodType<ExtendedMessageParts, z.ZodTypeDef, unknown>;
export declare function extendedMessagePartsFromJSON(jsonString: string): SafeParseResult<ExtendedMessageParts, SDKValidationError>;
/** @internal */
export declare const ExtendedMessage$inboundSchema: z.ZodType<ExtendedMessage, z.ZodTypeDef, unknown>;
export declare function extendedMessageFromJSON(jsonString: string): SafeParseResult<ExtendedMessage, SDKValidationError>;
//# sourceMappingURL=extendedmessage.d.ts.map