import { BatchUpdatableObject } from '@devexpress/utils/lib/class/batch-updatable';
import { IControlHeightProvider } from '../../canvas/i-control-height-provider';
import { ILayoutChangesListener } from '../../interfaces/i-document-layout-changes-listener';
import { DocumentLayout } from '../../layout/document-layout';
import { LayoutPage } from '../../layout/main-structures/layout-page';
import { IMeasurer } from '../../measurer/measurer';
import { DocumentModel } from '../../model/document-model';
import { BookmarksSettings } from '../../model/options/bookmarks';
import { DocumentProtectionSettings } from '../../model/options/protection';
import { SubDocument } from '../../model/sub-document';
import { InnerClientProperties } from '../../rich-utils/inner-client-properties';
import { IActiveSubDocumentHolder } from '../../selection/i-active-sub-document-holder';
import { StringResources } from '../../string-resources';
import { ChangesManager } from '../changes/engine/changes-manager';
import { AnchoredObjectsManager } from '../floating/anchored-objects-manager';
import { BaseFormatter } from '../formatter/base-formatter';
import { MainFormatter } from '../formatter/main-formatter';
import { ModelChangesListener } from '../formatter/model-changes-listener';
import { OtherPageAreaFormatter } from '../formatter/other-page-area-formatter';
import { BoundsCalculator } from '../formatter/utils/bounds-calculator';
import { FloatingRestartInfoHolder } from '../formatter/utils/floating-restart-info-holder';
import { LayoutDependentRunCache } from '../formatter/utils/layout-dependent-cache';
import { RemoveRedundantHelper } from '../formatter/utils/remove-redundant-helper';
import { LayoutInvalidator } from '../invalidator/layout-invalidator';
import { RestartManager } from './restart-manager';
export interface ILayoutFormatterManagerHolder {
    layoutFormatterManager: FormatterManager;
}
export type BrowserUtils = {
    MacOSPlatform: boolean;
};
export declare class FormatterManager extends BatchUpdatableObject {
    private formatterProcessID;
    private unhideProcessID;
    private _isDocumentOpened;
    private onLayoutChangedDispatcher;
    private formatters;
    private activeSubDocumentHolder;
    innerClientProperties: InnerClientProperties;
    model: DocumentModel;
    layout: DocumentLayout;
    measurer: IMeasurer;
    changesManager: ChangesManager;
    boundsCalculator: BoundsCalculator;
    invalidator: LayoutInvalidator;
    modelChangesListener: ModelChangesListener;
    removeRedundantHelper: RemoveRedundantHelper;
    otherPageAreaFormatter: OtherPageAreaFormatter;
    restartManager: RestartManager;
    anchoredObjectsManager: AnchoredObjectsManager;
    controlHeightProvider: IControlHeightProvider;
    stringResources: StringResources;
    layoutDependentRunCache: LayoutDependentRunCache;
    activeFormatter: BaseFormatter;
    mainFormatter: MainFormatter;
    bookmarksSettings: BookmarksSettings;
    documentProtectionSettings: DocumentProtectionSettings;
    floatingRestartInfoHolder: FloatingRestartInfoHolder;
    browserUtils: BrowserUtils;
    get activeSubDocument(): SubDocument;
    get isDocumentOpened(): boolean;
    constructor(measurer: IMeasurer, innerClientProperties: InnerClientProperties, model: DocumentModel, layout: DocumentLayout, activeSubDocumentHolder: IActiveSubDocumentHolder, bookmarksSettings: BookmarksSettings, documentProtectionSettings: DocumentProtectionSettings, controlHeightProvider: IControlHeightProvider, stringResources: StringResources, layoutChangesListeners: ILayoutChangesListener[], browserUtils?: BrowserUtils);
    dispose(): void;
    onUpdateUnlocked(_occurredEvents: number): void;
    getLayoutFormatter(subDocumentId: number): BaseFormatter;
    openDocument(): void;
    closeDocument(): void;
    runFormatting(pageIndex: number): void;
    runFormattingAsync(): void;
    private checkMeasureValid;
    forceFormatPage(pageIndex: number): LayoutPage;
    formatSyncAllDocument(): void;
    onPagesReady(): void;
    private formatPage;
    private stopFormatting;
}
