type Rect = [number, number, number, number];
type Color = [number, number, number];
type Dir = 'ltr' | 'rtl';
declare enum BorderStyle {
    SOLID = 1,
    DASHED = 2
}
declare enum LineEnding {
    NONE = "None",
    SQUARE = "Square",
    CIRCLE = "Circle",
    DIAMOND = "Diamond",
    OPEN_ARROW = "OpenArrow",
    CLOSED_ARROW = "ClosedArrow",
    BUTT = "Butt",
    R_OPEN_ARROW = "ROpenArrow",
    R_CLOSED_ARROW = "RClosedArrow",
    SLASH = "Slash"
}
export interface AnnotationData {
    id: string;
    subtype: string;
    rect: Rect;
    rectDifference?: Rect;
    color?: Color | null;
    interiorColor?: Color | null;
    interiorColorOpacity?: number | null;
    borderColor?: Color | null;
    borderColorOpacity?: number | null;
    borderStyle?: {
        width: number;
        rawWidth: number;
        horizontalCornerRadius: number;
        verticalCornerRadius: number;
        dashArray: number[];
        style: BorderStyle;
        effect?: number;
        effectIntensity?: number;
    } | null;
    titleObj: {
        str: string;
        dir: Dir;
    };
    popupRef?: string | null;
    [key: string]: unknown;
}
export interface TextAnnotationData extends AnnotationData {
    contentsObj: {
        str: string;
        dir: Dir;
    };
}
export interface LinkAnnotationData extends AnnotationData {
    subtype: 'Link';
    url: string;
}
export interface FreeTextAnnotationData extends TextAnnotationData {
    subtype: 'FreeText';
    textContent: string[];
    textPosition: [number, number];
    calloutLine?: number[];
    lineEnding?: LineEnding;
    defaultAppearanceData?: {
        fontColor: Color;
        fontName: string;
        fontSize: number;
    };
}
export interface LineAnnotationData extends TextAnnotationData {
    subtype: 'Line';
    lineCoordinates: [number, number, number, number];
    lineEndings: [LineEnding, LineEnding];
}
export interface SquareAnnotationData extends TextAnnotationData {
    subtype: 'Square';
}
export interface CircleAnnotationData extends TextAnnotationData {
    subtype: 'Circle';
}
export interface PolygonAnnotationData extends TextAnnotationData {
    subtype: 'Polygon';
    vertices: number[];
    it?: string;
}
export interface PolylineAnnotationData extends TextAnnotationData {
    subtype: 'Polyline';
    vertices: number[];
    lineEndings: [LineEnding, LineEnding];
    it?: string;
}
export interface HighlightAnnotationData extends TextAnnotationData {
    subtype: 'Highlight';
    quadPoints: number[];
}
export interface UnderlineAnnotationData extends TextAnnotationData {
    subtype: 'Underline';
    quadPoints: number[];
}
export interface SquigglyAnnotationData extends TextAnnotationData {
    subtype: 'Squiggly';
    quadPoints: number[];
}
export interface StrikeOutAnnotationData extends TextAnnotationData {
    subtype: 'StrikeOut';
    quadPoints: number[];
}
export interface StampAnnotationData extends TextAnnotationData {
    subtype: 'Stamp';
    graphics: Uint8Array;
}
export interface CaretAnnotationData extends TextAnnotationData {
    subtype: 'Caret';
}
export interface InkAnnotationData extends TextAnnotationData {
    subtype: 'Ink';
    inkLists: number[][];
}
export interface PopupAnnotationData extends TextAnnotationData {
    subtype: 'Popup';
}
export interface FileAttachmentAnnotationData extends TextAnnotationData {
    subtype: 'FileAttachment';
    file: {
        filename: string;
        content?: Uint8Array | null;
    };
}
export interface SoundAnnotationData extends TextAnnotationData {
    subtype: 'Sound';
}
export interface MovieAnnotationData extends TextAnnotationData {
    subtype: 'Movie';
}
export interface WidgetAnnotationData extends AnnotationData {
    subtype: 'Widget';
    fieldType: 'Tx' | 'Ch' | 'Btn';
    fieldName: string;
    defaultFieldValue?: string;
    fieldValue?: string;
    alternativeText?: string;
    textPosition?: [number, number];
}
export interface TextWidgetAnnotationData extends WidgetAnnotationData {
    fieldType: 'Tx';
    maxLen?: number;
}
export interface ChoiceWidgetAnnotationData extends WidgetAnnotationData {
    fieldType: 'Ch';
    options?: {
        exportValue: string;
        displayValue: string;
    }[];
}
export interface ButtonWidgetAnnotationData extends WidgetAnnotationData {
    fieldType: 'Btn';
}
export interface ScreenAnnotationData extends AnnotationData {
    subtype: 'Screen';
}
export interface PrinterMarkAnnotationData extends AnnotationData {
    subtype: 'PrinterMark';
}
export interface TrapNetAnnotationData extends AnnotationData {
    subtype: 'TrapNet';
}
export interface WatermarkAnnotationData extends AnnotationData {
    subtype: 'Watermark';
}
export interface ThreeDAnnotationData extends AnnotationData {
    subtype: '3D';
}
export interface RedactAnnotationData extends AnnotationData {
    subtype: 'Redact';
}
export declare function isTextAnnotation(annotation: AnnotationData): annotation is TextAnnotationData;
export declare function isLinkAnnotation(annotation: AnnotationData): annotation is LinkAnnotationData;
export declare function isFreeTextAnnotation(annotation: AnnotationData): annotation is FreeTextAnnotationData;
export declare function isLineAnnotation(annotation: AnnotationData): annotation is LineAnnotationData;
export declare function isSquareAnnotation(annotation: AnnotationData): annotation is SquareAnnotationData;
export declare function isCircleAnnotation(annotation: AnnotationData): annotation is CircleAnnotationData;
export declare function isPolygonAnnotation(annotation: AnnotationData): annotation is PolygonAnnotationData;
export declare function isPolylineAnnotation(annotation: AnnotationData): annotation is PolylineAnnotationData;
export declare function isHighlightAnnotation(annotation: AnnotationData): annotation is HighlightAnnotationData;
export declare function isUnderlineAnnotation(annotation: AnnotationData): annotation is UnderlineAnnotationData;
export declare function isSquigglyAnnotation(annotation: AnnotationData): annotation is SquigglyAnnotationData;
export declare function isStrikeOutAnnotation(annotation: AnnotationData): annotation is StrikeOutAnnotationData;
export declare function isStampAnnotation(annotation: AnnotationData): annotation is StampAnnotationData;
export declare function isCaretAnnotation(annotation: AnnotationData): annotation is CaretAnnotationData;
export declare function isInkAnnotation(annotation: AnnotationData): annotation is InkAnnotationData;
export declare function isPopupAnnotation(annotation: AnnotationData): annotation is PopupAnnotationData;
export declare function isFileAttachmentAnnotation(annotation: AnnotationData): annotation is FileAttachmentAnnotationData;
export declare function isSoundAnnotation(annotation: AnnotationData): annotation is SoundAnnotationData;
export declare function isMovieAnnotation(annotation: AnnotationData): annotation is MovieAnnotationData;
export declare function isWidgetAnnotation(annotation: AnnotationData): annotation is WidgetAnnotationData;
export declare function isTextWidgetAnnotation(annotation: AnnotationData): annotation is TextWidgetAnnotationData;
export declare function isChoiceWidgetAnnotation(annotation: AnnotationData): annotation is ChoiceWidgetAnnotationData;
export declare function isButtonWidgetAnnotation(annotation: AnnotationData): annotation is ButtonWidgetAnnotationData;
export declare function isScreenAnnotation(annotation: AnnotationData): annotation is ScreenAnnotationData;
export declare function isPrinterMarkAnnotation(annotation: AnnotationData): annotation is PrinterMarkAnnotationData;
export declare function isTrapNetAnnotation(annotation: AnnotationData): annotation is TrapNetAnnotationData;
export declare function isWatermarkAnnotation(annotation: AnnotationData): annotation is WatermarkAnnotationData;
export declare function isThreeDAnnotation(annotation: AnnotationData): annotation is ThreeDAnnotationData;
export declare function isRedactAnnotation(annotation: AnnotationData): annotation is RedactAnnotationData;
export {};
