export interface S3Config {
    accessKeyId: string;
    secretAccessKey: string;
    region: string;
    bucketName: string;
    endpoint?: string;
}
export interface UploadResult {
    url: string;
    key: string;
    etag?: string;
}
export declare class AWSS3Storage {
    private config;
    constructor(config: S3Config);
    uploadImage(imageData: string | Buffer, filename: string, contentType?: string): Promise<UploadResult>;
    uploadMultipleImages(images: {
        data: string | Buffer;
        filename: string;
        contentType?: string;
    }[]): Promise<UploadResult[]>;
    private generateImageKey;
    private uploadToS3;
    private generateAuthHeader;
    private calculateSignature;
    private hmacSha256;
    private sha256;
    testConnection(): Promise<boolean>;
    private deleteObject;
}
//# sourceMappingURL=aws-s3-storage.d.ts.map