import type { IPoint } from '../../../interfaces/IPoint.js';
import type { IPlacementService } from './IPlacementService.js';
import type { IDesignItem } from '../../item/IDesignItem.js';
import { IDesignerCanvas } from '../../widgets/designerView/IDesignerCanvas.js';
export declare class AbsolutePlacementService implements IPlacementService {
    serviceForContainer(container: IDesignItem, containerStyle: CSSStyleDeclaration, item?: IDesignItem): boolean;
    isEnterableContainer(container: IDesignItem): boolean;
    canEnter(container: IDesignItem, items: IDesignItem[]): boolean;
    canLeave(container: IDesignItem, items: IDesignItem[]): boolean;
    getElementOffset(container: IDesignItem, designItem?: IDesignItem): IPoint;
    private calculateTrack;
    placePoint(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): IPoint;
    startPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
    place(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
    moveElements(designItems: IDesignItem[], position: IPoint, absolute: boolean): void;
    enterContainer(container: IDesignItem, items: IDesignItem[], mode: 'normal' | 'drop'): void;
    leaveContainer(container: IDesignItem, items: IDesignItem[]): void;
    finishPlace(event: MouseEvent, designerCanvas: IDesignerCanvas, container: IDesignItem, startPoint: IPoint, offsetInControl: IPoint, newPoint: IPoint, items: IDesignItem[]): void;
}
