import { Root } from 'hast'; import { RehypeShikiOptions } from '@shikijs/rehype'; import { Processor, Transformer } from 'unified'; import { ShikiTransformer } from 'shiki'; type CodeBlockIcon = { viewBox: string; fill: string; d: string; } | string; interface IconOptions { shortcuts?: Record; extend?: Record; } /** * Inject icons to `icon` property (as HTML) */ declare function transformerIcon(options?: IconOptions): ShikiTransformer; declare const rehypeCodeDefaultOptions: RehypeCodeOptions; type DistributiveOmit = T extends unknown ? Omit : never; type RehypeCodeOptions = DistributiveOmit & { /** * Load languages and themes on-demand. * @defaultValue true */ lazy?: boolean; /** * The regex engine to use. * * @defaultValue 'js' */ engine?: 'js' | 'oniguruma'; /** * Filter meta string before processing */ filterMetaString?: (metaString: string) => string; /** * Add icon to code blocks */ icon?: IconOptions | false; /** * Wrap code blocks in `` component when "tab" meta string presents * * @defaultValue true */ tab?: boolean; }; /** * Handle codeblocks */ declare function rehypeCode(this: Processor, _options?: Partial): Transformer; declare function transformerTab(): ShikiTransformer; export { type CodeBlockIcon, type RehypeCodeOptions, rehypeCode, rehypeCodeDefaultOptions, transformerIcon, transformerTab };