import { ItemHandler } from "./ItemHandler";
import { ShapeItemHandler } from "./ShapeItemHandler";
import { ContentItemHandler } from "./ContentItemHandler";
import { RectangleF, RotatedRectangleF } from "@aurigma/design-atoms-model/Math";
import { IPermissions, Permission } from "../Permission";
import { Color, RgbColor } from "@aurigma/design-atoms-model/Colors";
import { EventWithSenderArg } from "@aurigma/design-atoms-model/EventObject";
import { PlaceholderHandlerData } from "./PlaceholderHandlerData";
import { PlaceholderItem } from "@aurigma/design-atoms-model/Product/Items";
import * as TextWhizz from "@aurigma/text-whizz/TextWhizzJS";
import { IDesignAtomsApiClient } from "../Services/IDesignAtomsApiClient";
import { IListenableColorPreviewService } from "../Services/IColorPreviewService";
import { ICanvas } from "../ICanvas";
import { PlaceholderFitModeType } from "../Viewer/Interfaces";
import { IPlaceholderHandlerOptions } from "./Interfaces/IPlaceholderHandlerOptions";
export declare class PlaceholderItemHandler extends ShapeItemHandler {
    private _previousRectangle;
    private _isEditingChangedEvent;
    private _selectButtonClickEvent;
    protected _content: ContentItemHandler;
    protected _topFrames: ContentItemHandler[];
    protected _bottomFrames: ContentItemHandler[];
    protected _editing: boolean;
    protected _showMaskedContent: boolean;
    protected _isContentUpdating: boolean;
    protected _placeholderButtonGroup: HTMLElement;
    protected _editButtonGroup: HTMLElement;
    protected _doneButtonGroup: HTMLElement;
    protected _selectButton: HTMLElement;
    protected _doneButton: HTMLElement;
    protected _handleButton: HTMLElement;
    protected _qualityChangeContainer: HTMLElement;
    protected _qualityChangeScaleBar: HTMLElement;
    protected _qualityChangeInfoBar: HTMLElement;
    protected _forceQualityChangeInfoBar: boolean;
    protected _selectButtonClickHandler: (event: any) => void;
    protected _emptyPlaceholderBorderColor: RgbColor;
    protected _emptyPlaceholderBorderWidth: number;
    protected _imageIsLoading: boolean;
    protected _isCropMode: boolean;
    protected _fitModeType: PlaceholderFitModeType;
    static readonly typeName: string;
    constructor(item?: PlaceholderItem, textWhizz?: typeof TextWhizz, apiClient?: IDesignAtomsApiClient, colorPreviewService?: IListenableColorPreviewService, options?: IPlaceholderHandlerOptions);
    isHighlightNeeded(): boolean;
    get isCropMode(): boolean;
    get imageIsLoading(): boolean;
    set imageIsLoading(condition: boolean);
    get item(): PlaceholderItem;
    set item(item: PlaceholderItem);
    get previousRectangle(): RotatedRectangleF;
    set previousRectangle(value: RotatedRectangleF);
    get content(): ContentItemHandler;
    set content(value: ContentItemHandler);
    get topFrames(): ContentItemHandler[];
    set topFrames(v: ContentItemHandler[]);
    get bottomFrames(): ContentItemHandler[];
    set bottomFrames(v: ContentItemHandler[]);
    get editing(): boolean;
    set editing(value: boolean);
    get showMaskedContent(): boolean;
    set showMaskedContent(value: boolean);
    get isQualityChangeBarEmpty(): boolean;
    get qualityChangeScaleBar(): HTMLElement;
    set qualityChangeScaleBar(v: HTMLElement);
    get qualityChangeInfoBar(): HTMLElement;
    set qualityChangeInfoBar(v: HTMLElement);
    get qualityChangeContainer(): HTMLElement;
    set qualityChangeContainer(v: HTMLElement);
    get forceQualityChangeInfoBar(): boolean;
    set forceQualityChangeInfoBar(v: boolean);
    get placeholderButtonGroup(): HTMLElement;
    set placeholderButtonGroup(v: HTMLElement);
    get doneButtonGroup(): HTMLElement;
    set doneButtonGroup(v: HTMLElement);
    get selectButton(): HTMLElement;
    set selectButton(v: HTMLElement);
    get doneButton(): HTMLElement;
    set doneButton(v: HTMLElement);
    get handleButton(): HTMLElement;
    set handleButton(v: HTMLElement);
    get selectButtonClickHandler(): (event: any) => void;
    get editButtonGroup(): HTMLElement;
    set editButtonGroup(v: HTMLElement);
    currentRectangle: RotatedRectangleF;
    addIsEditingChanged(listener: (ph: PlaceholderItemHandler) => void): void;
    removeIsEditingChanged(listener: (ph: PlaceholderItemHandler) => void): void;
    quickUpdate(): void;
    getContentScale(): number;
    setContentScale(value: number): void;
    resetContent(): void;
    getSelectToolbarButtonClickEvent(): EventWithSenderArg<ItemHandler, any>;
    getTopFrame(index: number): ContentItemHandler;
    setTopFrame(index: number, v: any): void;
    getBottomFrame(index: number): ContentItemHandler;
    setBottomFrame(index: any, v: any): void;
    isEmptyContent(): boolean;
    isStubOrEmpty(): boolean;
    isCoverMode(): boolean;
    showEditButton(): boolean;
    showHandleToolbarButton(): boolean;
    getPermissions(forcePermissionContent?: boolean): Permission;
    setBadToWarningChangeScaleBarClass(): void;
    setWarningToGoodChangeScaleBarClass(): void;
    setBadToGoodChangeScaleBarClass(): void;
    rotateContentLeft(): void;
    rotateContentRight(): void;
    setRectangle(rectangle?: RotatedRectangleF, suppressOnChanged?: boolean, forcePlaceholderSet?: boolean): void;
    drawItemHandler(itemHandlerCtx: CanvasRenderingContext2D): void;
    getSelectionRectangle(): RotatedRectangleF;
    getBorderMargin(): number;
    addSelectButtonClick(handler: (handler: PlaceholderItemHandler) => void): void;
    removeSelectButtonClick(handler: (handler: PlaceholderItemHandler) => void): void;
    getChangeContentButtonClickEvent(): EventWithSenderArg<ItemHandler, any>;
    startTransform(): void;
    endTransform(changed: boolean, resized: boolean): void;
    transformChanged(): void;
    onResized(): boolean;
    showSelectButton(): boolean;
    showSelectToolbarButton(): boolean;
    showHandleButton(): boolean;
    onHandleButtonClick: () => void;
    onDoneButtonClick: () => void;
    private _calcCurrentRectangle;
    setContentUpdating(v: boolean): void;
    isContentUpdating(): boolean;
    updateContentAndFrames(func: (itemHandler: ContentItemHandler) => void): void;
    getBoundsIncludingFrames(): RectangleF;
    getRectangleIncludingFrames(): RotatedRectangleF;
    setQualityChangeScaleBarWidth(progress: number): void;
    setQualityChangeInfoBarText(value: string): void;
    protected _isReady(): boolean;
    protected _getColors(): Color[];
    protected _updateImpl(): Promise<void>;
    protected _onAddedOnCanvas(canvas: ICanvas): void;
    protected _onRemovedFromCanvas(canvas: ICanvas): void;
    protected _onTransformRectangle(startRectangle: RotatedRectangleF, endRectangle: RotatedRectangleF, highlightOnly: boolean): void;
    protected _endTransform(changed: boolean, resized: boolean, suppressOnChanged?: boolean): void;
    protected _getHighlightRectangle(): RotatedRectangleF;
    protected _getDefaultPermissions(): IPermissions;
    protected _getItemPermissions(): IPermissions;
    protected _onItemPropertyChanged(sender: PlaceholderItem, propertyName: string): void;
    protected _onItemVisibilityChanged(): void;
    protected _refreshState(): void;
    protected _createDataInstance(itemHandler?: PlaceholderItemHandler): PlaceholderHandlerData;
    private _onContentReady;
    private _updateFrames;
    private _updateTopFrames;
    private _updateBottomFrames;
    private _updateContent;
    private _onSelectButtonClick;
    private _onImageIsLoadingChanged;
    private _rotateContent;
    private _reloadPlaceholderButtons;
    private static _getItemPath;
}
