import MarkdownIt, { type PresetName } from 'markdown-it';
import type { Schema } from 'prosemirror-model';
import type { Plugin } from 'prosemirror-state';
import { Logger2 } from "../logger.js";
import { ActionsManager } from "./ActionsManager.js";
import type { SchemaDynamicModifier } from "./SchemaDynamicModifier.js";
import type { MarkdownParserDynamicModifier } from "./markdown/MarkdownParser.js";
import type { MarkdownSerializerDynamicModifier } from "./markdown/MarkdownSerializerDynamicModifier.js";
import type { TransformFn } from "./markdown/ProseMirrorTransformer/index.js";
import type { ActionSpec } from "./types/actions.js";
import type { Extension, ExtensionDeps } from "./types/extension.js";
import type { MarkViewConstructor, NodeViewConstructor } from "./types/node-views.js";
type ExtensionsManagerParams = {
    logger?: Logger2.ILogger;
    extensions: Extension;
    options?: ExtensionsManagerOptions;
};
type ExtensionsManagerOptions = {
    mdOpts?: MarkdownIt.Options & {
        preset?: PresetName;
    };
    linkifyTlds?: string | string[];
    pmTransformers?: TransformFn[];
    dynamicModifiers?: {
        parser?: MarkdownParserDynamicModifier;
        serializer?: MarkdownSerializerDynamicModifier;
        schema?: SchemaDynamicModifier;
    };
};
export declare class ExtensionsManager {
    #private;
    static process(extensions: Extension, options: ExtensionsManagerOptions, logger?: Logger2.ILogger): {
        actions: ActionsManager;
        rawActions: Record<string, ActionSpec>;
        plugins: Plugin<any>[];
        nodeViews: Record<string, NodeViewConstructor>;
        markViews: Record<string, MarkViewConstructor>;
        schema: Schema;
        textParser: import("./index.js").Parser;
        markupParser: import("./index.js").Parser;
        serializer: import("./index.js").Serializer;
    };
    constructor({ extensions, options, logger }: ExtensionsManagerParams);
    build(): {
        actions: ActionsManager;
        rawActions: Record<string, ActionSpec>;
        plugins: Plugin<any>[];
        nodeViews: Record<string, NodeViewConstructor>;
        markViews: Record<string, MarkViewConstructor>;
        schema: Schema;
        textParser: import("./index.js").Parser;
        markupParser: import("./index.js").Parser;
        serializer: import("./index.js").Serializer;
    };
    buildDeps(): ExtensionDeps;
    private processExtensions;
    private processNode;
    private processMark;
    private createParser;
    private createDeps;
    private createDerived;
}
export {};
