import { MouseZoomPoint, PinchZoomProperties, ZoomEvent } from './interfaces';
import { EventEmitter } from '@angular/core';
type PropertyName = keyof PinchZoomProperties;
export declare class IvyPinch {
    properties: PinchZoomProperties;
    private onZoomChange;
    touches: any;
    element: any;
    elementTarget: any;
    parentElement: any;
    i: number;
    scale: number;
    initialScale: number;
    elementPosition: any;
    eventType: any;
    startX: number;
    startY: number;
    moveX: number;
    moveY: number;
    initialMoveX: number;
    initialMoveY: number;
    moveXC: number;
    moveYC: number;
    lastTap: number;
    draggingMode: boolean;
    distance: number;
    doubleTapTimeout: number;
    initialDistance: number;
    events: any;
    maxScale: number;
    defaultMaxScale: number;
    get minPanScale(): any;
    get fullImage(): {
        path: string;
        minScale?: number;
    };
    constructor(properties: PinchZoomProperties, onZoomChange: EventEmitter<ZoomEvent>);
    handleTouchstart: (event: any) => void;
    handleTouchend: (event: any) => void;
    handlePan: (event: any) => void;
    handleDoubleTap: (event: any) => void;
    handlePinch: (event: any) => void;
    handleWheel: (event: any) => void;
    handleResize: (_event: any) => void;
    handleLimitZoom(): void;
    moveLeft(event: any, index?: number): number;
    moveTop(event: any, index?: number): number;
    centeringImage(): boolean;
    limitPanY(): void;
    limitPanX(): void;
    setBasicStyles(): void;
    removeBasicStyles(): void;
    setDraggableImage(): void;
    removeDraggableImage(): void;
    setImageSize(): void;
    setAutoHeight(): void;
    removeImageSize(): void;
    getElementPosition(): void;
    getTouchstartPosition(event: any): void;
    getClientPosition(event: any, index?: number): {
        clientX: any;
        clientY: any;
    };
    resetScale(): void;
    updateInitialValues(): void;
    getDistance(touches: any): number;
    getImageHeight(): any;
    getImageWidth(): any;
    transformElement(duration: any): void;
    isTouchScreen(): boolean;
    getMatchMedia(query: any): boolean;
    isDragging(): boolean;
    detectLimitZoom(): void;
    pollLimitZoomForOriginalImage(): void;
    getMaxScaleForOriginalImage(): number;
    getImageElement(): any;
    toggleZoom(event?: any): void;
    zoomPoint(point: MouseZoomPoint, scale?: number): void;
    stepZoom(mode: 'IN' | 'OUT'): void;
    setZoom(properties: {
        scale: number;
        center?: number[];
    }): void;
    alignImage(): void;
    destroy(): void;
    getPropertiesValue(propertyName: PropertyName): any;
}
export {};
