import type { IParser } from '@rcs-lang/core'; import type { ImportResolver } from '../import-resolver/index.js'; import type { WorkspaceIndex } from '../workspace-index/index.js'; import type { Position, TextDocument } from './types.js'; /** * Represents hover information */ export interface Hover { /** The formatted content to display */ contents: MarkupContent | string; /** The range that the hover applies to */ range?: { start: { line: number; character: number; }; end: { line: number; character: number; }; }; } /** * Markup content with language and value */ export interface MarkupContent { /** The markup kind (markdown or plaintext) */ kind: 'markdown' | 'plaintext'; /** The content value */ value: string; } /** * Represents a symbol range in the document */ export interface SymbolRange { start: { line: number; character: number; }; end: { line: number; character: number; }; } /** * Provides hover documentation for RCL symbols */ export declare class HoverProvider { private parser; private importResolver; private workspaceIndex; constructor(parser: IParser, importResolver: ImportResolver, workspaceIndex: WorkspaceIndex); /** * Provide hover information for a symbol at the given position */ provideHover(document: TextDocument, position: Position): Promise; /** * Get symbol at the given position */ private getSymbolAtPosition; /** * Get the range of the symbol at position */ private getSymbolRange; /** * Check if character is part of a word */ private isWordCharacter; /** * Get hover information for local symbols */ private getLocalHover; /** * Get hover information for imported symbols */ private getImportedHover; /** * Get basic hover information when no definition is found */ private getBasicHover; /** * Find symbol definition in AST */ private findSymbolDefinitionInAST; /** * Create formatted hover content for a definition */ private createHoverContent; /** * Create hover content for agent definitions */ private createAgentHover; /** * Create hover content for flow definitions */ private createFlowHover; /** * Create hover content for message definitions */ private createMessageHover; /** * Create hover content for property definitions */ private createPropertyHover; /** * Create generic hover content */ private createGenericHover; /** * Extract documentation comments from around a definition */ private extractDocumentation; /** * Get symbol type from AST node */ private getSymbolTypeFromNode; /** * Capitalize symbol type for display */ private capitalizeSymbolType; /** * Check if a node represents a definition */ private isDefinitionNode; /** * Extract name from a definition node */ private extractNodeName; /** * Get relative path between two files */ private getRelativePath; } //# sourceMappingURL=HoverProvider.d.ts.map