import type { RdfNativeSparqlQueryOptions, RdfNativeSparqlResult } from './types'; export type LocalQleverRuntimeErrorCode = 'qlever_runtime_unavailable' | 'qlever_runtime_protocol_error' | 'qlever_runtime_closed' | 'qlever_request_timeout' | 'qlever_request_aborted' | 'qlever_remote_error'; export declare class LocalQleverRuntimeError extends Error { readonly code: LocalQleverRuntimeErrorCode | string; readonly cause?: unknown; constructor(code: LocalQleverRuntimeErrorCode | string, message: string, cause?: unknown); } export interface LocalQleverNativeSparqlClientOptions { command?: string; args?: string[]; cwd?: string; env?: Record; expectedNativeSparqlAbiVersion?: number; expectedPhysicalBackendAbiVersion?: number; startupTimeoutMs?: number; requestTimeoutMs?: number; maxStderrBytes?: number; } export declare function resolveLocalQleverRuntimeCommand(env?: NodeJS.ProcessEnv): string; export declare function requiresWindowsCommandShell(command: string, platform?: NodeJS.Platform): boolean; /** * Persistent JSONL transport for the packaged Local QLever runtime. * * The runtime owns QLever and the SQLite physical provider. This client owns * only process lifecycle, request correlation, cancellation, and native result * envelope validation. It never parses or evaluates SPARQL. */ export declare class LocalQleverNativeSparqlClient { private readonly options; private child?; private reader?; private startup?; private startPromise?; private readonly pending; private nextRequestId; private stderrTail; private ready; private closed; private failedProcessCleanup?; constructor(options?: LocalQleverNativeSparqlClientOptions); start(): Promise; query(sparql: string, options: RdfNativeSparqlQueryOptions): Promise; close(): Promise; private waitForStart; private handleLine; private failProcess; private awaitFailedProcessCleanup; private cleanupPending; private writeMessage; private cancelRequest; private appendStderr; private runtimeUnavailable; private startupTimeoutMs; private requestTimeoutMs; }