/**
 * @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 restricted-editing/restrictededitingconfig
 */
/**
 * The configuration of the restricted editing mode feature.
 * The option is used by the {@link module:restricted-editing/restrictededitingmode~RestrictedEditingMode} feature.
 *
 * ```ts
 * ClassicEditor
 *   .create( {
 *     restrictedEditing: {
 *       allowedCommands: [ 'bold', 'link', 'unlink' ],
 *       allowedAttributes: [ 'bold', 'linkHref' ]
 *     }
 *   } )
 *   .then( ... )
 *   .catch( ... );
 * ```
 *
 * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.
 */
export interface RestrictedEditingConfig {
    /**
     * The command names allowed in inline non-restricted areas of the content.
     *
     * Defines which feature commands should be enabled in the restricted editing mode. The commands used for typing and deleting text
     * (`'input'`, `'delete'` and `'deleteForward'`) are allowed by the feature inside non-restricted regions and do not need to be defined.
     *
     * **Note**: The restricted editing mode always allows to use the restricted mode navigation commands as well as `'undo'` and `'redo'`
     * commands.
     *
     * The default value is:
     *
     * ```ts
     * const restrictedEditingConfig = {
     *   allowedCommands: [ 'bold', 'italic', 'link', 'unlink' ]
     * };
     * ```
     *
     * Only inline content inserting or editing commands are allowed in this setting. Block content commands such as
     * `insertTable` or `enter` cannot be allowed via this setting, as they are not supported in the restricted editing mode.
     *
     * To make a command always enabled (also outside non-restricted areas) use the
     * {@link module:restricted-editing/restrictededitingmodeediting~RestrictedEditingModeEditing#enableCommand} method.
     */
    allowedCommands: Array<string>;
    /**
     * The text attribute names allowed when pasting content in inline non-restricted areas.
     *
     * The default value is:
     *
     * ```ts
     * const restrictedEditingConfig = {
     *   allowedAttributes: [ 'bold', 'italic', 'linkHref' ]
     * };
     * ```
     */
    allowedAttributes: Array<string>;
}
