import { ReactElement, RefObject } from 'react';
/**
 * Validates if a file matches the accept patterns
 * Supports MIME types (e.g., "image/*", "image/png", "application/pdf")
 * and file extensions (e.g., ".pdf", ".doc", ".jpg")
 */
export declare function validateFileAccept(file: File, accept: string): boolean;
/**
 * Validates if a file size is within the allowed range
 * @param file - The file to validate
 * @param minFileSize - Minimum file size in bytes
 * @param maxFileSize - Maximum file size in bytes
 * @param locale - Locale code for error messages. Defaults to browser locale or 'en'
 * @returns Object with validation result and error message if invalid
 */
export declare function validateFileSize(file: File, minFileSize?: number, maxFileSize?: number, locale?: string): {
    valid: boolean;
    error?: string;
};
/**
 * Formats file size in bytes to human-readable format
 * @param bytes - File size in bytes
 * @param locale - Locale code (e.g., 'en', 'fr'). Defaults to browser locale or 'en'
 * @returns Formatted file size string with appropriate unit
 */
export declare function formatFileSize(bytes: number, locale?: string): string;
/**
 * Returns the appropriate icon component based on the file type
 * @param file - The file to get the icon for
 * @returns React element representing the icon component
 */
export declare function getFileIcon(file: File): ReactElement;
/**
 * Finds the first focusable element from a list of candidates
 * Falls back to inputRef if no other element is focusable
 * @param candidates - Array of candidate elements to check
 * @param inputRef - Input element to use as last resort
 * @returns The first focusable element, or null if none found
 */
export declare function findFocusableElement(candidates: (HTMLElement | null)[], inputRef: RefObject<HTMLInputElement | null>): HTMLElement | null;
