import type { Node } from 'prosemirror-model';
import type { Logger2 } from "../logger.js";
import { SafeEventEmitter } from "../utils/index.js";
export interface IMarkupManager {
    setMarkup(id: string, rawMarkup: string): void;
    setNode(id: string, node: Node): void;
    getMarkup(id: string): string | null;
    getNode(id: string): Node | null;
    reset(): void;
    on<K extends keyof Events>(event: K, listener: (value: Events[K]) => void): void;
}
interface Events {
    markupChanged: {
        id: string;
        rawMarkup: string;
    };
    nodeChanged: {
        id: string;
        node: Node;
    };
    reset: {};
}
export declare class MarkupManager extends SafeEventEmitter<Events> implements IMarkupManager {
    private _markups;
    private _nodes;
    private _namespace;
    private readonly logger;
    constructor(logger: Logger2.ILogger);
    /**
     * Set raw markup for a specific id
     */
    setMarkup(id: string, rawMarkup: string): void;
    /**
     * Set a node for a specific id
     */
    setNode(id: string, node: Node): void;
    /**
     * Get raw markup for a specific id
     */
    getMarkup(id: string): string | null;
    /**
     * Get a node for a specific id
     */
    getNode(id: string): Node | null;
    getNamespace(): string;
    /**
     * Reset the stored markups and nodes
     */
    reset(): void;
}
export {};
