import type { BreakpointBackend } from "./backend.js"; import type { ResponderProfile, ResponderType } from "./types.js"; import type { RoutedResponder, TaskRoutingHints } from "./responders/types.js"; export interface RoutableTaskDef { kind: string; title?: string; agent?: TaskRoutingHints & Record; breakpoint?: TaskRoutingHints & Record; metadata?: TaskRoutingHints & Record; } export interface TaskRouteContext { agentBackend?: BreakpointBackend; humanBackend?: BreakpointBackend; trackerBackend?: BreakpointBackend; responders?: ResponderProfile[]; } export type TaskRouteDecision = { responderType: "internal"; responder: RoutedResponder; route: "agent-core"; reason: string; } | { responderType: "human"; responder: RoutedResponder; route: "breakpoint"; backend?: BreakpointBackend; reason: string; } | { responderType: "agent"; responder: RoutedResponder; route: "adapters"; backend?: BreakpointBackend; reason: string; } | { responderType: "tracker"; responder?: RoutedResponder; route: "external-tracker"; backend?: BreakpointBackend; unavailable?: boolean; reason: string; }; export declare function routeTask(task: RoutableTaskDef, context?: TaskRouteContext): TaskRouteDecision; export declare class TaskRouter { private readonly context; constructor(context?: TaskRouteContext); routeTask(task: RoutableTaskDef, context?: TaskRouteContext): TaskRouteDecision; matchResponder(type: Exclude, hints?: TaskRoutingHints): RoutedResponder | undefined; } export declare function routingHints(task: RoutableTaskDef): TaskRoutingHints; export declare function isHostDelegableRoute(decision: TaskRouteDecision): boolean; //# sourceMappingURL=router.d.ts.map