/**
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
/**
* The configuration of the revision history feature.
*
* ```ts
* ClassicEditor
*  	.create( {
*			revisionHistory: ... // Revision history feature configuration.
*		} )
*		.then( ... )
*		.catch( ... );
* ```
*
* See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
*/
export interface RevisionHistoryConfig {
	/**
	* The DOM element that contains the DOM structure for the editor.
	*
	* This element will be hidden when the user opens the revision history.
	*/
	editorContainer: HTMLElement;
	/**
	* DOM element which contains the DOM structure for revision history viewer.
	*
	* This element should be hidden (using CSS) when the editor is initialized.
	* This element will be shown when the user opens the revision history viewer.
	*/
	viewerContainer: HTMLElement;
	/**
	* The DOM element for the revision history viewer editor instance.
	*
	* This element will be used to initialize the revision history viewer editor instance and will be replaced by it. It should be empty.
	*/
	viewerEditorElement: HTMLElement;
	/**
	* The DOM element for the revision history viewer sidebar container.
	*
	* This element will be used as a container for the revision history viewer. The sidebar content will be inserted into it.
	*/
	viewerSidebarContainer: HTMLElement;
	/**
	* Tells the feature whether it should resume updating previously unsaved revision or should save the previously unsaved revision
	* and create a new revision for the changes that will be introduced after the editor is initialized.
	*
	* By default, the previously unsaved revision is resumed after the editor is initialized.
	*
	* Note that only unsaved revision can be resumed.
	*
	* Note that for real-time collaboration, the unsaved revision will be always resumed if the real-time editing session is still active.
	* In other words, even if this is set to `false`, the unsaved revision will be resumed, if the editing session did not end since the
	* editor was re-initialized. Keep in mind that [the editing session is active a long time]
	* (https://ckeditor.com/docs/cs/latest/guides/collaboration/data.html#temporary-and-permanent-data) after the last user
	* leaves the document.
	*/
	resumeUnsavedRevision: boolean;
	/**
	* Indicates if the names for revisions should be required. Defaults to `false`.
	*
	* If set to `true`, the user will have to provide a name when saving a new revision.
	* If they try to change the existing revision name to an empty string,
	* the revision name will be reverted to the previous value.
	*
	* It will still be possible to save a revision without a name using the feature API
	* and to load the existing nameless revisions.
	*/
	requireRevisionName?: boolean;
}
