import { OnModuleInit } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { StorageProvider } from '../entities/file.entity'; export interface PresignedUrlOptions { bucket: string; key: string; contentType: string; contentLength: number; expiresIn?: number; metadata?: Record; } export interface PresignedUrlResult { url: string; expiresAt: Date; } export declare class S3Provider implements OnModuleInit { private configService; private readonly logger; private client; private bucket; private provider; private configured; constructor(configService: ConfigService); onModuleInit(): void; isConfigured(): boolean; getBucket(): string; getProvider(): StorageProvider; getUploadUrl(options: PresignedUrlOptions): Promise; getDownloadUrl(key: string, expiresIn?: number): Promise; deleteObject(key: string): Promise; headObject(key: string): Promise<{ contentLength: number; contentType: string; } | null>; generatePath(tenantId: string, folder: string, uploadId: string, filename: string): string; }