import { IEventListener } from '../utils/event-dispatcher';
import { IRichEditUnitConverter } from '../utils/unit-converter';
import { FormatterManager, ILayoutFormatterManagerHolder } from '../layout-formatter/managers/formatter-manager';
import { DocumentLayout } from '../layout/document-layout';
import { IMeasurer } from '../measurer/measurer';
import { IModelManager } from '../model-manager';
import { DocumentModel } from '../model/document-model';
import { FieldRequestManager } from '../model/fields/field-request-manager';
import { IsModified } from '../model/json/enums/json-top-level-enums';
import { IProcessor } from '../processor';
import { InnerClientProperties } from '../rich-utils/inner-client-properties';
import { SpellChecker } from '../spelling/spell-checker';
import { StringResources } from '../string-resources';
import { IBatchUpdatableObject } from '@devexpress/utils/lib/class/batch-updatable';
import { Point } from '@devexpress/utils/lib/geometry/point';
import { PdfHelperFrame } from '@devexpress/utils/lib/pdf/helper-frame';
import { IDisposable } from '@devexpress/utils/lib/types';
import { AutoCorrectService } from '../auto-correct/auto-correct-service';
import { IBarHolder } from '../bars/interfaces';
import { ViewManager } from '../canvas/renderes/view-manager';
import { ClientSideEvents } from '../client-side-events';
import { RichEditClientCommand } from '../commands/client-command';
import { CommandManager } from '../commands/command-manager';
import { ShortcutManager } from '../commands/shortcut-manager';
import { FocusManager } from '../focus-manager';
import { GlobalEventDispatcher } from '../global-event-dispatcher';
import { InputController } from '../input-controller';
import { HitTestManager } from '../layout-engine/hit-test-manager/hit-test-manager';
import { LoadingPanelManagerBase } from '../loading-panel/manager';
import { IBuiltinLoadingPanel, LoadingPanelBase } from '../loading-panel/panel';
import { DocumentInfo } from '../rich-edit-core';
import { InputPosition } from '../selection/input-position';
import { InputPositionModelChangesListener } from '../selection/input-position-model-changes-listener';
import { Selection } from '../selection/selection';
import { SelectionModelChangesListener } from '../selection/selection-model-changes-listener';
import { IRulerControl } from '../ui/ruler/ruler';
import { SearchManager } from '../ui/search-manager';
import { IControlOwner } from './i-control-owner';
import { IExportModelOptions } from '../formats/i-document-exporter';
export interface IBarListener extends IEventListener {
    NotifyBarCommandExecuted(commandID: RichEditClientCommand, parameter: any): any;
    NotifyBarUpdateRequested(): any;
}
export interface IPopupMenuManager {
    showByKey(): any;
    showByMouseClick(p: Point): any;
    showByTouchClick(): any;
    setSelection(selection: Selection): any;
    rejectNextShowContextMenu(): any;
}
export interface IReadOnlyPropertyHolder {
    readonly isReadOnlyPersistent: boolean;
}
export interface IRichEditControl extends IBatchUpdatableObject, IDisposable, IReadOnlyPropertyHolder, ILayoutFormatterManagerHolder, IProcessor {
    modelManager: IModelManager;
    commandManager: CommandManager;
    shortcutManager: ShortcutManager;
    selection: Selection;
    inputPosition: InputPosition;
    inputPositionModelChangesListener: InputPositionModelChangesListener;
    hitTestManager: HitTestManager;
    measurer: IMeasurer;
    uiUnitConverter: IRichEditUnitConverter;
    horizontalRulerControl: IRulerControl;
    spellChecker: SpellChecker;
    autoCorrectService: AutoCorrectService;
    searchManager: SearchManager;
    clientSideEvents: ClientSideEvents;
    innerClientProperties: InnerClientProperties;
    focusManager: FocusManager;
    inputController: InputController;
    globalEventDispatcher: GlobalEventDispatcher;
    isLoadingPictureFromClipboard: boolean;
    lastSavedHistoryItemId: number;
    layout: DocumentLayout;
    viewManager: ViewManager;
    layoutFormatterManager: FormatterManager;
    loadingPanelManager: LoadingPanelManagerBase<LoadingPanelBase<IBuiltinLoadingPanel>, LoadingPanelBase<IBuiltinLoadingPanel>>;
    readOnly: ReadOnlyMode;
    documentInfo: DocumentInfo;
    stringResources: StringResources;
    barHolder: IBarHolder;
    popupMenuManager: IPopupMenuManager;
    owner: IControlOwner;
    selectionModelChangesListener: SelectionModelChangesListener;
    pdfHelperFrame: PdfHelperFrame;
    getExportModelOptions(initOptions?: Partial<IExportModelOptions>): IExportModelOptions;
    isClientMode(): boolean;
    createFieldRequestManager(): FieldRequestManager;
    initialize(sessionGuid: string, documentInfo: DocumentInfo, subDocumentsCounter: number, documentModel: DocumentModel): any;
    setWorkSession(sessionGuid: string, documentInfo: DocumentInfo): any;
    beginLoading(): any;
    endLoading(): any;
    closeDocument(): any;
    importHtml(elements: HTMLElement[]): any;
    onViewTypeChanged(): any;
    getModifiedState(): IsModified;
    getGuidParams(): {
        sguid: string;
        cguid: string;
    };
    isTouchMode(): boolean;
    dispose(): any;
    isRibbon(element: HTMLElement): boolean;
    isClosed(): boolean;
    setModifiedFalse(): void;
}
export declare enum ReadOnlyMode {
    None = 0,
    Persistent = 1,
    Temporary = 2
}
