/** * Core type definitions for romm-uploader */ /** CLI configuration options */ export interface CliOptions { baseUrl: string; username: string; password?: string; platform?: string; paths: string[]; uploadFiles: string[]; uploadDirs: string[]; globs: string[]; checksum: string[]; cacheEnabled: boolean; cacheMaxMb: number; cachePath?: string; authCacheEnabled: boolean; authCachePath?: string; authReauthSkewSeconds: number; requestTimeoutSeconds: number; retryCount: number; recursive: boolean; dryRun: boolean; concurrency: number; json: boolean; verbose: boolean; listPlatforms: boolean; } /** File information discovered during scanning */ export interface FileInfo { absolutePath: string; size: number; mtime: number; } /** Checksum data for a file */ export interface ChecksumData { crc32: string; md5: string; sha1: string; raHash?: string; } /** ROM lookup result from ROMM */ export interface RomLookupResult { exists: boolean; rom?: RomDetails; } /** ROM details from ROMM API */ export interface RomDetails { id: number; name: string; platformId: number; platformSlug: string; fileName: string; fileSize: number; crcHash?: string; md5Hash?: string; sha1Hash?: string; raHash?: string; } /** Platform information from ROMM */ export interface Platform { id: number; slug: string; fsSlug: string; name: string; customName?: string; } /** Authentication token cache entry */ export interface AuthTokenCache { accessToken: string; tokenType: string; expiresAtEpochMs: number; issuedAtEpochMs: number; } /** Checksum cache entry */ export interface ChecksumCacheEntry { path: string; size: number; mtime: number; checksums: ChecksumData; } /** Per-file processing result */ export interface FileResult { path: string; status: 'skipped_exists' | 'uploaded' | 'failed' | 'pending'; checksums?: ChecksumData; error?: string; } /** Final run summary */ export interface RunSummary { totalScanned: number; alreadyExisting: number; uploaded: number; failed: number; elapsedMs: number; } //# sourceMappingURL=types.d.ts.map