/*!
 * 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/source/README.md]]
 * @packageDocumentation
 * @module plugins/source
 */
import type { IJodit, ISourceEditor } from "../../types/index";
import { Plugin } from "../../core/plugin/index";
import "./config";
/**
 * Plug-in change simple textarea on CodeMirror editor in Source code mode
 */
export declare class source extends Plugin {
    /** @override */
    buttons: Plugin['buttons'];
    sourceEditor?: ISourceEditor;
    private mirrorContainer;
    private __lock;
    private __oldMirrorValue;
    /**
     * What the source view was last filled with from WYSIWYG, read back from
     * the editor; while the view still holds it, nothing has been typed there
     */
    private __filledValue;
    private tempMarkerStart;
    private tempMarkerStartReg;
    private tempMarkerEnd;
    private tempMarkerEndReg;
    protected onInsertHTML(html: string): void | false;
    /**
     * Update source editor from WYSIWYG area
     */
    private fromWYSIWYG;
    /**
     * Update WYSIWYG area from source editor
     */
    private toWYSIWYG;
    private getNormalPosition;
    private clnInv;
    protected onSelectAll(command: string): void | false;
    private getSelectionStart;
    private getSelectionEnd;
    private getMirrorValue;
    private setMirrorValue;
    private setFocusToMirror;
    protected saveSelection(): void;
    protected removeSelection(): void;
    private setMirrorSelectionRange;
    private onReadonlyReact;
    /** @override */
    afterInit(editor: IJodit): void;
    private syncValueFromWYSIWYG;
    private initSourceEditor;
    /**
     * Replaces the source editor (the textarea shown while ACE loads) with
     * the one that just became ready, carrying its text, selection and focus
     * over. Filling the new editor from WYSIWYG instead would drop what was
     * typed since the last, debounced, sync and normalise half-typed markup.
     */
    private takeOver;
    /**
     * The beautifier arrived after the source view was opened: format the
     * view if nothing has been typed into it, otherwise leave the typing alone
     */
    private beautifyUntouched;
    /** @override */
    beforeDestruct(): void;
}
