@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
90 lines • 3.47 kB
TypeScript
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