import { InteractiveZone, PointF, Surface, RectangleF, EventObject } from "@aurigma/design-atoms-model";
import { IInteractiveZonesHandler, IInteractiveZonesStateChangedEventArgs } from "./Interfaces/IInteractiveZonesHandler";
import { IInputManager } from "../Input/InputManager/IInputManager";
import * as TextWhizz from "@aurigma/text-whizz/TextWhizzJS";
import { IInteractiveZoneStateStyle, IInteractiveZonesStyles } from "./Interfaces/ICanvasStyle";
import { ISelectionHandler } from "../Services";
export declare class InteractiveZonesHandler implements IInteractiveZonesHandler {
    private _styles;
    private _eventManagerEvent;
    private _inputManager;
    private _selectionHandler;
    private _textWhizz;
    private _stateChangedEvent;
    private _currentSurface;
    private _highlightZone;
    private _activeZone;
    private _offset;
    constructor(_styles: IInteractiveZonesStyles, _eventManagerEvent: EventObject<IInteractiveZonesStateChangedEventArgs>);
    isReady(): boolean;
    getZoneStyle(zone: InteractiveZone, isActive: boolean, isHover: boolean): IInteractiveZoneStateStyle;
    setOffset(offset: PointF): void;
    setInputManager(inputManager: IInputManager): void;
    setSelectionHandler(selection: ISelectionHandler): void;
    setTextWhizz(textWhizz: typeof TextWhizz): void;
    setStyles(styles: IInteractiveZonesStyles): void;
    getZoneBounds(zone: InteractiveZone): RectangleF;
    getSnapLines(): RectangleF[];
    get stateChangedEvent(): EventObject<IInteractiveZonesStateChangedEventArgs>;
    get currentSurface(): Surface;
    set currentSurface(value: Surface);
    get interactiveZones(): InteractiveZone[];
    get activeZone(): InteractiveZone;
    set activeZone(value: InteractiveZone);
    get highlightZone(): InteractiveZone;
    set highlightZone(value: InteractiveZone);
    private _notifyStateChanged;
    private _getZoneByPoint;
    private _unsubscribeSurfaceEvents;
    private _subscribeSurfaceEvents;
    propertyOf<TObj>(name: keyof TObj): keyof TObj;
    private _onSurfacePropertyChanged;
    private _onInput;
}
