import { Element, Properties, Text, Root } from 'hast'; import { BuiltinTheme, ThemeRegistrationRaw, ShikiTransformer, BundledHighlighterOptions, Highlighter } from 'shiki'; import { Transformer } from 'unified'; type LineElement = Omit & { properties: Properties & { className?: string[]; }; }; type CharsElement = Omit & { properties: Properties & { className?: string[]; }; children: Array; }; type Theme = BuiltinTheme | ThemeRegistrationRaw; interface Options { grid?: boolean; theme?: Theme | Record; keepBackground?: boolean; defaultLang?: string | { block?: string; inline?: string; }; tokensMap?: Record; transformers?: ShikiTransformer[]; filterMetaString?(str: string): string; getHighlighter?(options: BundledHighlighterOptions): Promise; onVisitLine?(element: LineElement): void; onVisitHighlightedLine?(element: LineElement, id: string | undefined): void; onVisitHighlightedChars?(element: CharsElement, id: string | undefined): void; onVisitTitle?(element: Element): void; onVisitCaption?(element: Element): void; } declare function rehypePrettyCode(options?: Options): void | Transformer; export { type CharsElement, type LineElement, type Options, type Theme, rehypePrettyCode as default };