import { Ref } from 'vue';
import { TransformEngine, TransformState, TransformEngineOptions } from '@sketch-ruler/core';
export interface CanvasTransformOptions {
    initialScale?: number;
    initialOffset?: {
        x: number;
        y: number;
    };
    minZoom?: number;
    maxZoom?: number;
    enableAnimation?: boolean;
    animationMode?: TransformEngineOptions['animationMode'];
    dampingRatio?: number;
    naturalFrequency?: number;
    timeConstant?: number;
    autoCenter?: boolean;
    canvasSize?: {
        width: number;
        height: number;
    };
    viewportSize?: {
        width: number;
        height: number;
    };
    paddingRatio?: number;
}
export interface UseCanvasTransformReturn {
    scale: Ref<number>;
    offset: Ref<{
        x: number;
        y: number;
    }>;
    engine: TransformEngine;
    setTransform: (t: Partial<TransformState>) => void;
    panBy: (dx: number, dy: number) => void;
    zoomBy: (dScale: number, originX: number, originY: number) => void;
    zoomTo: (scale: number, originX: number, originY: number) => void;
    toWorldPoint: (screenX: number, screenY: number) => {
        x: number;
        y: number;
    };
    toScreenPoint: (worldX: number, worldY: number) => {
        x: number;
        y: number;
    };
    reset: () => void;
}
export declare function useCanvasTransform(options?: CanvasTransformOptions): UseCanvasTransformReturn;
//# sourceMappingURL=useCanvasTransform.d.ts.map