/**
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
/**
* @module core/editor/utils/elementapimixin
*/
import { type Constructor, type Mixed } from '@ckeditor/ckeditor5-utils';
import type Editor from '../editor.js';
/**
* Implementation of the {@link module:core/editor/utils/elementapimixin~ElementApi}.
*/
export default function ElementApiMixin>(base: Base): Mixed;
/**
* Interface describing an editor that replaced a DOM element (was "initialized on an element").
*
* Such an editor should provide a method to
* {@link module:core/editor/utils/elementapimixin~ElementApi#updateSourceElement update the replaced element with the current data}.
*/
export interface ElementApi {
/**
* The element on which the editor has been initialized.
*
* @readonly
*/
sourceElement: HTMLElement | undefined;
/**
* Updates the {@link #sourceElement editor source element}'s content with the data if the
* {@link module:core/editor/editorconfig~EditorConfig#updateSourceElementOnDestroy `updateSourceElementOnDestroy`}
* configuration option is set to `true`.
*
* @param data Data that the {@link #sourceElement editor source element} should be updated with.
*/
updateSourceElement(data?: string): void;
}