import type { Options } from '@diplodoc/transform';
import type { createLowlight } from 'lowlight' with { 'resolution-mode': 'import' };
import type { EditorState } from "../../../../../pm/state.js";
import { Plugin, PluginKey } from "../../../../../pm/state.js";
export type HighlightLangMap = Options['highlightLangs'];
export type Lowlight = ReturnType<typeof createLowlight>;
export type LLRoot = ReturnType<Lowlight['highlight']>;
type LangItem = {
    value: string;
    content: string;
};
type CodeBlockLangsState = {
    langItems: LangItem[];
    aliasMapping: Record<string, string>;
    lowlight: Lowlight | null;
    loaded: boolean;
};
export declare const codeBlockLangsPluginKey: PluginKey<CodeBlockLangsState>;
export declare function getCodeBlockLangsState(state: EditorState): CodeBlockLangsState;
export declare function codeBlockLangsPlugin(langsConfig: HighlightLangMap | undefined, logger: {
    log: (msg: string) => void;
}): Plugin<CodeBlockLangsState>;
export {};
