/**
 * @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 emoji/emojiconfig
 */
/**
 * The configuration of the Emoji feature.
 *
 * Read more about {@glink features/emoji#configuration configuring the Emoji feature}.
 *
 * ```ts
 *	ClassicEditor
 *		.create( editorElement, {
 *			emoji: ... // Emoji feature options.
 *		} )
 *		.then( ... )
 *		.catch( ... );
 * ```
 *
 * See {@link module:core/editor/editorconfig~EditorConfig all editor configuration options}.
 */
export interface EmojiConfig {
    /**
     * The maximum number of emojis displayed in the dropdown list.
     *
     * ```ts
     *	ClassicEditor
     *		.create( editorElement, {
     *			plugins: [ Emoji, ... ],
     *			emoji: {
     *				dropdownLimit: 4
     *			}
     *		} )
     *		.then( ... )
     *		.catch( ... );
     * ```
     *
     * @default 6
     */
    dropdownLimit?: number;
    /**
     * Initial skin tone for the emojis that support skin tones.
     *
     * ```ts
     *	ClassicEditor
     *		.create( editorElement, {
     *			plugins: [ Emoji, ... ],
     *			emoji: {
     *				skinTone: 'medium'
     *			}
     *		} )
     *		.then( ... )
     *		.catch( ... );
     * ```
     *
     * @default 'default'
     */
    skinTone?: EmojiSkinToneId;
    /**
     * The URL from which the emoji definitions should be loaded.
     *
     * ```ts
     *	ClassicEditor
     *		.create( editorElement, {
     *			plugins: [ Emoji, ... ],
     *			emoji: {
     *				definitionsUrl: ''
     *			}
     *		} )
     *		.then( ... )
     *		.catch( ... );
     * ```
     */
    definitionsUrl?: string;
    /**
     * The emoji database version.
     *
     * ```ts
     *	ClassicEditor
     *		.create( editorElement, {
     *			plugins: [ Emoji, ... ],
     *			emoji: {
     *				version: 15
     *			}
     *		} )
     *		.then( ... )
     *		.catch( ... );
     * ```
     *
     * If the {@link module:emoji/emojiconfig~EmojiConfig#definitionsUrl `emoji.definitionsUrl`}
     * option is provided, `version` is ignored as the defined URL takes precedence over the `version`.
     */
    version?: EmojiVersion;
    /**
     * The availability of the emoji depends on the operating system. Different systems will have different Unicode support.
     *
     * By default, the feature tries to filter out emojis not supported by your operating system.
     * This means that instead of previewing an emoji, the feature renders a black square.
     *
     * If you customize the {@glink features/emoji#emoji-availability-and-appearance emoji availability and appearance}, it is
     * highly recommended to disable the filtering mechanism because it uses a font built into your system
     * instead of the provided custom font.
     */
    useCustomFont?: boolean;
}
export type EmojiSkinToneId = 'default' | 'light' | 'medium-light' | 'medium' | 'medium-dark' | 'dark';
export type EmojiVersion = 15 | 16 | 17;
