import { IDesignItem } from '../../../item/IDesignItem.js';
import { IDesignerCanvas } from '../IDesignerCanvas.js';
import { ExtensionType } from './ExtensionType.js';
import { IExtensionManager } from './IExtensionManger.js';
import { IDesignerExtension } from './IDesignerExtension.js';
import { IDesignerExtensionProvider } from './IDesignerExtensionProvider.js';
export declare class ExtensionManager implements IExtensionManager {
    designerCanvas: IDesignerCanvas;
    designItemsWithExtentions: Set<IDesignItem>;
    _timeout: ReturnType<typeof setTimeout>;
    _appliedDesignerExtensions: WeakMap<IDesignItem, Map<ExtensionType, IDesignerExtension[]>>;
    _shouldAppliedDesignerExtensions: WeakMap<IDesignItem, Map<ExtensionType, IDesignerExtensionProvider[]>>;
    _lastApplyEventPerType: WeakMap<IDesignItem, Map<ExtensionType, Event>>;
    _lastPrimarySelectionRefreshItem: WeakRef<IDesignItem>;
    constructor(designerCanvas: IDesignerCanvas);
    connected(): void;
    disconnected(): void;
    private refreshAllExtensionsTimeout;
    private ensurePermanentRootExtensionsApplied;
    private _contentChanged;
    private _selectedElementsChanged;
    private _selectedElementsRefresh;
    applyExtension(designItem: IDesignItem, extensionType: ExtensionType, event?: Event, recursive?: boolean): IDesignerExtension[];
    applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, event?: Event, recursive?: boolean): void;
    applyExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension, extensionType?: ExtensionType): void;
    removeExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension): void;
    removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): void;
    removeExtensions(designItems: IDesignItem[], recursive: boolean, extensionType?: ExtensionType): void;
    refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): void;
    refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event, ignoredExtension?: IDesignerExtension, timeout?: number): void;
    refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension, event?: Event): void;
    refreshAllAppliedExtentions(event?: Event): void;
    reapplyAllAppliedExtentions(filterDesignItems?: IDesignItem[], enabledExtensionTypes?: ExtensionType[]): void;
    private static getAllChildElements;
}
