///
import { PutObjectCommandOutput } from '@aws-sdk/client-s3';
export interface IFilePath {
path: string;
name: string;
}
export declare abstract class StorageService {
abstract getSignedUrl(key: string, contentType: string): Promise<{
signedUrl: string;
path: string;
additionalHeaders?: Record;
}>;
abstract uploadFile(key: string, file: Buffer, contentType: string): Promise;
abstract getFile(key: string): Promise;
abstract deleteFile(key: string): Promise;
}
export declare class S3StorageService implements StorageService {
private s3;
uploadFile(key: string, file: Buffer, contentType: string): Promise;
getFile(key: string): Promise;
deleteFile(key: string): Promise;
getSignedUrl(key: string, contentType: string): Promise<{
signedUrl: string;
path: string;
}>;
}
export declare class GCSStorageService implements StorageService {
private gcs;
uploadFile(key: string, file: Buffer, contentType: string): Promise;
getFile(key: string): Promise;
deleteFile(key: string): Promise;
getSignedUrl(key: string, contentType: string): Promise<{
signedUrl: string;
path: string;
}>;
}
export declare class AzureBlobStorageService implements StorageService {
private sharedKeyCredential;
private blobServiceClient;
uploadFile(key: string, file: Buffer, contentType: string): Promise;
getFile(key: string): Promise;
deleteFile(key: string): Promise;
getSignedUrl(key: string, contentType: string): Promise<{
signedUrl: string;
path: string;
additionalHeaders: {
'x-ms-blob-type': string;
};
}>;
}
//# sourceMappingURL=storage.service.d.ts.map