import { StyleModel } from '../../models/index';
import { NodeSelection } from '../../selection/selection';
import { ExecCommandOptions } from '../../common/interface';
import { BlockManager } from '../base/block-manager';
export declare class FormattingAction {
    private parent;
    /** @hidden */
    nodeSelection: NodeSelection;
    /** @hidden */
    lastRemovedFormat: keyof StyleModel;
    /** @hidden */
    activeInlineFormats: Set<keyof StyleModel>;
    private formatCache;
    private ignoredContentTypes;
    private ignoredBlockTypes;
    constructor(manager?: BlockManager);
    private addEventListeners;
    private removeEventListeners;
    /**
     * Executes the formatting command based on the provided options.
     *
     * @param {ExecCommandOptions} options - The options for the formatting command.
     * @returns {void}
     * @hidden
     */
    execCommand(options: ExecCommandOptions): void;
    private performOperation;
    private applyFormattingToBlocks;
    private processFormattingActions;
    private processContentModel;
    private processSurroundSegment;
    private processSelectedSegment;
    private toggleFormat;
    /**
     * Handles formatting action on user typing.
     *
     * @returns {boolean} - Returns true if formatting was applied, false otherwise.
     * @hidden
     */
    handleTypingWithActiveFormats(): boolean;
    private removeFormatToLastCharacter;
    /**
     * Toggles the active inline formats when formatting.
     * Triggers when user presses keys such as Ctrl+B, Ctrl+I, Ctrl+U and Ctrl+Shift+X.
     *
     * @param {string} command - The formatting command to toggle.
     * @returns {void}
     * @hidden
     */
    toggleActiveFormats(command: keyof StyleModel): void;
    private getBlockSpecificRange;
    private isContentFullyInsideSelection;
    private calculateLocalOffsets;
    private getFormatIntent;
    private getSelectedContents;
    private areAllActiveFormatsApplied;
    private isNodeFormattedWith;
    private doesElementHaveFormat;
    private removeRootContentId;
    private resolveBlocksToFormat;
    private expandSelectedBlocks;
    private getSelectedCellBlocksFromTable;
    destroy(): void;
}
