import { CdmLogger } from '@cdm-logger/core'; import { AwsS3Config, AwsS3UploadedFileResponse, IAwsS3Service } from '@container-stack/file-info-core'; import { IGenerateKeyOptions, IIImageUploadOptions as IImageUploadOptions, IUploadFile as File, IFileImageFilter } from 'common/server'; export declare class AWSS3Service implements IAwsS3Service { private s3; private logger; static readonly directoryName = "uploads"; private readonly config; constructor(config: AwsS3Config, logger: CdmLogger.ILogger); get basePath(): string; private static generateKey; createSignedUrl(options: IGenerateKeyOptions): Promise; /** * Parse S3 URL to extract bucket and key * Supports multiple formats: * - https://bucket.s3.region.amazonaws.com/key * - https://s3.region.amazonaws.com/bucket/key * - s3://bucket/key */ parseS3Url(url: string): { bucket: string; key: string; } | null; /** * Create a pre-signed URL for downloading/reading a file from S3 * @param s3KeyOrUrl - Either an S3 key (for default bucket) or full S3 URL * @param expiresIn - URL expiration time in seconds (default: 300 = 5 minutes) * @param bucketName - Optional bucket name (if not using full URL) * @returns Pre-signed URL for downloading the file */ createDownloadSignedUrl(s3KeyOrUrl: string, expiresIn?: number, bucketName?: string): Promise; private createUploadStream; getKeyFromUrl(url: string): string; deleteFile(url: string): Promise; uploadFile(file: File, options: IImageUploadOptions): Promise; static getKeyFromEncodedUrl(url: string): string; generateImageHandlerURL(imageKey: string, filters: IFileImageFilter): string; getProcessedFile(url: string, edits: Record): string; getKeyFromResizedUrl(url: string): string; } //# sourceMappingURL=aws-s3-service.d.ts.map