/**
* @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 markdown-gfm/pastefrommarkdownexperimental
*/
import { Plugin, type Editor } from '@ckeditor/ckeditor5-core';
import { ClipboardPipeline } from '@ckeditor/ckeditor5-clipboard';
/**
* The GitHub Flavored Markdown (GFM) paste plugin.
*
* For a detailed overview, check the {@glink features/pasting/paste-markdown Paste Markdown feature} guide.
*/
export declare class PasteFromMarkdownExperimental extends Plugin {
/**
* @internal
*/
private _gfmDataProcessor;
/**
* @inheritDoc
*/
constructor(editor: Editor);
/**
* @inheritDoc
*/
static get pluginName(): "PasteFromMarkdownExperimental";
/**
* @inheritDoc
*/
static get isOfficialPlugin(): true;
/**
* @inheritDoc
*/
static get requires(): readonly [typeof ClipboardPipeline];
/**
* @inheritDoc
*/
init(): void;
/**
* Determines if the code copied from a website in the `text/html` type can be parsed as Markdown.
* It removes any OS-specific HTML tags, for example, on macOS and on Windows.
* Then removes a single wrapper HTML tag or wrappers for sibling tags, and if there are no more tags left,
* returns the remaining text. Returns null if there are any remaining HTML tags detected.
*
* @param htmlString Clipboard content in the `text/html` type format.
*/
private _parseMarkdownFromHtml;
/**
* Removes OS-specific tags.
*
* @param htmlString Clipboard content in the `text/html` type format.
*/
private _removeOsSpecificTags;
/**
* If the input HTML string contains any first-level formatting tags
* like , , or , we should not treat it as Markdown.
*
* @param htmlString Clipboard content.
*/
private _containsOnlyAllowedFirstLevelTags;
/**
* Removes multiple HTML wrapper tags from a list of sibling HTML tags.
*
* @param htmlString Clipboard content without any OS-specific tags.
*/
private _removeFirstLevelWrapperTagsAndBrs;
/**
* Determines if a string contains any HTML tags.
*/
private _containsAnyRemainingHtmlTags;
/**
* Replaces the reserved HTML entities with the actual characters.
*
* @param htmlString Clipboard content without any tags.
*/
private _replaceHtmlReservedEntitiesWithCharacters;
}