import { IDesignItem } from '../../../item/IDesignItem.js';
import { IDesignerCanvas } from '../IDesignerCanvas.js';
import { IDesignerExtension } from './IDesignerExtension.js';
import { IExtensionManager } from './IExtensionManger.js';
import { AbstractExtensionBase } from "./AbstractExtensionBase.js";
import { OverlayLayer } from './OverlayLayer.js';
import { IPoint } from '../../../../interfaces/IPoint.js';
export type toolbarObject = SVGForeignObjectElement & {
    updatePosition: (position: IPoint) => void;
    getById: <T extends HTMLElement>(id: string) => T;
};
export declare abstract class AbstractExtension extends AbstractExtensionBase implements IDesignerExtension {
    protected extendedItem: IDesignItem;
    constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
    abstract extend(cache: Record<string | symbol, any>, event?: Event): any;
    abstract refresh(cache: Record<string | symbol, any>, event?: Event): any;
    abstract dispose(): any;
    remove(): void;
    createToolbar(template: HTMLTemplateElement, width: number, height: number, overlayLayer?: OverlayLayer): toolbarObject;
}
