export type AnnotationType = 'highlight' | 'underline' | 'note' | 'strikeout' | 'box' | 'circle' | 'draw';
export interface Annotation {
    id: string;
    page: number;
    type: AnnotationType;
    color: string;
    rects: {
        x: number;
        y: number;
        w: number;
        h: number;
    }[];
    path?: {
        x: number;
        y: number;
    }[];
    lineWidth?: number;
    text?: string;
    content?: string;
    author: string;
    createdAt: number;
}
export interface PDFViewerTheme {
    primary?: string;
    accent?: string;
    sidebarBg?: string;
    toolbarBg?: string;
}
export interface PDFViewerProps {
    fileUrl?: string;
    initialPage?: number;
    initialZoom?: number;
    allowUpload?: boolean;
    showToolbar?: boolean;
    showSidebar?: boolean;
    searchEnabled?: boolean;
    theme?: PDFViewerTheme;
    externalAnnotations?: Annotation[];
    annotationsApiUrl?: string;
    annotationLoader?: (fileId: string) => Promise<Annotation[]>;
    onAnnotationChange?: (annotations: Annotation[]) => void;
    onPageChange?: (page: number) => void;
    onLoadSuccess?: (numPages: number) => void;
    onDocumentLoad?: (numPages: number) => void;
    height?: string | number;
    width?: string | number;
    fitPage?: 'width' | 'page';
    className?: string;
}
export interface PDFState {
    currentPage: number;
    numPages: number;
    zoom: number;
    rotation: number;
    fileName: string | null;
    activeTool: 'view' | 'note' | 'highlight' | 'underline' | 'hand' | 'box' | 'circle' | 'draw';
    isSidebarOpen: boolean;
    isDarkMode: boolean;
    viewMode: 'single' | 'double' | 'continuous';
    zoomMode: 'custom' | 'fit-page' | 'fit-width';
    highlightColor: string;
    drawLineWidth: number;
    fileData: ArrayBuffer | null;
}
export declare const INITIAL_STATE: PDFState;
