import type { AgentReplyPart, AgentReplyPartFailure } from "./index.js"; export type AgentReplyPartDeliveryType = AgentReplyPart["type"] | "unknown"; /** * Sanitized terminal disposition for a rich reply part on a destination that * cannot deliver it. Source ids, names, URLs, integrity values, payloads, and * producer error text are deliberately not representable in this shape. */ export interface AgentReplyPartDeliveryOutcome { /** Zero-based position in the responder's ordered rich-part list. */ readonly partIndex: number; readonly partType: AgentReplyPartDeliveryType; readonly status: "failed"; readonly code: AgentReplyPartFailure["code"]; readonly message: string; /** Number of source parts represented by an aggregate overflow outcome. */ readonly affectedPartCount?: number; } /** * Convert rich reply parts into bounded, destination-safe terminal failures. * * The first 19 outcomes remain one-to-one when an off-contract responder * exceeds the shared 20-part ceiling; the final outcome accounts for every * remaining source part as one explicit aggregate instead of dropping them. */ export declare function unsupportedReplyPartDeliveryOutcomes(parts: readonly AgentReplyPart[] | undefined): readonly AgentReplyPartDeliveryOutcome[] | undefined; /** * Revalidate an outcome list at a persistence or adapter boundary without * trusting its readonly TypeScript shape. The result is dense, capped at the * shared 20-record ceiling, and reconstructed only from fixed enums and fixed * messages; supplied messages, indices, and unknown fields are never copied. */ export declare function sanitizeReplyPartDeliveryOutcomes(value: unknown): readonly AgentReplyPartDeliveryOutcome[] | undefined; /** Strict validator for the additive machine wire and versioned durable copy. */ export declare function isAgentReplyPartDeliveryOutcomes(value: unknown): value is readonly AgentReplyPartDeliveryOutcome[]; //# sourceMappingURL=reply-part-outcomes.d.ts.map