import type { BreakpointBackend } from "../backend.js"; import type { InteractionKind } from "../types.js"; import type { RoutingConfig } from "../types.js"; /** * Options for configuring the interaction provider. */ export interface BreakpointMuxProviderOptions { /** The default backend to use when no routing rule matches. */ defaultBackend: BreakpointBackend; /** Additional backends available for routing. Keyed by backend name. */ backends?: Record; /** Routing configuration for domain/tag-based backend selection. */ routingConfig?: RoutingConfig; /** Default timeout in ms. */ defaultTimeoutMs?: number; } /** * Maps a babysitter ProcessContext.breakpoint() call to a tasks-adapter * backend call, handling routing, context assembly, and result mapping. */ export declare class BreakpointMuxInteractionProvider { private defaultBackend; private backends; private routingConfig?; private defaultTimeoutMs; constructor(options: BreakpointMuxProviderOptions); /** * Route a breakpoint through the appropriate backend. * * This method is called from the babysitter harness when a process * invokes `ctx.breakpoint(payload, options)`. * * @param payload - The breakpoint payload from the process context. * @param options - Breakpoint routing options from the process context. * @returns A BreakpointResult compatible with babysitter's ProcessContext. */ handleBreakpoint(payload: unknown, options: { label?: string; expert?: string | string[]; tags?: string[]; strategy?: string; breakpointId?: string; autoApproveAfterN?: number; presentAlwaysApprove?: boolean; interactionKind?: InteractionKind; domain?: string; timeoutMs?: number; }): Promise<{ approved: boolean; response?: string; feedback?: string; respondedBy?: string; }>; /** * Resolve the backend using routing configuration. */ private resolveBackend; /** * Check if a routing rule matches the given domain and tags. */ private matchesRule; /** * Build a BreakpointContext from the process payload and options. */ private buildContext; /** * Extract a text summary from an arbitrary payload. */ private extractTextFromPayload; } //# sourceMappingURL=interaction-provider.d.ts.map