import { default as React } from 'react'; export type FileKind = 'folder' | 'image' | 'video' | 'audio' | 'pdf' | 'document' | 'text' | 'code' | 'archive' | 'file'; export type FileBrowserView = 'thumbnail' | 'list' | 'details'; export type FileBrowserThumbnailFit = 'cover' | 'contain'; export interface FileBrowserColumn { key: string; header: string; width?: string; align?: 'left' | 'right' | 'center'; render?: (item: FileBrowserItem) => React.ReactNode; } export interface FileBrowserItem { id: string; name: string; kind?: FileKind; subtitle?: string; thumbnailUrl?: string; previewUrl?: string; mimeType?: string; size?: number; modified?: Date | number | string; badge?: React.ReactNode; loading?: boolean; disabled?: boolean; selectable?: boolean; meta?: Record; data?: unknown; } export interface RejectedFile { file: File; reason: 'type' | 'size' | 'count'; } export declare function extensionOf(name: string): string; export declare function inferKind(item: Pick): FileKind; export declare function isPreviewableMedia(kind: FileKind): boolean; export declare function formatFileSize(bytes?: number): string; export declare function formatModified(modified?: Date | number | string): string; export declare function fileMatchesAccept(file: File, accept?: string): boolean; export interface FilterFilesOptions { accept?: string; maxFileSize?: number; maxFiles?: number; existingCount?: number; } export declare function filterFiles(files: File[], { accept, maxFileSize, maxFiles, existingCount }: FilterFilesOptions): { accepted: File[]; rejected: RejectedFile[]; };