import { AbstractMessageReader, AbstractMessageWriter, type DataCallback, type Disposable, type Message } from 'vscode-jsonrpc'; import { type JsonRpcMessage } from './lsp-protocol.js'; export type { Disposable }; export interface LanguageWorkerLike { postMessage(message: unknown): void; addEventListener(type: 'message' | 'error' | 'messageerror', listener: EventListener): void; removeEventListener(type: 'message' | 'error' | 'messageerror', listener: EventListener): void; terminate(): void; } /** Standard vscode-jsonrpc MessageReader over structured-clone worker messages. */ export declare class WorkerMessageReader extends AbstractMessageReader { private readonly worker; private callback; private listening; constructor(worker: LanguageWorkerLike); listen(callback: DataCallback): Disposable; dispose(): void; private readonly onMessage; private readonly onMessageError; private readonly onWorkerError; } /** Standard vscode-jsonrpc MessageWriter over structured-clone worker messages. */ export declare class WorkerMessageWriter extends AbstractMessageWriter { private readonly worker; private disposed; private errorCount; constructor(worker: LanguageWorkerLike); write(message: Message): Promise; end(): void; dispose(): void; } export interface WorkerLanguageClientOptions { requestTimeoutMs?: number; } /** * LSP 3.17 JSON-RPC client over a real vscode-jsonrpc MessageConnection. * Monaco providers adapt editor calls to this connection; transport framing, * request ids, cancellation, errors, and notifications are standard JSON-RPC. */ export declare class WorkerLanguageClient { private readonly worker; private readonly options; private readonly reader; private readonly writer; private readonly connection; private readonly transportErrorHandlers; private readonly persistentErrorHandlers; private readonly readerErrorDisposable; private disposed; private terminateTimer; constructor(worker: LanguageWorkerLike, options?: WorkerLanguageClientOptions); initialize(params: unknown): Promise; request(method: string, params?: unknown): Promise; notify(method: string, params?: unknown): Promise; onNotification(method: string, callback: (params: unknown) => void): Disposable; /** Observe worker/transport failures for editor fallback and telemetry. */ onError(callback: (error: Error) => void): Disposable; shutdown(): void; dispose(): void; } export declare function createDefaultRustLanguageWorker(): Worker; export declare function isWorkerLspMessage(value: unknown): value is JsonRpcMessage; //# sourceMappingURL=worker-transport.d.ts.map