#!/usr/bin/env node import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import { type ConnectRouterHostInput, type RouterHostConnection } from './router-client.js'; type ClaudeChannelServer = Pick & { oninitialized?: () => void; onclose?: () => void; }; type SessionPhase = 'starting' | 'registering' | 'registered' | 'closing' | 'closed'; type SignalName = 'SIGINT' | 'SIGTERM'; interface LifecycleBindings { addSignal(signal: SignalName, listener: () => void): void; removeSignal(signal: SignalName, listener: () => void): void; addInputClose(event: 'end' | 'close', listener: () => void): void; removeInputClose(event: 'end' | 'close', listener: () => void): void; } export interface ClaudeManagedSessionConfig { server_name: string; router_socket: string; auth_token: string; project?: string; principal_id: string; session_instance_id?: string; work_summary?: string; } export interface ClaudeManagedSessionDependencies { server?: ClaudeChannelServer; transport?: Transport; connect_router?: (input: ConnectRouterHostInput) => Promise; generate_session_id?: () => string; lifecycle?: LifecycleBindings; on_fatal_error?: (error: unknown, cause?: 'replacement_close') => void; on_superseded?: () => void; cwd?: () => string; env?: NodeJS.ProcessEnv; } export interface ClaudeManagedSession { readonly session_instance_id: string; readonly phase: SessionPhase; readonly registered: Promise; close(): Promise; } export declare function startClaudeManagedSession(config: ClaudeManagedSessionConfig, dependencies?: ClaudeManagedSessionDependencies): Promise; export declare function claudeHostFatalLine(error: unknown, cause?: 'replacement_close'): string; export {}; //# sourceMappingURL=claude.d.ts.map