import type { ImageAttachmentRef, StoredImageAttachment } from '@deepseek-ai/dsh-attachment'; import { type SessionId as SessionIdType } from '@deepseek-ai/dsh-session'; import { type CallId as CallIdType, type VisionCallRecord } from './history.ts'; import { type GenerationId as GenerationIdType, type GenerationRecord } from './generation-history.ts'; import type { ModelRoute } from './config.ts'; import type { VisionSetupResult } from './vision-setup.ts'; import type { GenerationSetupResult } from './generation-setup.ts'; /** Minimal request fields used by the read-only routes. */ export interface HttpRequest { method?: string | undefined; url?: string | undefined; headers?: Record | undefined; [Symbol.asyncIterator]?: () => AsyncIterator; } /** Settings operations exposed through the plugin-owned Web routes. */ export interface SettingsController { describe(): unknown | Promise; updateRouting(input: { revision: number; routing: never; }): Promise; } /** Handlers for the Web settings page and configured-model catalog. */ export interface SettingsHandlers { settings(request: HttpRequest, response: HttpResponse): Promise; models(request: HttpRequest, response: HttpResponse): Promise; } /** Host workflow used by the Web image-capability setup controls. */ export interface VisionSetupController { test(route: ModelRoute): Promise; enable(route: ModelRoute): Promise; auto(route: ModelRoute): Promise; } /** POST handler for test, forced enable, and automatic image setup. */ export interface VisionSetupHandlers { setup(request: HttpRequest, response: HttpResponse): Promise; } /** Host operation for probing an independently configured Images API route. */ export interface GenerationSetupController { test(route: ModelRoute): Promise; } /** POST handler for one low-quality image generation probe. */ export interface GenerationSetupHandlers { test(request: HttpRequest, response: HttpResponse): Promise; } /** Live model catalog supplied by the harness LLM registry. */ export interface ModelCatalogReader { list(): Promise; } /** Minimal response methods shared with Node's ServerResponse. */ export interface HttpResponse { headersSent: boolean; writeHead(status: number, headers?: Record): void; end(data?: string | Uint8Array): void; } interface HistoryReader { list(sessionId: SessionIdType): Promise; get(sessionId: SessionIdType, id: CallIdType): Promise; } interface AttachmentReader { readImage(ref: ImageAttachmentRef): Promise; } /** Dependencies used by the session-scoped call-history routes. */ export interface HistoryHandlerDependencies { history: HistoryReader; attachments: AttachmentReader; } /** Read-only handlers registered by the host plugin. */ export interface HistoryHandlers { calls(request: HttpRequest, response: HttpResponse): Promise; image(request: HttpRequest, response: HttpResponse): Promise; } interface GenerationReader { list(sessionId: SessionIdType): Promise; get(sessionId: SessionIdType, id: GenerationIdType): Promise; } /** Dependencies for session-scoped image generation history routes. */ export interface GenerationHandlerDependencies { history: GenerationReader; attachments: AttachmentReader; } /** Read-only generation list and output-preview handlers. */ export interface GenerationHandlers { generations(request: HttpRequest, response: HttpResponse): Promise; image(request: HttpRequest, response: HttpResponse): Promise; } /** Build the write handler used by Vision Mix's image-model onboarding controls. */ export declare function createVisionSetupHandlers(controller: VisionSetupController): VisionSetupHandlers; /** Build the configuration-time image generation test handler. */ export declare function createGenerationSetupHandlers(controller: GenerationSetupController): GenerationSetupHandlers; /** Build same-origin JSON handlers over persistent routing and the live model registry. */ export declare function createSettingsHandlers(controller: SettingsController, catalog: ModelCatalogReader): SettingsHandlers; /** Build handlers whose call lookup authorizes every image preview. */ export declare function createHistoryHandlers(dependencies: HistoryHandlerDependencies): HistoryHandlers; /** Build handlers whose output-image lookup is fenced by both session and operation id. */ export declare function createGenerationHandlers(dependencies: GenerationHandlerDependencies): GenerationHandlers; export {}; //# sourceMappingURL=http.d.ts.map