UNPKG

pancake-client-sdk

Version:
104 lines (103 loc) 2.65 kB
import { Media, MediaFolder, CreateFolderRequest, UploadRequest, ImageProcessingOptions, MediaListParams, MediaStats, BulkMediaOperation, BulkOperationResult, MediaScanResult } from '../types/media'; import { BaseResource } from './base'; export declare class MediaResource extends BaseResource { /** * Get list of media files */ list(params?: MediaListParams): Promise<{ data: Media[]; }>; /** * Get media by ID */ getById(mediaId: string): Promise<Media>; /** * Upload file */ upload(data: UploadRequest): Promise<Media>; /** * Delete media */ delete(mediaId: string): Promise<void>; /** * Update media */ update(mediaId: string, data: { name?: string; folder_id?: string; tags?: string[]; metadata?: Record<string, any>; }): Promise<Media>; /** * Process image */ processImage(mediaId: string, options: ImageProcessingOptions): Promise<Media>; /** * List folders */ listFolders(): Promise<{ data: MediaFolder[]; }>; /** * Create folder */ createFolder(data: CreateFolderRequest): Promise<MediaFolder>; /** * Update folder */ updateFolder(folderId: string, data: { name: string; }): Promise<MediaFolder>; /** * Delete folder */ deleteFolder(folderId: string, recursive?: boolean): Promise<void>; /** * Get media statistics */ getStats(): Promise<MediaStats>; /** * Bulk operation on media files */ bulkOperation(operation: BulkMediaOperation): Promise<BulkOperationResult>; /** * Get upload URL for direct upload */ getUploadUrl(data: { filename: string; content_type: string; size: number; }): Promise<{ upload_url: string; expires_at: string; fields?: Record<string, string>; }>; /** * Scan media for viruses/malware */ scanMedia(mediaId: string): Promise<MediaScanResult>; /** * Generate thumbnail */ generateThumbnail(mediaId: string, options?: { width?: number; height?: number; format?: 'jpeg' | 'png' | 'webp'; }): Promise<Media>; /** * Get media download URL */ getDownloadUrl(mediaId: string, options?: { expires_in?: number; filename?: string; }): Promise<{ download_url: string; expires_at: string; }>; /** * Search media */ search(query: string, params?: Omit<MediaListParams, 'search'>): Promise<{ data: Media[]; }>; }