import { GuideLine, RulerPalette, ZoomMode } from '../state/ruler-context';
import { SketchRulerPlugin } from '@sketch-ruler/core';
export interface SketchRulerProps {
    showRuler?: boolean;
    scale?: number;
    thick?: number;
    width?: number;
    height?: number;
    canvasWidth?: number;
    canvasHeight?: number;
    palette?: Partial<RulerPalette>;
    lines?: {
        h: number[];
        v: number[];
    };
    isShowReferLine?: boolean;
    snapThreshold?: number;
    lockLine?: boolean;
    selfHandle?: boolean;
    zoomStep?: number;
    minZoom?: number;
    maxZoom?: number;
    /** 动画模式：direct | ease-out | damped | exponential */
    animationMode?: 'direct' | 'ease-out' | 'damped' | 'exponential';
    /** 缩放原点模式：pointer | viewport-center | content-center */
    zoomMode?: ZoomMode;
    /** 是否启用平滑动画 */
    enableAnimation?: boolean;
    /** 插件列表 */
    plugins?: SketchRulerPlugin[];
    /** 是否自动居中画布 */
    autoCenter?: boolean;
    /** 阴影区域（画布高亮） */
    shadow?: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    /** 初始偏移（autoCenter=false 时生效） */
    initialOffset?: {
        x: number;
        y: number;
    };
    /** 是否显示次刻度线，默认 false */
    showMinorTicks?: boolean;
    paddingRatio?: number;
    eyeIcon?: string;
    closeEyeIcon?: string;
    /** 参考线拖出画布时显示的删除提示文案 */
    deleteLabel?: string;
}
declare var __VLS_1: {
    tools: {
        zoomIn: () => Promise<void>;
        zoomOut: () => Promise<void>;
        reset: () => void;
        setZoomMode: (mode: ZoomMode) => void;
        zoomToPreset: (preset: number) => Promise<void>;
        toggleReferLine: () => void;
    };
    state: {
        scale: number;
        offset: {
            x: number;
            y: number;
        };
        zoomMode: ZoomMode;
        showReferLine: boolean;
    };
}, __VLS_3: {};
type __VLS_Slots = {} & {
    toolbar?: (props: typeof __VLS_1) => any;
} & {
    default?: (props: typeof __VLS_3) => any;
};
declare const __VLS_base: import('vue').DefineComponent<SketchRulerProps, {
    engine: import('@sketch-ruler/core').TransformEngine;
    reset: () => void;
    zoomIn: () => Promise<void>;
    zoomOut: () => Promise<void>;
    cursorClass: import('vue').Ref<string, string>;
    setTransform: (t: Partial<import('@sketch-ruler/core').TransformState>) => void;
    guideLines: import('vue').Ref<{
        id: string;
        orientation: "h" | "v";
        position: number;
        visible?: boolean | undefined;
        locked?: boolean | undefined;
    }[], GuideLine[] | {
        id: string;
        orientation: "h" | "v";
        position: number;
        visible?: boolean | undefined;
        locked?: boolean | undefined;
    }[]>;
    setZoomMode: (mode: ZoomMode) => void;
    zoomToPreset: (preset: number) => Promise<void>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:scale": (...args: any[]) => void;
    "update:offset": (...args: any[]) => void;
    zoomchange: (...args: any[]) => void;
    "update:lines": (...args: any[]) => void;
    "update:lockLine": (...args: any[]) => void;
    onCornerClick: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<SketchRulerProps> & Readonly<{
    "onUpdate:scale"?: ((...args: any[]) => any) | undefined;
    "onUpdate:offset"?: ((...args: any[]) => any) | undefined;
    onZoomchange?: ((...args: any[]) => any) | undefined;
    "onUpdate:lines"?: ((...args: any[]) => any) | undefined;
    "onUpdate:lockLine"?: ((...args: any[]) => any) | undefined;
    onOnCornerClick?: ((...args: any[]) => any) | undefined;
}>, {
    animationMode: "direct" | "ease-out" | "damped" | "exponential";
    initialOffset: {
        x: number;
        y: number;
    };
    minZoom: number;
    maxZoom: number;
    enableAnimation: boolean;
    autoCenter: boolean;
    paddingRatio: number;
    scale: number;
    thick: number;
    showMinorTicks: boolean;
    width: number;
    height: number;
    lines: {
        h: number[];
        v: number[];
    };
    palette: Partial<RulerPalette>;
    canvasWidth: number;
    canvasHeight: number;
    deleteLabel: string;
    lockLine: boolean;
    showRuler: boolean;
    isShowReferLine: boolean;
    snapThreshold: number;
    selfHandle: boolean;
    zoomStep: number;
    zoomMode: ZoomMode;
    plugins: SketchRulerPlugin[];
    shadow: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
//# sourceMappingURL=SketchRuler.vue.d.ts.map