/*!
 * Jodit Editor (https://xdsoft.net/jodit/)
 * Released under MIT see LICENSE.txt in the project root for license information.
 * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net
 */
/**
 * [[include:plugins/clean-html/README.md]]
 * @packageDocumentation
 * @module plugins/clean-html
 */
import type { IJodit } from "../../types/index";
import { Plugin } from "../../core/plugin/plugin";
import "./config";
export declare class cleanHtml extends Plugin {
    /** @override */
    buttons: Plugin['buttons'];
    /** @override */
    protected afterInit(jodit: IJodit): void;
    private get isEditMode();
    /**
     * Clean HTML code on every change
     */
    protected onChangeCleanHTML(): void;
    private currentSelectionNode;
    private walker;
    protected startWalker(): void;
    protected beforeCommand(command: string): void | false;
    /**
     * Event handler when manually assigning a value to the HTML editor.
     */
    protected onBeforeSetNativeEditorValue(data: {
        value: string;
    }): boolean;
    /**
     * Collapse a value that holds only a single empty block (e.g.
     * `<p><br></p>` left after deleting all content) to an empty string —
     * opt-in via `cleanHTML.collapseEmptyValueToEmptyString`. See #1149
     */
    protected onAfterGetValueFromEditor(data: {
        value: string;
    }): void;
    /**
     * Rewrite double-quoted font names inside `style` attributes with single
     * quotes. The DOM always serialises them as `&quot;…&quot;`, and back ends
     * that HTML-decode the value before storing it then produce
     * `style="font-family: "Open Sans", …"` — broken markup. Single quotes
     * survive that round trip. Names that already contain an apostrophe are
     * left alone.
     */
    /**
     * Drop a `<br>` that is the last node of a block (or of the value) and
     * follows other content — the caret placeholder browsers leave behind
     * after typing into an empty block. An empty block (`<p><br></p>`) and a
     * deliberate empty line (`text<br><br>`) are kept.
     */
    private __removeTrailingBr;
    private __singleQuotesInFontFamily;
    protected onSafeHTML(sandBox: HTMLElement): void;
    /** @override */
    protected beforeDestruct(): void;
}
