/*! * DOCX Engine v0.8.0 * Proprietary software. Copyright © 2026 Harbour Enterprises, Inc., d/b/a SuperDoc. * Use governed by the DOCX Engine Proprietary License Agreement. * No reverse engineering, deobfuscation, redistribution, * AI-assisted reconstruction, or competitive cloning. * License: https://docs.superdoc.dev/resources/docx-engine-license */ import { type DocumentRuntimeExportMode, type DocumentRuntimeAuthor, type DocumentRuntimeSessionInfo, type DocumentRuntimeSessionManager, type DocumentRuntimeErrorStage, type DocumentRuntimeWarning } from "./document-runtime.js"; export declare const DOCUMENT_HOST_PROTOCOL_VERSION = "1.0"; export declare const DOCUMENT_RPC_METHODS: readonly ["document.open", "document.invoke", "document.save", "document.close"]; export declare const DOCUMENT_HOST_FEATURES: readonly ["document.open", "document.invoke", "document.save", "document.close", "document.open.author", "document.open.contentProjectionTrackedChangeIdMode.compact", "document.save.preserveOutputIdentity", "host.shutdown"]; export type DocumentRpcMethod = (typeof DOCUMENT_RPC_METHODS)[number]; export type JsonRpcId = string | number | null; export interface DocumentOpenParams { readonly sessionId: string; readonly path: string; readonly author?: DocumentRuntimeAuthor; readonly contentProjectionTrackedChangeIdMode?: "compact"; } export interface DocumentInvokeParams { readonly sessionId: string; readonly operationId: string; readonly input?: unknown; readonly options?: unknown; } export interface DocumentSaveParams { readonly sessionId: string; readonly path: string; readonly overwrite?: boolean; readonly preserveOutputIdentity?: boolean; readonly mode?: DocumentRuntimeExportMode; } export interface DocumentCloseParams { readonly sessionId: string; readonly discard?: boolean; } export interface DocumentSaveResult { readonly sessionId: string; readonly saved: true; readonly mode: DocumentRuntimeExportMode; readonly output: { readonly path: string; readonly byteLength: number; }; readonly report: { readonly warnings: readonly DocumentRuntimeWarning[]; }; } export interface DocumentCloseResult { readonly sessionId: string; readonly closed: true; readonly discarded: boolean; } export interface DocumentRpcContract { readonly "document.open": { readonly params: DocumentOpenParams; readonly result: DocumentRuntimeSessionInfo; }; readonly "document.invoke": { readonly params: DocumentInvokeParams; readonly result: unknown; }; readonly "document.save": { readonly params: DocumentSaveParams; readonly result: DocumentSaveResult; }; readonly "document.close": { readonly params: DocumentCloseParams; readonly result: DocumentCloseResult; }; } export type DocumentRpcParams = DocumentRpcContract[Method]["params"]; export type DocumentRpcResult = DocumentRpcContract[Method]["result"]; interface DocumentHostServerOptions { readonly sessions?: DocumentRuntimeSessionManager; readonly write: (frame: string) => void | Promise; readonly now?: () => number; } export declare class DocumentRpcInvalidParamsError extends Error { readonly details?: unknown; constructor(message: string, details?: unknown); } export declare class DocumentHostError extends Error { readonly stage: DocumentRuntimeErrorStage; readonly byteLength?: number; readonly domainCode?: string; readonly details?: unknown; constructor(stage: DocumentRuntimeErrorStage, message: string, options?: { readonly byteLength?: number; readonly domainCode?: string; readonly details?: unknown; }); } export declare function isDocumentHostError(error: unknown): error is DocumentHostError; export declare function isDocumentRpcMethod(method: string): method is DocumentRpcMethod; export declare function invokeDocumentRpc(method: DocumentRpcMethod, rawParams: unknown, sessions: DocumentRuntimeSessionManager): Promise; export declare function documentRpcErrorData(error: unknown): { readonly domainCode: string; readonly stage?: string; readonly byteLength?: number; readonly details?: unknown; }; export interface DocumentHost { request(method: Method, params: DocumentRpcParams): Promise>; dispose(): Promise; } export declare function createDocumentHost(): DocumentHost; export declare class DocumentHostServer { private readonly host; private readonly write; private readonly now; private queue; private shutdownRequested; constructor(options: DocumentHostServerOptions); isShutdownRequested(): boolean; handleLine(line: string): Promise; dispose(): Promise; private handleRequest; } export {};