/** * Storage Data Provider interface - implement this to connect the storage browser to your backend */ export interface IStorageObject { key: string; size?: number; lastModified?: string; isPrefix?: boolean; } export interface IStorageChangeEvent { type: 'add' | 'modify' | 'delete'; key: string; bucket: string; size?: number; lastModified?: Date; } export interface IStorageDataProvider { listObjects(bucket: string, prefix?: string, delimiter?: string): Promise<{ objects: IStorageObject[]; prefixes: string[] }>; getObject(bucket: string, key: string): Promise<{ content: string; contentType: string; size: number; lastModified: string }>; putObject(bucket: string, key: string, base64Content: string, contentType: string): Promise; deleteObject(bucket: string, key: string): Promise; deletePrefix(bucket: string, prefix: string): Promise; getObjectUrl(bucket: string, key: string): Promise; moveObject(bucket: string, sourceKey: string, destKey: string): Promise<{ success: boolean; error?: string }>; movePrefix(bucket: string, sourcePrefix: string, destPrefix: string): Promise<{ success: boolean; movedCount?: number; error?: string }>; } export interface IColumn { prefix: string; objects: IStorageObject[]; prefixes: string[]; selectedItem: string | null; width: number; }