import type { EuiMarkdownEditorUiPlugin, EuiMarkdownFormatting } from './markdown-types';
/**
 * Class for applying styles to a text editor. Accepts the HTML ID for the textarea
 * desired, and exposes the `.do(ACTION)` method for manipulating the text.
 *
 * @class MarkdownActions
 * @param {string} editorID
 */
declare class MarkdownActions {
    styles: Record<string, EuiMarkdownEditorUiPlugin>;
    editorID: string;
    constructor(editorID: string, uiPlugins: EuiMarkdownEditorUiPlugin[]);
    /**
     * .do() accepts a string and retrieves the correlating style object (defined in the
     * constructor). It passes this to applyStyle() that does the text manipulation.
     *
     * @param {string} pluginName
     * @memberof MarkdownActions
     */
    do(pluginName: string): true | ({
        name: string;
        button: {
            label: string;
            iconType: import("../../components/eui-icon").IconType;
        };
        helpText?: string | import("@glimmer/component").default<unknown> | undefined;
    } & import("./markdown-types").PluginWithDelayedFormatting<any>) | undefined;
    /**
     * Sets the default styling object and then superimposes the changes to make on top of
     * it. Calls the `styleSelectedText` helper function that does the heavy lifting.
     * Adapted from https://github.com/github/markdown-toolbar-element/blob/main/src/index.ts
     *
     * @param {object} incomingStyle
     * @memberof MarkdownActions
     */
    applyStyle(incomingStyle: EuiMarkdownFormatting): void;
}
interface SelectionRange {
    text: string;
    selectionStart?: number;
    selectionEnd?: number;
}
export declare function insertText(textarea: HTMLTextAreaElement, { text, selectionStart, selectionEnd }: SelectionRange): void;
export default MarkdownActions;
//# sourceMappingURL=markdown-actions.d.ts.map