import { ViewMode, ZoomLevel } from './utils/enumerators';
import type { ClassValue } from 'clsx';
export declare function cn(...inputs: ClassValue[]): string;
export declare function formatNumber(value?: string): string;
export declare function formatFileSize(bytes: number, decimalPoint?: number): string;
export declare function generateUniqueCSSClassName(): string;
export declare const attachWatermarkShadowDOM: (rootViewer: HTMLDivElement) => HTMLDivElement;
export declare const formatDate: (date: string) => string;
export declare const formatCommentTimestamp: (date: string | Date) => string;
/**
 * Calculate scale for ZoomLevel presets based on container and page dimensions.
 * Handles dual page modes by doubling effective page width.
 *
 * @param container - The container element
 * @param pageHeight - Height of a single page
 * @param pageWidth - Width of a single page
 * @param scale - ZoomLevel preset (ActualSize, PageFit, PageWidth)
 * @param viewMode - Current view mode
 * @param numPages - Total number of pages in document
 * @returns Calculated scale value
 */
export declare function calculateScale(container: HTMLElement, pageHeight: number, pageWidth: number, scale: ZoomLevel, viewMode: ViewMode, numPages: number): number;
export declare const getTodayPdfDate: () => string;
export declare const getPdfDate: (date: string | Date) => string | Date;
export declare const cssTextToObject: (cssText: string) => Record<string, string>;
export declare function rectBoundingBox(x0: number, y0: number, x1: number, y1: number, minMax: number[]): void;
export declare function MathClamp(v: number, min: number, max: number): number;
/**
 * Recursively removes 'bitmap' properties from annotation storage.
 * Supports both Map and plain object storage.
 * Call this before printing or saving!
 */
export declare function sanitizeAnnotationStorage(storage: any): any;
