import { type AgentReplyPart } from "@mono-agent/agent-contracts"; export type ReplyPartBudgetClaim = "accepted" | "duplicate" | "limit"; export interface ReplyPartBudget { claim(runId: string, stableIdentity: string): ReplyPartBudgetClaim; unclaim(runId: string, stableIdentity: string): void; release(runId: string): void; } /** * One request-scoped count/deduplication budget shared by every rich-part * producer composed by agent-app. Part payloads remain owned by their producer; * this object carries only stable identities and a bounded count. */ export declare function createReplyPartBudget(maxParts?: number): ReplyPartBudget; /** Preserve first-seen producer order while removing retry duplicates. */ export declare function mergeReplyParts(existing: readonly AgentReplyPart[] | undefined, produced: readonly AgentReplyPart[]): readonly AgentReplyPart[]; //# sourceMappingURL=reply-part-budget.d.ts.map