pancake-client-sdk
Version:
Official TypeScript SDK for Pancake POS API
104 lines (103 loc) • 2.65 kB
TypeScript
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[];
}>;
}