import { PdfTagType, ScopeType } from './text-extraction/enumerator';
import { PdfDocument, _PdfDictionary, PdfPage, Rectangle } from '@syncfusion/ej2-pdf';
/**
 * Represents the structure element of the PDF document.
 * ```typescript
 * // Load an existing PDF document
 * let document: PdfDocument = new PdfDocument(data, password);
 * // Initialize a new instance of the `PdfDataExtractor` class
 * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
 * // Access the structure element of the PDF document
 * let rootStructureElement: PdfStructureElement = extractor.getStructureElement();
 * // Save the document
 * document.save('output.pdf');
 * // Destroy the document
 * document.destroy();
 * ```
 */
export declare class PdfStructureElement {
    _text: string;
    _dictionary: _PdfDictionary;
    _parent: PdfStructureElement;
    _order: number;
    _document: PdfDocument;
    _tagType: PdfTagType;
    _contentId: number[];
    _pageDictionary: _PdfDictionary;
    _abbreviation: string;
    _page: PdfPage;
    _childElements: PdfStructureElement[];
    _mcid: number;
    _bounds: Rectangle;
    _abbreviationCollection: Map<number, string>;
    _textCollection: string[];
    _actualText: string;
    _alternateText: string;
    _language: string;
    _title: string;
    _scope: ScopeType;
    /**
     * Gets the text of the tag (Read only).
     *
     * @returns {string} The extracted text from the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the extracted text of the structure element.
     * let text: string = element.text;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly text: string;
    /**
     * Gets the alternate text of the tag (Read only).
     *
     * @returns {string} The alternate text from the structure element.
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the alternate text of the structure element.
     * let altText: string = element.alternateText;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly alternateText: string;
    /**
     * Gets the parent element (Read only).
     *
     * @returns {PdfStructureElement}  The parent PdfStructureElement.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the parent of the structure element.
     * let parentElement: PdfStructureElement = element.parent;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly parent: PdfStructureElement;
    /**
     * Gets the abbreviation (Read only).
     *
     * @returns {string} Abbreviation
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the abbreviation of the structure element.
     * let abbreviation: string = element.abbreviation;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly abbreviation: string;
    /**
     * Gets the tag type of the structure element (Read only).
     *
     * @returns {PdfTagType} The tag type of the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the tag type of the structure element.
     * let type: PdfTagType = element.tagType;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly tagType: PdfTagType;
    /**
     * Gets the actual text of the structure element (Read only).
     *
     * @returns {string} The actual text associated with the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the actual text of the structure element.
     * let actualText: string = element.actualText;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly actualText: string;
    /**
     * Gets the page associated with the structure element (Read only).
     *
     * @returns {PdfPage} The PdfPage where the structure element is located.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the page of the structure element.
     * let elementPage: PdfPage = element.page;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly page: PdfPage;
    /**
     * Gets the bounds of the structure element (Read only).
     *
     * @returns {Rectangle} The bounds of the structure element as an array in the format [x, y, width, height].
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the bounds of the structure element.
     * let elementBounds: Rectangle = element.bounds;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly bounds: Rectangle;
    /**
     * Gets the child elements of this structure element (Read only).
     *
     * @returns {PdfStructureElement[]} An array of child PdfStructureElement objects.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the child elements of the structure element.
     * let childElements: PdfStructureElement[] = element.childElements;
     * // Iterate through each child element
     * childElements.forEach((childElement: PdfStructureElement) => {
     *    // Do something with each child element
     * });
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly childElements: PdfStructureElement[];
    /**
     * Gets the language of the structure element (Read only).
     *
     * @returns {string} The language code of the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the language of the structure element.
     * let language: string = element.language;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly language: string;
    /**
     * Gets the order of the structure element (Read only).
     *
     * @returns {number} The order index representing the position of the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the order of the structure element.
     * let elementOrder: number = element.order;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly order: number;
    /**
     * Gets the title of the structure element (Read only).
     *
     * @returns {string} The title of the structure element.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the title of the structure element.
     * let elementTitle: string = element.title;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly title: string;
    /**
     * Gets the scope type of the structure element (Read only).
     *
     * @returns {ScopeType} The scope type indicating the context or area covered by the structure element, such as row, column, or both.
     *
     * ```typescript
     * // Load an existing PDF document
     * let document: PdfDocument = new PdfDocument(data, password);
     * // Initialize a new instance of the `PdfDataExtractor` class
     * let extractor: PdfDataExtractor = new PdfDataExtractor(document);
     * // Extract structure elements from a particular page in the PDF document
     * let page: PdfPage = document.getPage(0);
     * let pageElements: PdfStructureElement[] = extractor.getStructureElements(page);
     * let element: PdfStructureElement = pageElements[0];
     * // Gets the scope type of the structure element.
     * let scopeType: ScopeType = element.scope;
     * // Save the document
     * document.save('output.pdf');
     * // Destroy the document
     * document.destroy();
     * ```
     */
    readonly scope: ScopeType;
    static _load(document?: PdfDocument, dictionary?: _PdfDictionary, order?: number, parent?: PdfStructureElement): PdfStructureElement;
    _getPageFromElement(element: PdfStructureElement): PdfPage;
    _getChildPage(): PdfPage;
    _getTaggedContent(elements: PdfStructureElement[]): void;
    _calculateBounds(element: PdfStructureElement, bounds: Rectangle): Rectangle;
    _getTagType(value: string): PdfTagType;
    _parseContent(element: string[]): number;
}
