UNPKG

pancake-client-sdk

Version:
120 lines (119 loc) 2.74 kB
export interface Media { id: string; name: string; type: MediaType; mime_type: string; size: number; url: string; thumbnail_url?: string; metadata?: MediaMetadata; tags?: string[]; folder_id?: string; created_by: { id: string; name: string; }; created_at: string; updated_at: string; } export type MediaType = 'image' | 'video' | 'document' | 'audio' | 'other'; export interface MediaMetadata { width?: number; height?: number; duration?: number; format?: string; bit_rate?: number; frame_rate?: number; pages?: number; exif?: Record<string, any>; } export interface MediaFolder { id: string; name: string; parent_id?: string; path: string[]; item_count: number; size: number; created_at: string; updated_at: string; } export interface CreateFolderRequest { name: string; parent_id?: string; } export interface UploadRequest { file: File | Blob; folder_id?: string; tags?: string[]; metadata?: Record<string, any>; filename?: string; content_type?: string; } export interface ImageProcessingOptions { width?: number; height?: number; crop?: boolean; quality?: number; format?: 'jpeg' | 'png' | 'webp'; blur?: number; brightness?: number; contrast?: number; grayscale?: boolean; rotate?: number; flip?: 'horizontal' | 'vertical'; watermark?: { text?: string; image_url?: string; position?: 'center' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; opacity?: number; }; } export interface MediaListParams { page_size?: number; page_number?: number; type?: MediaType; folder_id?: string; search?: string; from_date?: string; to_date?: string; order_by?: 'created_at' | 'name' | 'size'; order_direction?: 'asc' | 'desc'; tags?: string[]; } export interface MediaStats { total_files: number; total_size: number; by_type: { [key in MediaType]: { count: number; size: number; }; }; storage_usage: { used: number; total: number; percentage: number; }; } export interface BulkMediaOperation { media_ids: string[]; operation: 'move' | 'delete' | 'tag' | 'untag'; params?: { folder_id?: string; tags?: string[]; }; } export interface BulkOperationResult { success_count: number; failed_count: number; errors?: { media_id: string; error: string; }[]; } export interface MediaScanResult { id: string; status: 'clean' | 'infected' | 'error'; threats?: string[]; scanned_at: string; }