import { _XmlWriter } from './xml-writer';
import { PdfDocument } from './../pdf-document';
import { PdfPage } from './../pdf-page';
import { PdfAnnotation } from './../annotations/annotation';
import { PdfAnnotationCollection } from './../annotations/annotation-collection';
import { _PdfAnnotationType } from './../enumerator';
import { _PdfDictionary, _PdfName, _PdfReference } from './../pdf-primitives';
import { _PdfContentStream } from './../base-stream';
import { _PdfCrossReference } from './../pdf-cross-reference';
import { PdfCheckBoxField, PdfField } from './../form/field';
export declare abstract class _ExportHelper {
    exportAppearance: boolean;
    _asPerSpecification: boolean;
    _skipBorderStyle: boolean;
    _fileName: string;
    _document: PdfDocument;
    _crossReference: _PdfCrossReference;
    _isAnnotationExport: boolean;
    _isAnnotationImport: boolean;
    _key: string;
    _formKey: string;
    _exportEmptyFields: boolean;
    _groupReferences: Map<string, _PdfReference>;
    _groupHolders: Array<_PdfDictionary>;
    _encodeDictionary: _PdfDictionary;
    _annotationTypes: Array<_PdfAnnotationType>;
    _annotationAttributes: Array<string>;
    _xmlDocument: Document;
    _richTextPrefix: string;
    _parser: DOMParser;
    _table: Map<any, any>;
    _fields: Map<string, string[]>;
    _richTextValues: Map<string, string>;
    _jsonData: number[];
    _openingBrace: number;
    _openingBracket: number;
    _closingBrace: number;
    _closingBracket: number;
    _colon: number;
    _doubleQuotes: number;
    _comma: number;
    _space: number;
    _format: string;
    _annotationID: string;
    fdfString: string;
    _xmlImport: boolean;
    abstract _exportAnnotations(document?: PdfDocument): Uint8Array;
    abstract _exportFormFields(document: PdfDocument): Uint8Array;
    abstract _save(): Uint8Array;
    _exportFormFieldsData(field: PdfField): string | string[];
    _exportFormFieldData(field: PdfField): void;
    _getAnnotationType(dictionary: _PdfDictionary): string;
    _getValue(primitive: any, isJson?: boolean): string;
    _getColor(primitive: any): string;
    _getValidString(value: string): string;
    _getEncodedFontDictionary(source: _PdfDictionary): _PdfDictionary;
    _getEncodedValue(value: string, dictionary?: _PdfDictionary): string;
    _replaceNotUsedCharacters(input: string, structure: _FontStructure): string;
    _getExportValue(primitive: any, field?: PdfField): string | string[];
    _addReferenceToGroup(reference: _PdfReference, dictionary: _PdfDictionary): void;
    _handlePopup(annotations: PdfAnnotationCollection, reference: _PdfReference, annotationDictionary: _PdfDictionary, pageDictionary: _PdfDictionary): void;
    _importField(): void;
    _importFieldData(field: PdfField, values: string[]): void;
    _containsExportValue(value: string, field: PdfCheckBoxField): boolean;
    _checkSelected(dictionary: _PdfDictionary, value: string): boolean;
    _dispose(): void;
}
export declare class _XfdfDocument extends _ExportHelper {
    constructor(fileName?: string);
    _exportAnnotations(document: PdfDocument): Uint8Array;
    _exportFormFields(document: PdfDocument): Uint8Array;
    _save(): Uint8Array;
    _writeFormFieldData(writer: _XmlWriter, isAcrobat?: boolean): void;
    _writeFieldName(value: Map<any, any>, writer: _XmlWriter): void;
    _getElements(table: Map<any, any>): Map<any, any>;
    _checkAnnotationType(annotation: PdfAnnotation): boolean;
    _exportAnnotationData(annotation: PdfAnnotation, writer: _XmlWriter, pageIndex: number): void;
    _writeAnnotationData(writer: _XmlWriter, pageIndex: number, annotation: PdfAnnotation): void;
    _writeAnnotationData(writer: _XmlWriter, pageIndex: number, dictionary: _PdfDictionary): void;
    _writeDictionary(dictionary: _PdfDictionary, pageIndex: number, writer: _XmlWriter, hasAppearance: boolean): void;
    _getAppearanceString(appearance: _PdfDictionary): Uint8Array;
    _writeAppearanceDictionary(writer: _XmlWriter, dictionary: _PdfDictionary): void;
    _writeObject(writer: _XmlWriter, primitive: any, dictionary: _PdfDictionary, key?: string, isNewReference?: boolean): void;
    _writePrefix(writer: _XmlWriter, name: string, key?: string): void;
    _writeArray(writer: _XmlWriter, array: any[], dictionary: _PdfDictionary): void;
    _getFormatedString(value: string, isParsing?: boolean): string;
    _writeAttribute(writer: _XmlWriter, key: string, primitive: any): void;
    _writeAttributeString(writer: _XmlWriter, attribute: string, primitive: any, isLowerCase?: boolean): void;
    _writeRawData(writer: _XmlWriter, name: string, value: string): void;
    _writeColor(writer: _XmlWriter, primitive: any, attribute: string, tag?: string): void;
    _exportMeasureDictionary(dictionary: _PdfDictionary, writer: _XmlWriter): void;
    _exportMeasureFormatDetails(measurementDetails: _PdfDictionary, writer: _XmlWriter): void;
    _importAnnotations(document: PdfDocument, data: Uint8Array): void;
    _importFormData(document: PdfDocument, data: Uint8Array): void;
    _readXmlData(root: HTMLElement): void;
    _checkXfdf(element: HTMLElement): void;
    _parseFormData(root: HTMLElement): void;
    _importFormNodes(list: Element[]): void;
    _parseAnnotationData(element: Element): void;
    _getAnnotationDictionary(page: PdfPage, element: Element): _PdfDictionary;
    _addAnnotationData(dictionary: _PdfDictionary, element: Element, page: PdfPage): void;
    _addBorderStyle(dictionary: _PdfDictionary, element: Element): void;
    _applyAttributeValues(dictionary: _PdfDictionary, attributes: NamedNodeMap): void;
    _obtainPoints(value: string): number[];
    _parseInnerElements(dictionary: _PdfDictionary, element: Element, page: PdfPage): void;
    _addStreamData(child: Node, dictionary: _PdfDictionary, parent: Element): void;
    _addSound(dictionary: _PdfDictionary, element: Element, raw: number[]): void;
    _addFileAttachment(dictionary: _PdfDictionary, element: Element, raw: number[]): void;
    _addAppearanceData(element: Node, dictionary: _PdfDictionary): void;
    _getAppearance(source: _PdfDictionary | _PdfContentStream, child: Node): void;
    _getStream(element: Element): _PdfContentStream;
    _getDictionary(element: Element): _PdfDictionary;
    _getArray(element: Element): any;
    _getData(element: Element): number[];
    _addArrayElements(array: any, child: Node): void;
    _getFixed(element: Element): number;
    _getInt(element: Element): number;
    _getString(element: Element): string;
    _getName(element: Element): _PdfName;
    _getBoolean(element: Element): boolean;
    _addMeasureDictionary(dictionary: _PdfDictionary, element: Element): void;
    _addElements(element: Element, dictionary: _PdfDictionary): void;
    _addString(dictionary: _PdfDictionary, key: string, value: string): void;
    _addInt(dictionary: _PdfDictionary, key: string, value: string): void;
    _addFloat(dictionary: _PdfDictionary, key: string, value: string): void;
    _addFloatPoints(dictionary: _PdfDictionary, points: number[], key: string): void;
    _addKey(primitive: any, dictionary: _PdfDictionary, element: Element): void;
    _addLineEndStyle(dictionary: _PdfDictionary, element: Element): void;
}
export declare class _FontStructure {
    _dictionary: _PdfDictionary;
    _differencesDictionary: Map<string, string>;
    _fontType: string;
    _baseFontEncoding: string;
    _fontEncoding: string;
    _fontName: string;
    constructor(dictionary: _PdfDictionary);
    readonly differencesDictionary: Map<string, string>;
    readonly baseFontEncoding: string;
    readonly fontEncoding: string;
    readonly fontName: string;
    _getFontEncoding(): string;
    _getDifferencesDictionary(): Map<string, string>;
    _getFontName(): string;
    _decodeHexFontName(fontName: string): string;
}
