import type { IconName } from '../../icon-components/index.js';
import type { PreviewStatus, PreviewType } from './types.js';
export declare const MESSAGES: {
    success: string;
    error: string;
    preview: string;
};
export declare const formatBytes: (bytes?: number, decimals?: number, binaryUnits?: boolean) => string;
export declare function getExtensionsFromMimeTypes(mimeTypes?: string[]): string[];
export declare const getIconKey: (mimeType: string) => IconName;
export declare const validatePdfHeader: (file: File) => Promise<boolean>;
export declare const validateImageHeader: (file: File) => Promise<unknown>;
export declare const validateAudio: (file: File) => Promise<boolean>;
export declare const validateVideo: (file: File) => Promise<boolean>;
export declare const detectPreviewType: (file?: File | string) => "pdf" | "image" | "audio" | "video" | undefined;
export declare const isCorruptedFile: (file: File | string) => Promise<boolean>;
export declare const getPreviewComponentFromError: (error: unknown) => "corrupted_file" | "unsupported_file" | null;
export declare const previewSizeStyles: {
    pdf: {
        width: string;
        height: string;
    };
    video: {
        width: string;
        height: string;
    };
    image: {
        width: string;
        height: string;
    };
    audio: {
        width: string;
        height: string;
    };
    unsupported_file: {
        width: string;
        height: string;
    };
};
export declare const validateFileForPreview: (file?: File | string) => Promise<"success" | undefined>;
export declare const getIconLoading: (type: PreviewType) => IconName;
export declare const getBrokenFileIcon: (type: PreviewType) => IconName;
export declare const getContainerDimensions: (status: PreviewStatus, typePreview?: PreviewType) => string;
/**
 * Normalizes an input (File or Data URL) to a File object.
 * @param input - The value to normalize.
 * @returns A File object or null if the conversion fails.
 */
export declare const normalizeToFile: (input: File | string | null | undefined) => File | null;
/**
 * Converts a File object to a Base64 string.
 * @param file - The file to convert.
 * @returns A promise that resolves with the Base64 string.
 */
export declare const fileToBase64: (file: File) => Promise<unknown>;
export declare const isFile: (value: File | string) => value is File;
/**
 * Validates if a string is in valid Base64 format.
 *
 * This function checks if the provided string conforms to the Base64 encoding standard
 * (RFC 4648). It handles both raw Base64 strings and Data URLs (data:type/subtype;base64,data).
 *
 * @param str - The string to validate
 * @returns `true` if the string is valid Base64, `false` otherwise
 *
 * @example
 * ```typescript
 * isBase64('SGVsbG8gV29ybGQ=') // true - valid base64
 * isBase64('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...') // true - data URL
 * isBase64('Hello World') // false - not base64
 * isBase64('SGVsbG8gV29ybGQ===') // false - invalid padding
 * isBase64('') // false - empty string
 * ```
 *
 */
export declare const isBase64: (str: string) => boolean;
export declare const getMimeTypeFromBase64: (base64: string) => string | null;
export declare const getBase64Size: (base64: string) => number;
export declare const getMimeType: (value: File | string) => string | null;
/**
 * Gets the size of a value (File or base64).
 * @param value - The value to analyze.
 * @returns The size in bytes.
 */
export declare const getFileSize: (value: File | string) => number;
export declare const dataUrlToFile: (dataUrl: string) => File | null;
//# sourceMappingURL=utils.d.ts.map