// Core Configuration export declare interface SyntaxHighlighterConfig { verbose: boolean theme: string | Theme defaultLanguage?: string cache?: boolean plugins?: Plugin[] } // Token Types export declare interface Token { type: string content: string scopes: string[] line: number offset: number dimmed?: boolean blurred?: boolean highlighted?: boolean highlightColor?: string emphasized?: boolean link?: string } export declare interface TokenLine { tokens: Token[] line: number } // Fast mode tokens (minimal overhead) export declare interface FastToken { type: string content: string } export declare interface FastTokenLine { tokens: FastToken[] } // Grammar Types export declare interface Grammar { name: string scopeName: string patterns: GrammarPattern[] repository?: Record injections?: Record keywords?: KeywordTable } export declare interface KeywordTable { } export declare interface GrammarPattern { match?: string begin?: string end?: string name?: string contentName?: string captures?: Record beginCaptures?: Record endCaptures?: Record patterns?: GrammarPattern[] include?: string } export declare interface GrammarRule { name?: string match?: string begin?: string end?: string patterns?: GrammarPattern[] captures?: Record beginCaptures?: Record endCaptures?: Record contentName?: string } // Theme Types export declare interface Theme { name: string type: 'light' | 'dark' colors: ThemeColors tokenColors: TokenColor[] } export declare interface ThemeColors { 'editor.background': string 'editor.foreground': string 'editor.lineHighlightBackground'?: string 'editor.selectionBackground'?: string } export declare interface TokenColor { name?: string scope: string | string[] settings: TokenSettings } export declare interface TokenSettings { foreground?: string background?: string fontStyle?: string } // Language Support export declare interface Language { id: string name: string aliases?: string[] extensions?: string[] grammar: Grammar } // Renderer Types export declare interface RenderOptions { lineNumbers?: boolean highlightLines?: number[] theme?: string | Theme lang?: string inline?: boolean focusLines?: number[] dimLines?: number[] addedLines?: number[] removedLines?: number[] annotations?: LineAnnotation[] showCopyButton?: boolean lineTransformers?: LineTransformer[] tokensTransformers?: TokenTransformer[] } export declare interface RenderedCode { html: string css?: string tokens: TokenLine[] ansi?: string } export declare interface LineAnnotation { line: number text: string type?: 'info' | 'warning' | 'error' | 'success' position?: 'above' | 'below' | 'inline' } export declare interface LineTransformer { name: string transform: (line: string, lineNumber: number) => string } export declare interface TokenTransformer { name: string shouldTransform: (token: Token) => boolean transform: (token: Token) => Token } // Plugin System export declare interface Plugin { name: string languages?: Language[] themes?: Theme[] transformers?: Transformer[] grammars?: Grammar[] } export declare interface Transformer { name: string transform: (tokens: TokenLine[], options?: any) => TokenLine[] } // Highlighter Interface export declare interface Highlighter { highlight: (code: string, lang: string, options?: RenderOptions) => Promise loadLanguage: (language: Language) => Promise loadTheme: (theme: Theme) => Promise getSupportedLanguages: () => string[] getSupportedThemes: () => string[] } // Cache Types export declare interface CacheEntry { tokens: TokenLine[] timestamp: number hash: string } export type SyntaxHighlighterOptions = Partial