import type { Connector, Employee, Engine, IncomingMessage, JinnConfig, Session, WorkflowAttemptCommand, WorkflowAttemptCompletionListener } from "../shared/types.js"; import { SessionQueue } from "./queue.js"; import { maybeRevertEngineOverride } from "./engine-override.js"; export { maybeRevertEngineOverride }; import type { GatewayEmit } from "../shared/gateway-events.js"; export interface RouteOptions { employee?: Employee; engine?: string; model?: string; effortLevel?: string; title?: string; } export declare function mergeTransportMeta(existing: Session["transportMeta"], incoming: IncomingMessage["transportMeta"]): Session["transportMeta"]; export declare class SessionManager { private readonly employeeProvider; private config; private engines; private gatewayBootId; private queue; private connectorProvider; private workflowAttemptCompletionListeners; private emittedWorkflowAttemptCompletions; private gatewayEmit; constructor(config: JinnConfig, engines: Map, gatewayBootId?: string, employeeProvider?: (id: string) => Employee | undefined); private recoverWorkflowAttemptDispatches; setConnectorProvider(provider: () => Map): void; setGatewayEmitter(next: GatewayEmit | undefined): void; /** Live connector ids — reflects reloads, with no cached copy to refresh. */ private connectorNames; setConfig(config: JinnConfig): void; getEngine(name: string): Engine | undefined; getEngines(): Map; getQueue(): SessionQueue; subscribeWorkflowAttemptCompletion(listener: WorkflowAttemptCompletionListener): () => void; runWorkflowAttempt(command: WorkflowAttemptCommand): Promise<{ sessionId: string; }>; private enqueueWorkflowAttempt; remindWorkflowAttempt(sessionId: string, text: string): Promise; workflowAttemptState(sessionId: string): { idle: boolean; runningChildren: number; } | null; stopWorkflowAttempt(input: { sessionId: string; reason: string; }): Promise; emitWorkflowAttemptTurnCompletion(sessionId: string): void; private emitWorkflowAttemptCompletion; route(msg: IncomingMessage, connector: Connector, opts?: RouteOptions): Promise<{ sessionId: string; } | void>; private runSession; handleCommand(msg: IncomingMessage, connector: Connector): Promise; resetSession(sessionKey: string): void; private handleCronCommand; } //# sourceMappingURL=manager.d.ts.map