import { type AgentMcpAppHostRequest, type AgentMcpAppLoadRequest, type AgentMcpAppResource, type AgentResponder } from "@mono-agent/agent-contracts"; import type { RuntimeOptionsExtension } from "./runtime-option-extensions.js"; import { type ReplyPartBudget } from "./reply-part-budget.js"; import { type ReplyArtifactStorageBudget } from "./reply-artifacts.js"; export declare const DEFAULT_MCP_APP_AUDIT_STORAGE_MAX_BYTES: number; export interface McpAppServiceOptions { readonly artifactDir: string; readonly retentionDays?: number; readonly now?: () => Date; readonly replyPartBudget?: ReplyPartBudget; readonly storageBudget?: ReplyArtifactStorageBudget; readonly maxRetainedConnections?: number; readonly connectionIdleMs?: number; readonly bridgeRateLimit?: number; readonly bridgeRateWindowMs?: number; readonly auditMaxBytes?: number; readonly auditRetainedFiles?: number; /** Independent aggregate reserve for MCP App audit files inside the rich-reply ceiling. */ readonly auditStorageMaxBytes?: number; /** @internal deterministic cleanup/concurrency test seam. */ readonly stagingGraceMs?: number; /** @internal runs after staged files are complete and before directory rename. */ readonly beforePublicationCommit?: () => void | Promise; /** @internal deterministic audit I/O observation and failure-injection seam. */ readonly beforeAuditStorageOperation?: (operation: "append" | "lstat" | "readdir" | "remove" | "rename", path: string) => void | Promise; } export interface McpAppService { readonly createExtension: RuntimeOptionsExtension; wrapResponder(responder: AgentResponder): AgentResponder; load(request: AgentMcpAppLoadRequest): Promise; request(request: AgentMcpAppHostRequest): Promise; cleanupExpired(): Promise; dispose(): Promise; } /** Durable MCP Apps registry with live handles scoped to exact MCP connections. */ export declare function createMcpAppService(options: McpAppServiceOptions): McpAppService; //# sourceMappingURL=mcp-apps.d.ts.map