UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

90 lines 3.47 kB
import { StorageConfig, Document } from "../contexts/ChatbotContext"; export interface FileMetadata { originalName: string; size: number; type: string; uploadedAt: Date; description?: string; tags?: string[]; extractedText?: string; processingStatus: "pending" | "processing" | "completed" | "failed"; } export interface StorageUploadProgress { fileId: string; progress: number; status: "uploading" | "processing" | "completed" | "failed"; error?: string; } export interface UploadOptions { description?: string; tags?: string[]; extractText?: boolean; overwrite?: boolean; } export declare abstract class BaseStorage { protected config: StorageConfig; protected isConnected: boolean; constructor(config: StorageConfig); abstract connect(): Promise<void>; abstract disconnect(): Promise<void>; abstract uploadFile(file: File, options?: UploadOptions): Promise<Document>; abstract downloadFile(documentId: string): Promise<Blob>; abstract deleteFile(documentId: string): Promise<void>; abstract listFiles(): Promise<Document[]>; abstract getFileMetadata(documentId: string): Promise<FileMetadata>; abstract healthCheck(): Promise<boolean>; getStatus(): { isConnected: boolean; config: StorageConfig; }; updateConfig(updates: Partial<StorageConfig>): void; } export declare class SupabaseStorage extends BaseStorage { private client; private progressCallbacks; constructor(config: StorageConfig); connect(): Promise<void>; disconnect(): Promise<void>; uploadFile(file: File, options?: UploadOptions): Promise<Document>; downloadFile(documentId: string): Promise<Blob>; deleteFile(documentId: string): Promise<void>; listFiles(): Promise<Document[]>; getFileMetadata(documentId: string): Promise<FileMetadata>; healthCheck(): Promise<boolean>; setProgressCallback(fileId: string, callback: (progress: StorageUploadProgress) => void): void; removeProgressCallback(fileId: string): void; private updateProgress; private validateFile; private extractTextFromFile; } export declare class LocalStorage extends BaseStorage { private files; connect(): Promise<void>; disconnect(): Promise<void>; uploadFile(file: File, options?: UploadOptions): Promise<Document>; downloadFile(documentId: string): Promise<Blob>; deleteFile(documentId: string): Promise<void>; listFiles(): Promise<Document[]>; getFileMetadata(documentId: string): Promise<FileMetadata>; healthCheck(): Promise<boolean>; private validateFile; } export declare function createStorage(config: StorageConfig): BaseStorage; export declare class StorageUtils { static validateConfig(config: StorageConfig): boolean; static getDefaultConfig(): Partial<StorageConfig>; static formatFileSize(bytes: number): string; static getFileExtension(filename: string): string; static generateUniqueFileName(originalName: string): string; static isTextFile(mimeType: string): boolean; static isSupportedFileType(mimeType: string, allowedTypes?: string[]): boolean; } declare const _default: { BaseStorage: typeof BaseStorage; SupabaseStorage: typeof SupabaseStorage; LocalStorage: typeof LocalStorage; createStorage: typeof createStorage; StorageUtils: typeof StorageUtils; }; export default _default; //# sourceMappingURL=storageService.d.ts.map