import VizWorkspaceElement from '../elements/VizWorkspaceElement.js';
export declare const observeItems: unique symbol;
export declare const mutationHandler: unique symbol;
export declare const mutationObserver: unique symbol;
export declare const processAddedNodes: unique symbol;
export declare const processAttributeChanged: unique symbol;
export declare const connectedValue: unique symbol;
export declare const queueDebouncer: unique symbol;
/**
 * A class that controls the `autoResize` property of the workspace.
 * When this property is set it keeps track of elements moving in the workspace and when they
 * are positioned outside the bounds of the current workspace it resizes it.
 *
 * Note, currently it only works when placing items to the right or below workspace.
 */
export declare class WorkspaceSizing {
    workspace: VizWorkspaceElement;
    [connectedValue]: boolean;
    /**
     * @returns True when the plug-in is listening for the input events.
     */
    get connected(): boolean;
    processElementsQueue: HTMLElement[];
    [mutationObserver]?: MutationObserver;
    constructor(workspace: VizWorkspaceElement);
    /**
     * Starts listening on user events
     */
    connect(): void;
    /**
     * Cleans up the listeners
     */
    disconnect(): void;
    /**
     * Processes a single element to check whether the workspace has to be resized
     * to account for the element's position.
     */
    processElement(node: HTMLElement): void;
    [queueDebouncer]?: any;
    /**
     * Adds an element to the processing queue. The queue runs after a next frame so the workspace is computed.
     */
    queueElement(node: HTMLElement): void;
    runQueue(): void;
    /**
     * Observe items change in the element's light DOM
     * @return The observer handler
     */
    [observeItems](): MutationObserver;
    /**
     * Processes mutations in the workspace and manages selection state.
     * @param mutationsList List of mutations.
     */
    [mutationHandler](mutationsList: MutationRecord[]): Promise<void>;
    /**
     * Processes added to the canvas elements.
     * @param nodes The list of added nodes
     */
    [processAddedNodes](nodes: NodeList): void;
    /**
     * Processes changed attribute on any element in the canvas
     * @param mutation The record associated with the change
     */
    [processAttributeChanged](mutation: MutationRecord): void;
}
//# sourceMappingURL=WorkspaceSizing.d.ts.map