import * as i0 from '@angular/core'; import { AfterContentInit, OnChanges, OnDestroy, ElementRef, Renderer2, NgZone, SimpleChanges } from '@angular/core'; type RedZoomStatus = 'loading' | 'loaded' | 'error'; declare class RedZoomTemplate { template: HTMLDivElement; lens: HTMLDivElement; lensBody: HTMLDivElement; frame: HTMLDivElement; frameBody: HTMLDivElement; error: HTMLDivElement; errorMessage: HTMLDivElement; private privateStatus; private appliedClasses; constructor(); set status(state: RedZoomStatus); get status(): RedZoomStatus; set classes(classes: string); get isHidden(): boolean; setProperties(properties: Record): void; detach(): void; attach(): void; activate(): void; onTransitionEnd: (event: TransitionEvent) => void; } interface Vector { x: T; y: T; } type VectorNumber = Vector; type VectorString = Vector; declare class RedZoomImage { listener: () => void; element: HTMLImageElement; isFirst: boolean; destroy: () => void; private loading; get width(): number; get height(): number; get size(): VectorNumber; get naturalWidth(): number; get naturalHeight(): number; get naturalSize(): VectorNumber; get style(): CSSStyleDeclaration; set styleSize(value: VectorString); get status(): RedZoomStatus; set src(value: string); constructor(element?: HTMLImageElement | null, listener?: () => void, className?: string | null); reset(): void; } interface Session { active: boolean; thumbSize: VectorNumber | null; thumbPos: VectorNumber | null; lensContainerSize: VectorNumber | null; lensImageSize: VectorNumber | null; frameSize: VectorNumber | null; mousePos: VectorNumber; destroy: () => void; } declare class RedZoomDirective implements AfterContentInit, OnChanges, OnDestroy { private element; private renderer; private zone; private platformId; src: string; lensSrc: string; thumbSrc: string; lazy: boolean; classes: string; behavior: 'hover' | 'grab' | 'click'; wheel: boolean; errorMessage: string; template: RedZoomTemplate; thumbImage: RedZoomImage; frameImage: RedZoomImage; lensImage: RedZoomImage; scaleFactor: number; session: Session | null; requestAnimationFrameId: number; get isImage(): boolean; get status(): RedZoomStatus; onImageChangeStatus: () => void; constructor(element: ElementRef, renderer: Renderer2, zone: NgZone, platformId: string); listen(): void; unlisten: () => void; onImageChangeStatusDistinct: () => void; ngAfterContentInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; onChangeThumbSrc(): void; onChangeLensSrc(): void; getThumbSrc(): string; loadLensImage(): void; loadFrameImage(): void; mouseEnter: (event: MouseEvent) => void; onMouseMove: (mousePos: VectorNumber) => void; initSession(): void; calcScaleFactor(): void; calcFrameSize(): void; move(): void; invalidate(): void; forceReflow(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export { RedZoomDirective };