import { FILE_TRANSFER_ACTIONS, FILE_TRANSFER_STATUS } from "../constants"; export type FileTransferAction = (typeof FILE_TRANSFER_ACTIONS)[keyof typeof FILE_TRANSFER_ACTIONS]; export type FileTransferStatus = (typeof FILE_TRANSFER_STATUS)[keyof typeof FILE_TRANSFER_STATUS]; export interface FileMetadata { id: string; name: string; size: number; type: string; lastModified: number; hash?: string; encrypted?: boolean; encryptionKey?: string; } export interface FileTransferChunk { chunkId: string; fileId: string; chunkIndex: number; totalChunks: number; data: ArrayBuffer; iv?: ArrayBuffer; size: number; } export interface FileTransferRequest { fileId: string; metadata: FileMetadata; chunkSize?: number; } export interface FileTransferResponse { fileId: string; status: FileTransferStatus; progress?: number; error?: string; transferredBytes?: number; totalBytes?: number; } export interface FileTransferMessage { action: FileTransferAction; value: FileTransferRequest | FileTransferChunk | FileTransferResponse; }