import * as SvgPanZoom from "@dash14/svg-pan-zoom";
export interface Box {
    top: number;
    bottom: number;
    left: number;
    right: number;
}
interface ViewArea {
    box: Box;
    center: SvgPanZoom.Point;
}
export interface SvgPanZoomInstance extends SvgPanZoom.Instance {
    getViewArea(): ViewArea;
    getViewBox(): Box;
    setViewBox(box: Box): void;
    getRealZoom(): number;
    applyAbsoluteZoomLevel(zoomLevel: number, minZoomLevel: number, maxZoomLevel: number): void;
    setPanEnabled(enabled: boolean): SvgPanZoomInstance;
    setZoomEnabled(enabled: boolean): SvgPanZoomInstance;
}
export interface CustomEventOptions {
    svgElement: SVGSVGElement;
    instance: SvgPanZoomInstance;
}
export interface CustomEventHandler {
    init: (options: CustomEventOptions) => void;
    haltEventListeners: string[];
    destroy: (options: CustomEventOptions) => void;
}
export interface SvgPanZoomOptions extends Omit<SvgPanZoom.Options, "customEventsHandler"> {
    customEventsHandler?: CustomEventHandler;
}
export interface SvgPanZoomInternal extends SvgPanZoomInstance {
    _isPanEnabled: boolean;
    _isZoomEnabled: boolean;
    _internalIsPanEnabled(): boolean;
    _internalEnablePan(): void;
    _internalDisablePan(): void;
    _internalIsZoomEnabled(): boolean;
    _internalEnableZoom(): void;
    _internalDisableZoom(): void;
}
export declare function createSvgPanZoomEx(svg: SVGElement, options: SvgPanZoomOptions): SvgPanZoomInstance;
export {};
