import * as React from "react";
import { DrawRulerOptions, RulerInterface, RulerProps } from "./types";
export default class Ruler extends React.PureComponent<RulerProps> implements RulerInterface {
    static defaultProps: Partial<RulerProps>;
    divisionsElement: HTMLElement;
    state: {
        scrollPos: number;
    };
    canvasElement: HTMLCanvasElement;
    private canvasContext;
    private width;
    private height;
    private _zoom;
    private _rulerScale;
    private _observer;
    render(): JSX.Element;
    componentDidMount(): void;
    componentDidUpdate(): void;
    componentWillUnmount(): void;
    /**
     * Gets the scroll position of the ruler.
     */
    getScrollPos(): number;
    /**
     * @method Ruler#scroll
     * @param scrollPos
     */
    scroll(scrollPos: number, zoom?: number): void;
    /**
     * @method Ruler#resize
     */
    resize(nextZoom?: number): void;
    /**
     * draw a ruler
     * @param options - It is drawn with an external value, not the existing state.
     */
    draw(options?: DrawRulerOptions): void;
    private _getRulerScale;
    private _checkResize;
}
