/**
* @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
*/
/**
* @module word-count/wordcountconfig
*/
/**
* The configuration of the word count feature.
*
* ```ts
* ClassicEditor
* 	.create( {
* 		wordCount: ... // Word count feature configuration.
* 	} )
* 	.then( ... )
* 	.catch( ... );
* ```
*
* See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
*/
export interface WordCountConfig {
	/**
	* This option allows for hiding the word counter. The element obtained through
	* {@link module:word-count/wordcount~WordCount#wordCountContainer} will only preserve
	* the characters part. Word counter is displayed by default when this configuration option is not defined.
	*
	* ```ts
	* const wordCountConfig = {
	* 	displayWords: false
	* };
	* ```
	*
	* The configuration above will result in the following container:
	*
	* ```html
	* <div class="ck ck-word-count">
	* 	<div class="ck-word-count__characters">Characters: 28</div>
	* </div>
	* ```
	*/
	displayWords?: boolean;
	/**
	* This option allows for hiding the character counter. The element obtained through
	* {@link module:word-count/wordcount~WordCount#wordCountContainer} will only preserve
	* the words part. Character counter is displayed by default when this configuration option is not defined.
	*
	* ```ts
	* const wordCountConfig = {
	* 	displayCharacters: false
	* };
	* ```
	*
	* The configuration above will result in the following container:
	*
	* ```html
	* <div class="ck ck-word-count">
	* 	<div class="ck-word-count__words">Words: 4</div>
	* </div>
	* ```
	*/
	displayCharacters?: boolean;
	/**
	* This configuration takes a function that is executed whenever the word count plugin updates its values.
	* This function is called with one argument, which is an object with the `words` and `characters` keys containing
	* the number of detected words and characters in the document.
	*
	* ```ts
	* const wordCountConfig = {
	* 	onUpdate: function( stats ) {
	* 		doSthWithWordNumber( stats.words );
	* 		doSthWithCharacterNumber( stats.characters );
	* 	}
	* };
	* ```
	*/
	onUpdate?: (data: {
		words: number;
		characters: number;
	}) => void;
	/**
	* Allows for providing the HTML element that the
	* {@link module:word-count/wordcount~WordCount#wordCountContainer word count container} will be appended to automatically.
	*
	* ```ts
	* const wordCountConfig = {
	* 	container: document.getElementById( 'container-for-word-count' );
	* };
	* ```
	*/
	container?: HTMLElement;
}
