import * as React from "react";
import Ruler, { DrawRulerOptions } from "@scena/react-ruler";
import { GuidesState, GuidesProps, GuidesInterface } from "./types";
export default class Guides extends React.PureComponent<GuidesProps, GuidesState> implements GuidesInterface {
    static defaultProps: GuidesProps;
    state: GuidesState;
    adderElement: HTMLElement;
    scrollPos: number;
    ruler: Ruler;
    private managerRef;
    private guidesElement;
    private displayElement;
    private originElement;
    private gesto;
    private guideElements;
    private _isFirstMove;
    private _zoom;
    private _guidesZoom;
    private _observer;
    constructor(props: GuidesProps);
    render(): JSX.Element;
    /**
     * Draw ruler
     */
    drawRuler(options: DrawRulerOptions): void;
    renderGuides(): JSX.Element[] | undefined;
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: any): void;
    /**
     * Load the current guidelines.
     * @memberof Guides
     * @instance
     */
    loadGuides(guides: number[]): void;
    /**
     * Get current guidelines.
     * @memberof Guides
     * @instance
     */
    getGuides(): number[];
    /**
     * Scroll the positions of the guidelines opposite the ruler.
     * @memberof Guides
     * @instance
     */
    scrollGuides(pos: number, nextZoom?: number): void;
    /**
     * Set to the next zoom.
     * @memberof Guides
     * @since 0.22.0
     * @param nextZoom - next zoom
     */
    zoomTo(nextZoom: number, nextGuidesZoom?: number): void;
    /**
     * Get Guides DOM Element
     * @memberof Guides
     * @instance
     */
    getElement(): HTMLElement;
    /**
     * Get Ruler DOM Element
     * @memberof Guides
     * @instance
     */
    getRulerElement(): HTMLCanvasElement;
    /**
     * Scroll position of guides (horizontal: y, vertical: x)
     */
    getGuideScrollPos(): number;
    /**
     * Scroll position of the ruler (horizontal: x, vertical: y)
     */
    getRulerScrollPos(): number;
    /**
     * Scroll the position of the ruler.
     * @memberof Guides
     * @instance
     */
    scroll(pos: number, nextZoom?: number): void;
    /**
     * Recalculate the size of the ruler.
     * @memberof Guides
     * @instance
     */
    resize(nextZoom?: number): void;
    private onDragStart;
    private _onDrag;
    private onDragEnd;
    private movePos;
    private getTranslateName;
    private _startDragScroll;
    private _dragScroll;
    private _endDragScroll;
    private _onCheck;
    private _setZoom;
}
