import type { LanguageInput } from 'shiki/core'; export type ShikiLanguageConfig = { id: string; loader: LanguageInput; aliases?: string[]; /** * Load this grammar on demand instead of at highlighter creation. * * Lazy grammars are excluded from the initial `createHighlighterCore` call and * are loaded by `CodeBlock` (via `loadRegisteredShikiLanguage`) the first time a * fence with this language shows up — one chunk per language, nothing is fetched * for languages that never appear. Pair it with a dynamic-import loader: * `{ id: 'cpp', lazy: true, loader: () => import('@shikijs/langs/cpp') }`. */ lazy?: boolean; }; export declare function registerShikiLanguage(config: ShikiLanguageConfig): void; export declare function registerShikiLanguages(configs: ShikiLanguageConfig[]): void; export declare function unregisterShikiLanguage(id: string): void; export declare function excludeShikiLanguages(ids: string[]): void; export declare function resolveLanguageInputs(ids: string[]): { inputs: LanguageInput[]; missing: string[]; resolved: string[]; }; export declare function getRegisteredLanguageIds(): string[]; export declare function hasRegisteredLanguages(): boolean; /** `true` when the language (canonical id or alias) was registered with `lazy: true`. */ export declare function isLazyShikiLanguage(id: string): boolean; export declare function clearRegisteredShikiLanguages(): void;