import { IDesignItem } from '../../item/IDesignItem.js';
import { InstanceServiceContainer } from '../../services/InstanceServiceContainer.js';
import { ServiceContainer } from '../../services/ServiceContainer.js';
import { Snaplines } from './Snaplines.js';
import { IExtensionManager } from './extensions/IExtensionManger.js';
import { IUiCommandHandler } from '../../../commandHandling/IUiCommandHandler.js';
import { IPoint } from '../../../interfaces/IPoint.js';
import { OverlayLayerView } from './overlayLayerView.js';
import { IRect } from "../../../interfaces/IRect.js";
import { ISize } from "../../../interfaces/ISize.js";
import { ITool } from "./tools/ITool.js";
export interface IDesignerCanvas extends IUiCommandHandler, HTMLElement {
    readOnly: boolean;
    readonly serviceContainer: ServiceContainer;
    readonly instanceServiceContainer: InstanceServiceContainer;
    readonly containerBoundingRect: DOMRect;
    readonly outerRect: DOMRect;
    readonly rootDesignItem: IDesignItem;
    readonly overlayLayer: OverlayLayerView;
    readonly extensionManager: IExtensionManager;
    readonly clickOverlay: HTMLDivElement;
    readonly snapLines: Snaplines;
    readonly shadowRoot: ShadowRoot | null;
    readonly alignOnGrid: boolean;
    readonly alignOnSnap: boolean;
    readonly gridSize: number;
    raiseDesignItemsChanged: (designItems: IDesignItem[], action: 'resize' | 'place', operationFinished: boolean) => void;
    readonly iframes: HTMLIFrameElement[];
    zoomFactor: number;
    designerOffsetWidth: number;
    designerOffsetHeight: number;
    readonly designerPixelSize: {
        width: number;
        height: number;
    };
    readonly scaleFactor: number;
    canvasOffset: IPoint;
    readonly containerOffset: IPoint;
    canvas: HTMLElement;
    pauseAnimations: boolean;
    additionalStyles: CSSStyleSheet[];
    ignoreEvent(event: Event): any;
    initialize(serviceContainer: ServiceContainer): any;
    getNormalizedEventCoordinates(event: MouseEvent): IPoint;
    getViewportCoordinates(event: MouseEvent): IPoint;
    getNormalizedElementCoordinates(element: Element): IRect;
    getNormalizedElementCoordinatesAndRealSizes(element: Element): IRect & {
        realWidth: number;
        realHeight: number;
    };
    getNormalizedElementCoordinates(element: Element, ignoreScalefactor?: boolean): IRect;
    captureActiveTool(tool: ITool): any;
    releaseActiveTool(): any;
    readonly activeTool: ITool;
    getDesignSurfaceDimensions(): ISize;
    getNormalizedOffsetInElement(event: MouseEvent, element: Element): IPoint;
    getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): any;
    elementsFromPoint(x: number, y: number): Element[];
    showHoverExtension(element: Element, event: Event): any;
    setDesignItems(designItems: IDesignItem[]): any;
    _internalSetDesignItems(designItems: IDesignItem[]): any;
    getDesignItemById(id: string): IDesignItem;
    querySelectorDesignItem(selector: string): IDesignItem;
    querySelectorAllDesignItems(selector: string): IDesignItem[];
    zoomTowardsPoint(point: IPoint, scalechange: number): void;
    zoomPoint(canvasPoint: IPoint, newZoom: number): void;
    zoomOntoRectangle(startPoint: IPoint, endPoint: IPoint): void;
    showDesignItemContextMenu(designItem: IDesignItem, event: MouseEvent): void;
    lazyTriggerReparseDocumentStylesheets(): any;
}
