import { RulerControls } from '../manager';
import { RulerModelData } from '../model-data';
import { IZoomLevelHolder } from '../../../interfaces/i-zoom-level-holder';
export declare class RulerModelState {
    enabled: boolean;
    private zoomLevelHolder;
    private _modelValue;
    get modelValue(): number;
    get originalModelValue(): number;
    set modelValue(value: number);
    constructor(modelValue: number, enabled: boolean, zoomLevelHolder: IZoomLevelHolder);
    clone(): RulerModelState;
}
export declare abstract class RulerBase {
    protected modelData: RulerModelData;
    protected controls: RulerControls;
    private _visible;
    rootElement: HTMLElement;
    get visible(): boolean;
    protected abstract getRootClassName(): string;
    constructor(modelData: RulerModelData, controls: RulerControls);
    dispose(): void;
    setVisible(visible: boolean): void;
}
