export type JsonRpcId = number | string; export interface JsonRpcRequest { jsonrpc: '2.0'; id: JsonRpcId; method: string; params?: unknown; } export interface JsonRpcNotification { jsonrpc: '2.0'; method: string; params?: unknown; } export interface JsonRpcResponse { jsonrpc: '2.0'; id: JsonRpcId | null; result?: unknown; error?: { code: number; message: string; data?: unknown; }; } export type JsonRpcMessage = JsonRpcRequest | JsonRpcNotification | JsonRpcResponse; export interface Position { line: number; character: number; } export interface Range { start: Position; end: Position; } export interface Location { uri: string; range: Range; } export interface TextDocumentIdentifier { uri: string; } export interface VersionedTextDocumentIdentifier extends TextDocumentIdentifier { version: number; } export interface TextDocumentItem extends VersionedTextDocumentIdentifier { languageId: string; text: string; } export interface TextDocumentContentChangeEvent { range?: Range; text: string; } export interface Diagnostic { range: Range; severity: 1 | 2 | 3 | 4; source: 'crowdy-rust'; code: string; message: string; } export interface CompletionItem { label: string; kind: number; detail?: string; documentation?: string; insertText?: string; sortText?: string; } export interface Hover { contents: { kind: 'markdown'; value: string; }; range?: Range; } export interface DocumentSymbol { name: string; detail?: string; kind: number; range: Range; selectionRange: Range; } export declare const JSON_RPC_ERRORS: { readonly parseError: -32700; readonly invalidRequest: -32600; readonly methodNotFound: -32601; readonly invalidParams: -32602; readonly internalError: -32603; readonly requestCancelled: -32800; readonly contentModified: -32801; }; export declare function isRecord(value: unknown): value is Record; export declare function decodeJsonRpcMessage(value: unknown): { ok: true; message: JsonRpcMessage; } | { ok: false; code: number; message: string; id: JsonRpcId | null; }; //# sourceMappingURL=lsp-protocol.d.ts.map