import { Ref, ShallowRef } from 'vue';
import { AnnotationLayer, DrawLayer, PageViewport, PDFDocumentProxy, PDFPageProxy } from 'pdfjs-dist';
import { AnnotationType } from '@vue-pdf-viewer/shared';
import { AnnotationHighlight } from '@/utils/types';
interface UseAnnotationHighlightProps {
    page: Ref<PDFPageProxy>;
    viewport: Ref<PageViewport>;
    canvasLayer: Ref<HTMLElement>;
    textLayer: Ref<HTMLDivElement>;
    annotationLayer: Ref<AnnotationLayer>;
    document: PDFDocumentProxy;
    /** Shared DrawLayer from parent - ensures unique IDs across all text selection types */
    sharedDrawLayer: ShallowRef<DrawLayer | null>;
}
export declare const useAnnotationHighlight: (props: UseAnnotationHighlightProps) => {
    isPrepared: Ref<boolean, boolean>;
    highlightAnnotations: Ref<{
        hexColor: string;
        drawLayerId: number;
        outlineId: number;
        pageIndex?: number | undefined;
        boxes?: {
            x: number;
            y: number;
            width: number;
            height: number;
        }[] | undefined;
        id: string | null;
        annotationType: AnnotationType;
        rotation: number;
        rect: number[];
        parentRect?: number[] | undefined;
        fieldType?: string | undefined;
        annotationFlags?: import("@vue-pdf-viewer/shared").AnnotationFlag | undefined;
        borderStyle?: {
            dashArray: number[];
            horizontalCornerRadius: number;
            style: number;
            verticalCornerRadius: number;
            width: number;
            rawWidth: number;
        } | undefined;
        color?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        creationDate?: string | Date | null | undefined;
        backgroundColor?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        borderColor?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        contentsObj?: {
            dir: string;
            str: string;
        } | undefined;
        hasOwnCanvas?: boolean | undefined;
        hasAppearance?: boolean | undefined;
        modificationDate?: string | Date | null | undefined;
        quadPoints?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Float32Array;
            every: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Float32Array;
            filter: (predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any) => Float32Array;
            find: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any) => Float32Array;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
                <U_2>(callbackfn: (previousValue: U_2, currentValue: number, currentIndex: number, array: Float32Array) => U_2, initialValue: U_2): U_2;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
                <U_3>(callbackfn: (previousValue: U_3, currentValue: number, currentIndex: number, array: Float32Array) => U_3, initialValue: U_3): U_3;
            };
            reverse: () => Float32Array;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Float32Array;
            some: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
            subarray: (begin?: number | undefined, end?: number | undefined) => Float32Array;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Float32Array;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Float32Array";
        } | undefined;
        subtype?: string | undefined;
        noRotate?: boolean | undefined;
        noHTML?: boolean | undefined;
        isEditable?: boolean | undefined;
        structParent?: number | undefined;
        titleObj?: {
            dir: string;
            str: string;
        } | undefined;
        opacity?: number | undefined;
        file?: {
            content: {
                [x: number]: number;
                readonly BYTES_PER_ELEMENT: number;
                readonly buffer: {
                    readonly byteLength: number;
                    slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                    readonly [Symbol.toStringTag]: string;
                } | {
                    readonly byteLength: number;
                    slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                    readonly [Symbol.species]: SharedArrayBuffer;
                    readonly [Symbol.toStringTag]: "SharedArrayBuffer";
                };
                readonly byteLength: number;
                readonly byteOffset: number;
                copyWithin: (target: number, start: number, end?: number | undefined) => Uint8Array;
                every: (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean;
                fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8Array;
                filter: (predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any) => Uint8Array;
                find: (predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number | undefined;
                findIndex: (predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number;
                forEach: (callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any) => void;
                indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
                join: (separator?: string | undefined) => string;
                lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
                readonly length: number;
                map: (callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any) => Uint8Array;
                reduce: {
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
                    <U_4>(callbackfn: (previousValue: U_4, currentValue: number, currentIndex: number, array: Uint8Array) => U_4, initialValue: U_4): U_4;
                };
                reduceRight: {
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
                    <U_5>(callbackfn: (previousValue: U_5, currentValue: number, currentIndex: number, array: Uint8Array) => U_5, initialValue: U_5): U_5;
                };
                reverse: () => Uint8Array;
                set: (array: ArrayLike<number>, offset?: number | undefined) => void;
                slice: (start?: number | undefined, end?: number | undefined) => Uint8Array;
                some: (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean;
                sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8Array;
                subarray: (begin?: number | undefined, end?: number | undefined) => Uint8Array;
                toLocaleString: () => string;
                toString: () => string;
                valueOf: () => Uint8Array;
                entries: () => IterableIterator<[number, number]>;
                keys: () => IterableIterator<number>;
                values: () => IterableIterator<number>;
                includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
                at: (index: number) => number | undefined;
                [Symbol.iterator]: () => IterableIterator<number>;
                readonly [Symbol.toStringTag]: "Uint8Array";
            };
            filename: string;
        } | undefined;
        inReplyTo?: string | undefined;
        value?: string | undefined;
        dest?: [number | {
            gen: number;
            num: number;
        }, {
            name: string;
        }, ...any[]] | undefined;
        url?: string | undefined;
        unsafeUrl?: string | undefined;
        action?: import("@vue-pdf-viewer/shared").LinkAction | undefined;
        newWindow?: boolean | undefined;
        deleted?: boolean | undefined;
        noView?: boolean | undefined;
        noPrint?: boolean | undefined;
        fontSize?: number | undefined;
        contents?: string | undefined;
        imageDataUrl?: string | undefined;
        vertices?: number[] | undefined;
    }[], AnnotationHighlight[] | {
        hexColor: string;
        drawLayerId: number;
        outlineId: number;
        pageIndex?: number | undefined;
        boxes?: {
            x: number;
            y: number;
            width: number;
            height: number;
        }[] | undefined;
        id: string | null;
        annotationType: AnnotationType;
        rotation: number;
        rect: number[];
        parentRect?: number[] | undefined;
        fieldType?: string | undefined;
        annotationFlags?: import("@vue-pdf-viewer/shared").AnnotationFlag | undefined;
        borderStyle?: {
            dashArray: number[];
            horizontalCornerRadius: number;
            style: number;
            verticalCornerRadius: number;
            width: number;
            rawWidth: number;
        } | undefined;
        color?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        creationDate?: string | Date | null | undefined;
        backgroundColor?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        borderColor?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Uint8ClampedArray;
            every: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            filter: (predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any) => Uint8ClampedArray;
            find: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any) => Uint8ClampedArray;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;
                <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U_1, initialValue: U_1): U_1;
            };
            reverse: () => Uint8ClampedArray;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            some: (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8ClampedArray;
            subarray: (begin?: number | undefined, end?: number | undefined) => Uint8ClampedArray;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Uint8ClampedArray;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Uint8ClampedArray";
        } | null | undefined;
        contentsObj?: {
            dir: string;
            str: string;
        } | undefined;
        hasOwnCanvas?: boolean | undefined;
        hasAppearance?: boolean | undefined;
        modificationDate?: string | Date | null | undefined;
        quadPoints?: {
            [x: number]: number;
            readonly BYTES_PER_ELEMENT: number;
            readonly buffer: {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                readonly [Symbol.toStringTag]: string;
            } | {
                readonly byteLength: number;
                slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                readonly [Symbol.species]: SharedArrayBuffer;
                readonly [Symbol.toStringTag]: "SharedArrayBuffer";
            };
            readonly byteLength: number;
            readonly byteOffset: number;
            copyWithin: (target: number, start: number, end?: number | undefined) => Float32Array;
            every: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
            fill: (value: number, start?: number | undefined, end?: number | undefined) => Float32Array;
            filter: (predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any) => Float32Array;
            find: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number | undefined;
            findIndex: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number;
            forEach: (callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any) => void;
            indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            join: (separator?: string | undefined) => string;
            lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
            readonly length: number;
            map: (callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any) => Float32Array;
            reduce: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
                <U_2>(callbackfn: (previousValue: U_2, currentValue: number, currentIndex: number, array: Float32Array) => U_2, initialValue: U_2): U_2;
            };
            reduceRight: {
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
                (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
                <U_3>(callbackfn: (previousValue: U_3, currentValue: number, currentIndex: number, array: Float32Array) => U_3, initialValue: U_3): U_3;
            };
            reverse: () => Float32Array;
            set: (array: ArrayLike<number>, offset?: number | undefined) => void;
            slice: (start?: number | undefined, end?: number | undefined) => Float32Array;
            some: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
            sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
            subarray: (begin?: number | undefined, end?: number | undefined) => Float32Array;
            toLocaleString: () => string;
            toString: () => string;
            valueOf: () => Float32Array;
            entries: () => IterableIterator<[number, number]>;
            keys: () => IterableIterator<number>;
            values: () => IterableIterator<number>;
            includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
            at: (index: number) => number | undefined;
            [Symbol.iterator]: () => IterableIterator<number>;
            readonly [Symbol.toStringTag]: "Float32Array";
        } | undefined;
        subtype?: string | undefined;
        noRotate?: boolean | undefined;
        noHTML?: boolean | undefined;
        isEditable?: boolean | undefined;
        structParent?: number | undefined;
        titleObj?: {
            dir: string;
            str: string;
        } | undefined;
        opacity?: number | undefined;
        file?: {
            content: {
                [x: number]: number;
                readonly BYTES_PER_ELEMENT: number;
                readonly buffer: {
                    readonly byteLength: number;
                    slice: (begin: number, end?: number | undefined) => ArrayBuffer;
                    readonly [Symbol.toStringTag]: string;
                } | {
                    readonly byteLength: number;
                    slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
                    readonly [Symbol.species]: SharedArrayBuffer;
                    readonly [Symbol.toStringTag]: "SharedArrayBuffer";
                };
                readonly byteLength: number;
                readonly byteOffset: number;
                copyWithin: (target: number, start: number, end?: number | undefined) => Uint8Array;
                every: (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean;
                fill: (value: number, start?: number | undefined, end?: number | undefined) => Uint8Array;
                filter: (predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any) => Uint8Array;
                find: (predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number | undefined;
                findIndex: (predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any) => number;
                forEach: (callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any) => void;
                indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
                join: (separator?: string | undefined) => string;
                lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
                readonly length: number;
                map: (callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any) => Uint8Array;
                reduce: {
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
                    <U_4>(callbackfn: (previousValue: U_4, currentValue: number, currentIndex: number, array: Uint8Array) => U_4, initialValue: U_4): U_4;
                };
                reduceRight: {
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;
                    (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;
                    <U_5>(callbackfn: (previousValue: U_5, currentValue: number, currentIndex: number, array: Uint8Array) => U_5, initialValue: U_5): U_5;
                };
                reverse: () => Uint8Array;
                set: (array: ArrayLike<number>, offset?: number | undefined) => void;
                slice: (start?: number | undefined, end?: number | undefined) => Uint8Array;
                some: (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any) => boolean;
                sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Uint8Array;
                subarray: (begin?: number | undefined, end?: number | undefined) => Uint8Array;
                toLocaleString: () => string;
                toString: () => string;
                valueOf: () => Uint8Array;
                entries: () => IterableIterator<[number, number]>;
                keys: () => IterableIterator<number>;
                values: () => IterableIterator<number>;
                includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
                at: (index: number) => number | undefined;
                [Symbol.iterator]: () => IterableIterator<number>;
                readonly [Symbol.toStringTag]: "Uint8Array";
            };
            filename: string;
        } | undefined;
        inReplyTo?: string | undefined;
        value?: string | undefined;
        dest?: [number | {
            gen: number;
            num: number;
        }, {
            name: string;
        }, ...any[]] | undefined;
        url?: string | undefined;
        unsafeUrl?: string | undefined;
        action?: import("@vue-pdf-viewer/shared").LinkAction | undefined;
        newWindow?: boolean | undefined;
        deleted?: boolean | undefined;
        noView?: boolean | undefined;
        noPrint?: boolean | undefined;
        fontSize?: number | undefined;
        contents?: string | undefined;
        imageDataUrl?: string | undefined;
        vertices?: number[] | undefined;
    }[]>;
    highlightElements: Ref<Map<string, HTMLElement> & Omit<Map<string, HTMLElement>, keyof Map<any, any>>, Map<string, HTMLElement> | (Map<string, HTMLElement> & Omit<Map<string, HTMLElement>, keyof Map<any, any>>)>;
    highlightElementClickOpens: import("vue").Reactive<Map<string, boolean>>;
    highlightCanvasInfos: import("vue").Reactive<Map<string, {
        clipPathUrl: string;
        outlineId: number;
        drawLayerId: number;
    }>>;
    handleHighlightClick: (annotation: AnnotationHighlight) => void;
    onSelectedHighlightColorUpdate: (color: string, annotation: AnnotationHighlight) => void;
    handleHighlightRemove: (annotation: AnnotationHighlight) => void;
    createHighlightFromBoxes: (boxes: Array<{
        x: number;
        y: number;
        width: number;
        height: number;
    }>, text: string, showPopup?: boolean) => {
        pageIndex: number;
        id: string;
        annotationType: AnnotationType;
        quadPoints: Float32Array;
        rect: number[];
        color: Uint8ClampedArray;
        hexColor: string;
        drawLayerId: number;
        outlineId: number;
        rotation: number;
        contents: string;
        creationDate: string;
        user: string;
        popup: {
            contents: string;
        };
        outlines: any[][];
        boxes: {
            x: number;
            y: number;
            width: number;
            height: number;
        }[];
    };
    prepareHighlightElements: (editorActive?: boolean) => Promise<void>;
};
export {};
