export type AnnotationElementParameters = {
    data: Object;
    layer: HTMLDivElement;
    page: any;
    viewport: any;
    linkService: any;
    downloadManager: any;
    annotationStorage?: AnnotationStorage;
    /**
     * - Path for image resources, mainly
     * for annotation icons. Include trailing slash.
     */
    imageResourcesPath?: string;
    renderInteractiveForms: boolean;
    svgFactory: Object;
};
export type AnnotationLayerParameters = {
    viewport: any;
    div: HTMLDivElement;
    annotations: any[];
    page: any;
    linkService: any;
    downloadManager: any;
    /**
     * - Path for image resources, mainly
     * for annotation icons. Include trailing slash.
     */
    imageResourcesPath?: string;
    renderInteractiveForms: boolean;
};
/**
 * @typedef {Object} AnnotationLayerParameters
 * @property {PageViewport} viewport
 * @property {HTMLDivElement} div
 * @property {Array} annotations
 * @property {PDFPage} page
 * @property {IPDFLinkService} linkService
 * @property {DownloadManager} downloadManager
 * @property {string} [imageResourcesPath] - Path for image resources, mainly
 *   for annotation icons. Include trailing slash.
 * @property {boolean} renderInteractiveForms
 */
export class AnnotationLayer {
    /**
     * Render a new annotation layer with all annotation elements.
     *
     * @public
     * @param {AnnotationLayerParameters} parameters
     * @memberof AnnotationLayer
     */
    public static render(parameters: AnnotationLayerParameters): void;
    /**
     * Update the annotation elements on existing annotation layer.
     *
     * @public
     * @param {AnnotationLayerParameters} parameters
     * @memberof AnnotationLayer
     */
    public static update(parameters: AnnotationLayerParameters): void;
}
/**
 * @typedef {Object} AnnotationElementParameters
 * @property {Object} data
 * @property {HTMLDivElement} layer
 * @property {PDFPage} page
 * @property {PageViewport} viewport
 * @property {IPDFLinkService} linkService
 * @property {DownloadManager} downloadManager
 * @property {AnnotationStorage} [annotationStorage]
 * @property {string} [imageResourcesPath] - Path for image resources, mainly
 *   for annotation icons. Include trailing slash.
 * @property {boolean} renderInteractiveForms
 * @property {Object} svgFactory
 */
export class AnnotationElementFactory {
    /**
     * @param {AnnotationElementParameters} parameters
     * @returns {AnnotationElement}
     */
    static create(parameters: AnnotationElementParameters): AnnotationElement;
}
import { DOMSVGFactory } from "./display_utils";
import { AnnotationStorage } from "./annotation_storage";
declare class AnnotationElement {
    constructor(parameters: any, isRenderable?: boolean, ignoreBorder?: boolean);
    isRenderable: boolean;
    data: any;
    layer: any;
    page: any;
    viewport: any;
    linkService: any;
    downloadManager: any;
    imageResourcesPath: any;
    renderInteractiveForms: any;
    svgFactory: any;
    annotationStorage: any;
    container: any;
    focus(): void;
    _focus(): void;
    /**
     * Create an empty container for the annotation's HTML element.
     *
     * @private
     * @param {boolean} ignoreBorder
     * @memberof AnnotationElement
     * @returns {HTMLSectionElement}
     */
    private _createContainer;
    /**
     * Create a popup for the annotation's HTML element. This is used for
     * annotations that do not have a Popup entry in the dictionary, but
     * are of a type that works with popups (such as Highlight annotations).
     *
     * @private
     * @param {HTMLSectionElement} container
     * @param {HTMLDivElement|HTMLImageElement|null} trigger
     * @param {Object} data
     * @memberof AnnotationElement
     */
    private _createPopup;
    /**
     * Render the annotation's HTML element in the empty container.
     *
     * @public
     * @memberof AnnotationElement
     */
    public render(): void;
}
export { DOMSVGFactory };
