import { MinMaxNumber } from '@devexpress/utils/lib/class/min-max';
import { RulerColumnsControl } from './controls/column';
import { RulerDivisionsControl } from './controls/divisions';
import { RulerFirstLineIndentDragHandle } from './controls/indent/first-line';
import { RulerLeftIndentDragHandle } from './controls/indent/left';
import { RulerRightIndentDragHandle } from './controls/indent/right';
import { RulerLeftMarginDragHandle } from './controls/margin/left';
import { RulerRightMarginDragHandle } from './controls/margin/right';
import { RulerControl } from './controls/ruler';
import { RulerTabsControl } from './controls/tab/tab';
import { RulerTabTypeControl } from './controls/tab/tab-type';
import { RulerTablesControl } from './controls/table';
import { RulerVerticalLineControl } from './controls/vertical-line';
import { RulerWrapper } from './controls/wrapper';
import { RulerMouseEventsManager } from './events/mouse';
import { RulerViewElementScrollManager } from './events/scroll';
import { RulerModelData } from './model-data';
import { RulerMouseHandler } from './mouse-handler';
export declare class RulerControls {
    readonly canvas: HTMLDivElement;
    readonly mouseEventsManager: RulerMouseEventsManager;
    readonly viewElementScrollManager: RulerViewElementScrollManager;
    readonly lineControl: RulerVerticalLineControl;
    readonly wrapper: RulerWrapper;
    readonly ruler: RulerControl;
    readonly tabTypeBox: RulerTabTypeControl;
    readonly divisions: RulerDivisionsControl;
    readonly leftMargin: RulerLeftMarginDragHandle;
    readonly rightMargin: RulerRightMarginDragHandle;
    readonly leftIndent: RulerLeftIndentDragHandle;
    readonly firstLineIndent: RulerFirstLineIndentDragHandle;
    readonly rightIndent: RulerRightIndentDragHandle;
    readonly columns: RulerColumnsControl;
    readonly tables: RulerTablesControl;
    readonly tabs: RulerTabsControl;
    readonly mouseHandler: RulerMouseHandler;
    readonly moveStepSize: number;
    get paragraphLeftPosition(): number;
    get paragraphRightPosition(): number;
    constructor(canvas: HTMLDivElement, modelData: RulerModelData);
    dispose(): void;
    update(): void;
    private updateModelState;
    updateView(): void;
    adjust(): void;
    chooseClosestAnchorPosition(leftPos: number, additionalPositions: number[], minMax: MinMaxNumber): number;
    private getClosestAnchorPositions;
}
