import { PdfFont, PdfFontStyle } from './fonts/pdf-standard-font';
import { PdfField } from './form/field';
import { PdfForm } from './form/form';
import { _PdfCrossReference } from './pdf-cross-reference';
import { PdfDocument } from './pdf-document';
import { PdfBookmarkBase, PdfNamedDestination } from './pdf-outline';
import { PdfDestination, PdfPage } from './pdf-page';
import { PdfPageImportOptions } from './pdf-page-import-options';
import { _PdfDictionary, _PdfReference } from './pdf-primitives';
import { _PdfBaseStream } from './base-stream';
export declare class _PdfMergeHelper {
    _bookmarkHashTable: Map<PdfPage, PdfBookmarkBase[]>;
    _namedDestinations: any[];
    _bookmarks: any[];
    _fields: any[];
    _pageReference: Map<_PdfDictionary, PdfPage>;
    _bookmarksPageLinkReference: Map<_PdfReference, number>;
    _destination: any[];
    _newList: Map<_PdfReference, _PdfReference>;
    _annotationLayer: Map<number, _PdfReference>;
    _isLayersPresent: boolean;
    _fieldNames: string[];
    _crossReference: _PdfCrossReference;
    _destinationDocument: PdfDocument;
    _sourceDocument: PdfDocument;
    _options: PdfPageImportOptions;
    _kidsReference: any[];
    _formFieldsCollection: Map<number, _PdfReference>;
    _formFields: _PdfReference[];
    _isDuplicatePage: boolean;
    _fieldCount: number;
    _copier: _PdfCopier;
    constructor(crossReference: _PdfCrossReference, destination: PdfDocument, source: PdfDocument, pageReference: Map<_PdfDictionary, PdfPage>, options: PdfPageImportOptions);
    _importPages(page: PdfPage, index: number, layers: boolean, isCopiedPage: boolean, options?: PdfPageImportOptions, isSplitDocument?: boolean): void;
    _importAnnotation(page: PdfPage, newPage: PdfPage): void;
    _formFieldsGroupingSupport(form: PdfForm, oldPage: PdfPage, newPage: PdfPage): void;
    _groupFormFieldsKids(destinationField: PdfField, field: PdfField, kidsArray: _PdfReference[], destKids: _PdfReference[], oldKids: _PdfReference[], ref: _PdfReference, array: _PdfReference[], index?: number, fieldIndex?: number, drEntry?: _PdfDictionary, widget?: any): _PdfReference[];
    _updateFieldsWithKids(destinationField: PdfField, field: PdfField, fieldDictionary: _PdfDictionary, index: number, fieldIndex: number, ref: _PdfReference, oldKids: _PdfReference[], array: _PdfReference[], drEntry: _PdfDictionary, formFieldDictionary?: _PdfDictionary): void;
    _removeFieldDictionary(dictionary: _PdfDictionary, keys: string[]): _PdfDictionary;
    _updateFieldDictionary(dictionary: _PdfDictionary, pageRef: _PdfReference, parentRef: _PdfReference): void;
    _createNewFieldDictionary(fieldDictionary: _PdfDictionary, destDictionary: _PdfDictionary): _PdfDictionary;
    _getItemStyle(item: any, field: PdfField): void;
    _createAppearance(destinationField: PdfField, field: PdfField, oldDictionary: _PdfDictionary, dictionary: _PdfDictionary, drEntry: _PdfDictionary, widget?: any): void;
    _obtainFont(item: _PdfDictionary, formDictionary: _PdfDictionary): PdfFont;
    _getFontStyle(fontStyle: string): PdfFontStyle;
    _importFormField(page: PdfPage, pdfForm: PdfForm, newPage: PdfPage, crossReference: _PdfCrossReference): void;
    _insertFormFields(index: number, crossReference: _PdfCrossReference, pdfField: PdfField, form: PdfForm, ref: _PdfReference, array: _PdfReference[], kidsArray: _PdfReference[]): _PdfReference[];
    _mergeFormFieldsWithDocument(): void;
    _importLayers(ocProperties: _PdfDictionary, layers: boolean): void;
    _mergeLayer(newPageDictionary: _PdfDictionary, oldPageDictionary: _PdfDictionary, crossReference: _PdfCrossReference): void;
    _exportBookmarks(document: PdfDocument, pageCount: number): void;
    _getNamedDestination(nDest: PdfNamedDestination, page: PdfPage): PdfNamedDestination;
    _getDestination(page: PdfPage, dest: PdfDestination): PdfDestination;
    _writeObject(document: PdfDocument, table?: _PdfDictionary, value?: any, dictionary?: _PdfDictionary, key?: string, array?: any[], ref?: _PdfReference): void;
    _writeDictionary(value: any, table: _PdfDictionary, key: string, array: any[], ref: _PdfReference, list: any[] | // eslint-disable-line
    _PdfDictionary): void;
    _writeArray(document: PdfDocument, array: any[], value: any[], dictionary: _PdfDictionary): void;
    _writePropertiesDictionary(document: PdfDocument, table: _PdfDictionary, dictionary: _PdfDictionary): void;
    _fixDestinations(document: PdfDocument): void;
    _insertNewPage(page: PdfPage, index?: number): PdfPage;
    _objectDispose(): void;
}
export declare class _PdfCopier {
    _traversedObjects: Map<_PdfReference, _PdfReference>;
    _targetCrossReference: _PdfCrossReference;
    _sourceCrossReference: _PdfCrossReference;
    _isGroupingSupport: boolean;
    constructor(targetCrossReference: _PdfCrossReference, sourceCrossReference: _PdfCrossReference);
    _copy(object: any): any;
    _copyDictionary(element: _PdfDictionary, copiedPage?: boolean): _PdfDictionary;
    _copyArray(originalArray: any[]): any[];
    _copyStream(originalStream: _PdfBaseStream): _PdfBaseStream;
    _copyReference(element: _PdfReference): any;
    _addToDestination(element: any): _PdfReference;
}
