/**
 * @license
 * Copyright 2021 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * @fileoverview A plugin that highlights the content on the workspace.
 */
import * as Blockly from 'blockly';
/**
 * A plugin that highlights the area where content exists on the workspace.
 */
export declare class ContentHighlight {
    protected workspace: Blockly.WorkspaceSvg;
    /**
     * The width of the highlight rectangle in workspace units.
     */
    private width;
    /**
     * The height of the highlight rectangle in workspace units.
     */
    private height;
    /**
     * The top offset of the highlight rectangle in pixels.
     */
    private top;
    /**
     * The left offset of the highlight rectangle in pixels.
     */
    private left;
    /**
     * The last scale value applied on the content highlight.
     */
    private lastScale;
    /**
     * The cached content metrics for the workspace in workspace units.
     */
    private cachedContentMetrics?;
    /**
     * The padding to use around the content area.
     */
    private padding;
    private svgGroup?;
    private rect?;
    private background?;
    private onChangeWrapper?;
    /**
     * Constructor for the content highlight plugin.
     * @param workspace The workspace that the plugin will be added to.
     */
    constructor(workspace: Blockly.WorkspaceSvg);
    /**
     * Initializes the plugin.
     * @param padding The padding to use for the content area highlight
     *    rectangle, in workspace units.
     */
    init(padding?: number): void;
    /**
     * Disposes of content highlight.
     * Unlinks from all DOM elements and remove all event listeners
     * to prevent memory leaks.
     */
    dispose(): void;
    /**
     * Handles events triggered on the workspace.
     * @param event The event.
     */
    private onChange;
    /**
     * Changes opacity of the highlight based on what kind of block drag event
     * is passed.
     * @param event The BlockDrag event.
     */
    private handleBlockDrag;
    /**
     * Applies the color fill for the highlight based on the current theme.
     */
    private applyColor;
    /**
     * Resizes the content highlight.
     * @param contentMetrics The content metrics for the workspace in workspace
     *     coordinates.
     */
    private resize;
    /**
     * Positions the highlight on the workspace based on the workspace metrics.
     * @param contentMetrics The content metrics for the workspace in workspace
     *     coordinates.
     * @param absoluteMetrics The absolute metrics for the workspace.
     */
    private position;
}
//# sourceMappingURL=index.d.ts.map