import { FormatImagesImporter } from '../../utils/images-import';
import { DocumentModel } from '../../../model/document-model';
import { Paragraph } from '../../../model/paragraph/paragraph';
import { SubDocument, SubDocumentInterval } from '../../../model/sub-document';
import { ChunkedText } from '@devexpress/utils/lib/class/chunked-text';
import { Stack } from '@devexpress/utils/lib/class/stack';
import { DestinationBase } from './destination/base/destination';
import { FieldDestination } from './destination/fields/field-destination';
import { TableContentFieldDestination } from './destination/fields/table-content-field-destination';
import { ShapeDestination } from './destination/shape/shape-destination';
import { DefaultDestination } from './destination/sub-document/default-destination';
import { RtfImporterOptions } from './importer-options';
import { ImportersCollection } from './importers/importers-collection';
import { KeywordTableHolder } from './keyword-tables/keyword-table-holder';
import { ImportBookmarkInfo } from './model/bookmark/import-bookmark-info';
import { RtfParsingState } from './model/enums';
import { RtfFieldInfo } from './model/fields/rtf-field-info';
import { ImportRangePermissionInfo } from './model/range-permission/import-range-permission-info';
import { RtfDocumentProperties } from './model/rtf-document-properties';
import { RtfSectionProperties } from './model/section/rtf-section-properties';
import { RtfTableReader } from './table/table-reader';
import { ModelManager } from '../../../model-manager';
import { RichOptions } from '../../../model/options/rich-options';
export declare class RtfPositionState {
    subDocument: SubDocument;
    paragraph: Paragraph;
    fields: Stack<RtfFieldInfo>;
    bookmarks: Record<string, ImportBookmarkInfo>;
    rangePermissions: Record<string, ImportRangePermissionInfo>;
    sectionProperties: Stack<RtfSectionProperties>;
    tableReader: RtfTableReader;
    constructor(subDocument: SubDocument, paragraph: Paragraph, fields: Stack<RtfFieldInfo>, bookmarks: Record<string, ImportBookmarkInfo>, rangePermissions: Record<string, ImportRangePermissionInfo>, sectionProperties: Stack<RtfSectionProperties>, tableReader: RtfTableReader);
}
export declare class RtfImportData {
    readonly documentModel: DocumentModel;
    readonly modelManager: ModelManager;
    readonly formatImagesImporter: FormatImagesImporter;
    readonly importerOptions: RtfImporterOptions;
    readonly richOptions: RichOptions;
    readonly rtfText: ChunkedText;
    readonly importers: ImportersCollection;
    readonly documentProperties: RtfDocumentProperties;
    readonly keywordHTHolder: KeywordTableHolder;
    readonly positionStates: Stack<RtfPositionState>;
    subDocument: SubDocument;
    parsingState: RtfParsingState;
    binCharCount: number;
    optionalGroupLevel: number;
    rtfDocumentModelType: RtfDocumentModelType;
    intervalsToDelete: SubDocumentInterval[];
    private skipCount;
    private readonly savedDestinations;
    private _destination;
    get destination(): DestinationBase;
    set destination(newDestination: DestinationBase);
    get savedStatesCount(): number;
    private get formattingInfo();
    constructor(rtfText: ChunkedText, importOptions: RtfImporterOptions, documentModel: DocumentModel, richOptions: RichOptions);
    private beforeChangeSubDocument;
    private onChangeSubDocument;
    private addEmptyPositionState;
    import(): void;
    private afterImport;
    protected parseRtfKeyword(): string;
    private isUnicodeSymbolDefinition;
    flushDecoder(): void;
    private switchToCodePageDecoder;
    private switchToUnicodeDecoder;
    private setActiveDecoder;
    private throwUnexpectedEndOfFile;
    throwInvalidRtfFile(): void;
    static throwInvalidRtfFile(): void;
    private beforeImport;
    private translateControlChar;
    protected translateKeyword(keyword: string, parameterValue: number | null, hasParameter: boolean): void;
    private parseBinChar;
    decreaseSkipCount(): void;
    protected popRtfState(): void;
    private parseHexChar;
    private parseChar;
    readChar(): string;
    hexToInt(ch: string, throwException: boolean): number;
    parseUnicodeChar(ch: string): void;
    processChar(ch: string): void;
    setCodePage(codePage: number): void;
    get codePage(): number;
    parseCharWithoutDecoding(ch: string): void;
    createTableContentFieldDestination(createField: boolean): TableContentFieldDestination;
    createShapeDestination(): ShapeDestination;
    createFieldDestination(): FieldDestination;
    createDefaultDestination(): DefaultDestination;
    private pushState;
    private popState;
}
export declare enum RtfDocumentModelType {
    None = 0,
    WithoutStyle = 1,
    WithStyle = 2
}
