import type { IncomingMessage, ServerResponse } from 'node:http'; import type { ContentBlockParam } from '@anthropic-ai/sdk/resources'; import type { CommandEntry } from '../cli/input/slash-match.js'; import { SECURITY_HEADERS } from './static-assets.js'; import type { WebElicitationBridge } from './elicitation-web.js'; import type { CreateSessionRequest, OwnedSessionInfo } from './session-owner.js'; export { SECURITY_HEADERS }; export interface RouteContext { owned: Set; bridge: WebElicitationBridge; submitPrompt: (sessionId: string, text: string) => Promise; submitSkillMessage?: (sessionId: string, message: ContentBlockParam[]) => Promise; getSessionCwd?: (sessionId: string) => string | undefined; getProviderSessionId?: (sessionId: string) => string | undefined; isBusy: (sessionId: string) => boolean; reserveTurn?: (sessionId: string) => void; releaseTurn?: (sessionId: string) => void; createSession?: (request: CreateSessionRequest) => Promise; interrupt?: (sessionId: string) => Promise; } export declare function sendJson(res: ServerResponse, status: number, body: unknown): void; export declare function requireValidSessionId(res: ServerResponse, id: string): boolean; export declare function handleListSessions(ctx: RouteContext, res: ServerResponse): Promise; type CommandUniverseLoader = () => Promise; export declare function resetCommandUniverseCache(): void; export declare function setCommandUniverseLoaderForTests(loader: CommandUniverseLoader): void; export declare function handleCommands(res: ServerResponse): Promise; export declare function handlePrompt(ctx: RouteContext, res: ServerResponse, sessionId: string, body: unknown): Promise; export declare function handleApprove(ctx: RouteContext, res: ServerResponse, sessionId: string, body: unknown): void; export declare function handleApproveByRequestId(ctx: RouteContext, res: ServerResponse, body: unknown): void; export declare function header(req: IncomingMessage, name: string): string | undefined; export declare function handleCreateSession(ctx: RouteContext, res: ServerResponse, body: unknown): Promise; export declare function handleInterrupt(ctx: RouteContext, res: ServerResponse, sessionId: string): Promise;