import type { IncomingMessage, ServerResponse } from 'node:http'; export declare const ARKME_PLUGIN_PACKAGE_NAME = "@senguoyun/dsh-arkme"; export declare const DSH_CLIENT_HMR_PACKAGE_NAME = "@deepseek-ai/dsh-client-hmr"; export interface DshWebBootEntry { id: string; url: string; rev: string; inject?: string[]; immediately?: boolean; external?: string[]; } export interface DshWebBootBatch { phase: 'bootstrap' | 'application'; url: string; rev: string; entries: string[]; } export interface DshWebBootGraph { rev: string; entries: DshWebBootEntry[]; /** Present in the structured DSH boot protocol; legacy graphs omit it. */ batches?: DshWebBootBatch[]; } interface HarnessEmbedRouteOptions { modelClient?: DshWebBootEntry; trajectoryClient?: DshWebBootEntry; sidebarClient?: DshWebBootEntry; onboardingClient?: DshWebBootEntry; selectionClientRevision?: string; getGraph(): DshWebBootGraph; installedPackageNames(): readonly string[]; readRootHtml(request: IncomingMessage): Promise; sessionClient?: { revision: string; apiPath?: string; defaultWorkspacePath?: string; }; onError?(error: unknown): void; } /** Forward only the same-origin browser session needed by authenticated DSH roots. */ export declare function dshRootDocumentHeaders(request: IncomingMessage): Record; /** * Build the iframe-only DSH graph without any Arkme-managed extension clients. * Host halves stay process-owned and untouched; only this document's browser * boot graph is projected. */ export declare function projectHarnessBootGraph(graph: DshWebBootGraph, installedPackageNames: readonly string[], modelClient?: DshWebBootEntry, trajectoryClient?: DshWebBootEntry, sidebarClient?: DshWebBootEntry): DshWebBootGraph; /** Replace exactly the graph DSH injected into the current root document. */ export declare function replaceHarnessBootGraph(html: string, fullGraph: DshWebBootGraph, projectedGraph: DshWebBootGraph): string; export declare function createHarnessEmbedRouteHandler(options: HarnessEmbedRouteOptions): (request: IncomingMessage, response: ServerResponse) => Promise; export {}; //# sourceMappingURL=harness-embed-route.d.ts.map