/** * Zoe Server — REST Endpoint Handlers * * Processes incoming HTTP requests and routes them to the appropriate * handler. All responses are JSON with proper Content-Type headers. */ import type { IncomingMessage, ServerResponse } from "http"; import type { ProviderType, SkillMetadata, GenerateTextResult } from "../../core/types.js"; import { ServerSessionManager } from "./session-store.js"; import { type SettingsHandlerContext } from "./settings-handlers.js"; export interface RestHandlerContext { version: string; startTime: number; sessionManager: ServerSessionManager; /** Generate text using the SDK */ generateText: (options: { message: string; model?: string; provider?: ProviderType; tools?: string[]; maxSteps?: number; skills?: string[]; }) => Promise; /** List available models grouped by provider */ listModels: () => Record; /** List available skill metadata */ listSkills: () => SkillMetadata[]; /** Settings handler context — required for settings/provider routes */ settingsHandlerContext?: SettingsHandlerContext; /** Gateway REST handler — delegated for all /v1/gateway/* routes */ gatewayHandler?: (req: IncomingMessage, res: ServerResponse, path: string, method: string) => Promise; } /** * Creates the main REST request handler. * Returns a function compatible with http.createServer(). */ export declare function createRestHandler(ctx: RestHandlerContext): (req: IncomingMessage, res: ServerResponse) => Promise;