import { RenderType } from '../base/enum';
import { IRichTextEditor, IQuickToolbar } from '../base/interface';
import { IToolbarItems } from '../../common/interface';
import { ServiceLocator } from '../services/service-locator';
import { BaseQuickToolbar } from './base-quick-toolbar';
import { BaseToolbar } from './base-toolbar';
import { RichTextEditorModel } from '../base/rich-text-editor-model';
import { QuickToolbarType } from '../../common/types';
/**
 * `Quick toolbar` module is used to handle Quick toolbar actions.
 */
export declare class QuickToolbar implements IQuickToolbar {
    private offsetX;
    private offsetY;
    private deBouncer;
    private target;
    private locator;
    private parent;
    private contentRenderer;
    linkQTBar: BaseQuickToolbar;
    textQTBar: BaseQuickToolbar;
    imageQTBar: BaseQuickToolbar;
    audioQTBar: BaseQuickToolbar;
    videoQTBar: BaseQuickToolbar;
    tableQTBar: BaseQuickToolbar;
    inlineQTBar: BaseQuickToolbar;
    debounceTimeout: number;
    isDestroyed: boolean;
    private escapeKeyPressed;
    private showInlineQTBarTimeOut;
    constructor(parent?: IRichTextEditor, locator?: ServiceLocator);
    private formatItems;
    private getQTBarOptions;
    /**
     * createQTBar method
     *
     * @param {string} popupType - specifies the string value
     * @param {string} mode - specifies the string value.
     * @param {string} items - specifies the string.
     * @param {RenderType} type - specifies the render type.
     * @returns {BaseQuickToolbar} - specifies the quick toolbar
     * @hidden

     */
    createQTBar(popupType: QuickToolbarType, mode: string, items: (string | IToolbarItems)[], type: RenderType): BaseQuickToolbar;
    private initializeQuickToolbars;
    private onMouseDown;
    private keyUpQT;
    private renderQuickToolbars;
    private renderInlineQuickToolbar;
    /**
     * Method for showing the inline quick toolbar
     *
     * @param {number} x -specifies the value of x.
     * @param {number} y - specifies the y valu.
     * @param {HTMLElement} target - specifies the target element.
     * @param {KeyboardEvent | MouseEvent} originalEvent - specifies the original event.
     * @returns {void}
     * @hidden

     */
    showInlineQTBar(x: number, y: number, target: HTMLElement, originalEvent?: KeyboardEvent | MouseEvent): void;
    /**
     * Method for hidding the inline quick toolbar
     *
     * @returns {void}
     * @hidden

     */
    hideInlineQTBar(): void;
    /**
     * Method for hidding the quick toolbar
     *
     * @returns {void}
     * @hidden

     */
    hideQuickToolbars(): void;
    closeTooltip(): void;
    private deBounce;
    private mouseUpHandler;
    private hasResizeElement;
    private isEmbedVidElem;
    private keyDownHandler;
    private inlineQTBarMouseDownHandler;
    private keyUpHandler;
    private selectionChangeHandler;
    private onSelectionChange;
    /**
     * getInlineBaseToolbar method
     *
     * @returns {void}
     * @hidden

     */
    getInlineBaseToolbar(): BaseToolbar;
    /**
     * Destroys the ToolBar.
     *
     * @function destroy
     * @returns {void}
     * @hidden

     */
    destroy(): void;
    private wireInlineQTBarEvents;
    private unWireInlineQTBarEvents;
    private toolbarUpdated;
    /**
     * addEventListener
     *
     * @returns {void}
     * @hidden

     */
    addEventListener(): void;
    private preventQuickToolbarClose;
    private onKeyDown;
    private onIframeMouseDown;
    private updateCss;
    private setCssClass;
    private setRtl;
    /**
     * removeEventListener
     *
     * @returns {void}
     * @hidden

     */
    removeEventListener(): void;
    /**
     * Called internally if any of the property value changed.
     *
     * @param {RichTextEditorModel} e - specifies the element.
     * @returns {void}
     * @hidden

     */
    protected onPropertyChanged(e: {
        [key: string]: RichTextEditorModel;
    }): void;
    /**
     * For internal use only - Get the module name.
     *
     * @returns {void}
     * @hidden
     */
    private getModuleName;
    /**
     *
     * @returns {BaseQuickToolbar[]} - specifies the quick toolbar instance.
     * @hidden
     * @private
     */
    getQuickToolbarInstance(): BaseQuickToolbar[];
    onScroll(e: MouseEvent): void;
    /**
     * Refreshes the quick toolbar popups by hiding and then displaying them again
     * at a target element's location. This method iterates over all available quick
     * toolbars, checking their rendered state and visibility. If a toolbar is
     * currently visible, it is hidden and then shown again to refresh its position
     * based on the specified mouse event. Additionally, for text toolbars, any
     * previously stored status is restored after the refresh.
     *
     * @param {MouseEvent} e - The mouse event that triggers the refresh, used to
     *                         determine the new position for the toolbars.
     * @returns {void}
     */
    refreshQuickToolbarPopup(e?: MouseEvent): void;
    private onWindowResize;
    private refreshTextQTBar;
    private refreshImageQTbar;
    private refreshAudioQTbar;
    private refreshVideoQTbar;
    private refreshLinkQTbar;
    private refreshTableQTbar;
}
