/* eslint-disable @typescript-eslint/no-explicit-any */ import type { SymbolInfo } from '@/contracts/code-intelligence'; import type { Language } from 'web-tree-sitter'; export interface LanguageAdapter { readonly extensions: readonly string[]; readonly grammarName: string; symbols(node: any, source: string): SymbolInfo[]; } export interface ParsedFile { path: string; source: string; fingerprint: string; tree: any; symbols: SymbolInfo[]; signatures: string[]; } export type CodeIndexErrorKind = 'missing' | 'unreadable' | 'unsupported'; export class CodeIndexError extends Error { constructor(public readonly kind: CodeIndexErrorKind, message: string) { super(message); this.name = 'CodeIndexError'; } } export type LoadedGrammar = Language;