import { Readable } from "stream"; type UploadFile = { fileName: string; fileType: string; data: Readable | string; }; type UploadWithSignedUrl = UploadFile & { expiresInSeconds: number; }; export interface StorageService { uploadFile(params: UploadFile): Promise; uploadWithSignedUrl(params: UploadWithSignedUrl): Promise<{ signedUrl: string; }>; uploadJson(path: string, body: Record[]): Promise; download(path: string): Promise; listFiles(prefix: string): Promise<{ file: string; createdAt: Date; }[]>; getSignedUrl(fileName: string, // eslint-disable-line no-unused-vars ttlSeconds: number, // eslint-disable-line no-unused-vars asAttachment?: boolean): Promise; getSignedUploadUrl(params: { path: string; ttlSeconds: number; sha256Hash: string; contentType: string; contentLength: number; }): Promise; deleteFiles(paths: string[]): Promise; } export declare class StorageServiceFactory { /** * Get an instance of the StorageService * @param params.accessKeyId - Access key ID * @param params.secretAccessKey - Secret access key * @param params.bucketName - Bucket name to store files * @param params.endpoint - Endpoint - Endpoint to an S3 compatible API (or Azure Blob Storage) * @param params.externalEndpoint - External endpoint to replace the internal endpoint in the signed URL. * @param params.region - Region in which the bucket resides * @param params.forcePathStyle - Add bucket name into the path instead of the domain name. Mainly used for MinIO. * @param params.useAzureBlob - Use Azure Blob Storage instead of S3 * @param params.useGoogleCloudStorage - Use Google Cloud Storage instead of S3 * @param params.googleCloudCredentials - Google Cloud Storage credentials JSON string or path to credentials file * @param params.awsSse - Server-side encryption method (e.g., "aws:kms") * @param params.awsSseKmsKeyId - SSE KMS Key ID when using KMS encryption */ static getInstance(params: { accessKeyId: string | undefined; secretAccessKey: string | undefined; bucketName: string; endpoint: string | undefined; externalEndpoint?: string | undefined; region: string | undefined; forcePathStyle: boolean; useAzureBlob?: boolean; useGoogleCloudStorage?: boolean; googleCloudCredentials?: string; awsSse: string | undefined; awsSseKmsKeyId: string | undefined; }): StorageService; } export {}; //# sourceMappingURL=StorageService.d.ts.map