import { BlockModel } from '../../models/index';
import { BlockManager } from '../base/block-manager';
/**
 * Manages state and data in the BlockEditor
 */
export declare class StateManager {
    private parent;
    /**
     * Creates a new StateManager instance
     *
     * @param {BlockManager} parent The parent BlockManager instance
     */
    constructor(parent: BlockManager);
    /**
     * Updates content in the block model
     *
     * @param {Node} contentElement The content element
     * @param {BlockModel} blockModel The block model to update
     * @returns {void}
     * @hidden
     */
    updateContentModelBasedOnDOM(contentElement: Node, blockModel: BlockModel): void;
    /**
     * Updates the internal content models based on user typing
     *
     * @param {HTMLElement} blockElement - The block element being updated
     * @param {Event} updateEvent - The original input event that triggered the update (optional)
     * @returns {void}
     * @hidden
     */
    updateContentOnUserTyping(blockElement: HTMLElement, updateEvent?: Event): void;
    private getContentElementForUpdate;
    /**
     * Cleans up stale content models from a block
     *
     * @param {BlockModel} block The block model to clean
     * @param {HTMLElement} contentElement The content element to check against
     * @returns {void}
     * @hidden
     */
    cleanUpStaleContents(block: BlockModel, contentElement: HTMLElement): void;
    /**
     * Populates blocks with unique IDs if they don't have them
     *
     * @param {BlockModel[]} blocks Array of block models
     * @param {string} parentBlockId Optional parent block ID
     * @returns {void}
     * @hidden
     */
    populateUniqueIds(blocks: BlockModel[], parentBlockId?: string): void;
    /**
     * Updates the property changes to the model
     *
     * @returns {void}
     * @hidden
     */
    updateManagerBlocks(): void;
}
