import { type Highlighter, type BundledLanguage, type BundledTheme } from "shiki";
import type { Node as ProsemirrorNode } from "@tiptap/pm/model";
type HighlighterOptions = {
    themes: (BundledTheme | null | undefined)[];
    languages: (BundledLanguage | null | undefined)[];
};
export declare function resetHighlighter(): void;
export declare function getShiki(): Highlighter | undefined;
/**
 * Load the highlighter. Makes sure the highlighter is only loaded once.
 */
export declare function loadHighlighter(opts: HighlighterOptions): Promise<void> | undefined;
/**
 * Loads a theme if it's valid and not yet loaded.
 * @returns true or false depending on if it got loaded.
 */
export declare function loadTheme(theme: BundledTheme): Promise<boolean>;
/**
 * Loads a language if it's valid and not yet loaded
 * @returns true or false depending on if it got loaded.
 */
export declare function loadLanguage(language: BundledLanguage): Promise<boolean>;
/**
 * Initializes the highlighter based on the prosemirror document,
 * with the themes and languages in the document.
 */
export declare function initHighlighter({ doc, name, defaultTheme, defaultLanguage, }: {
    doc: ProsemirrorNode;
    name: string;
    defaultLanguage: BundledLanguage | null | undefined;
    defaultTheme: BundledTheme;
}): Promise<void>;
export {};
