import { AfterViewInit, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { FZoomBase } from './f-zoom-base';
import { FEventTrigger } from '../domain';
import { IPoint } from '@foblex/2d';
import { EFZoomDirection } from './e-f-zoom-direction';
import * as i0 from "@angular/core";
export declare class FZoomDirective extends FZoomBase implements OnInit, AfterViewInit, OnChanges, OnDestroy {
    private _fMediator;
    private _rendered;
    private _triggersListener;
    isEnabled: boolean;
    fWheelTrigger: FEventTrigger;
    fDblClickTrigger: FEventTrigger;
    minimum: number;
    maximum: number;
    step: number;
    dblClickStep: number;
    private get _fHost();
    private get _fCanvas();
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private _listenTriggers;
    private _onWheel;
    private _calculateDirection;
    private _onDoubleClick;
    private _getToCenterPosition;
    zoomIn(position?: IPoint): void;
    zoomOut(position?: IPoint): void;
    private _onZoomToCenter;
    setZoom(position: IPoint, step: number, direction: EFZoomDirection, animated: boolean): void;
    /**
     *  @deprecated Method "getScale" is deprecated. Use "getZoomValue" instead. This method will be removed in version 18.0.0.`,
     */
    getScale(): number;
    getZoomValue(): number;
    reset(): void;
    private _disposeListeners;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FZoomDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FZoomDirective, "f-canvas[fZoom]", ["fComponent"], { "isEnabled": { "alias": "fZoom"; "required": false; }; "fWheelTrigger": { "alias": "fWheelTrigger"; "required": false; }; "fDblClickTrigger": { "alias": "fDblClickTrigger"; "required": false; }; "minimum": { "alias": "fZoomMinimum"; "required": false; }; "maximum": { "alias": "fZoomMaximum"; "required": false; }; "step": { "alias": "fZoomStep"; "required": false; }; "dblClickStep": { "alias": "fZoomDblClickStep"; "required": false; }; }, {}, never, never, true, never>;
    static ngAcceptInputType_isEnabled: unknown;
    static ngAcceptInputType_minimum: unknown;
    static ngAcceptInputType_maximum: unknown;
    static ngAcceptInputType_step: unknown;
    static ngAcceptInputType_dblClickStep: unknown;
}
