import { ConfigService } from "@nestjs/config";
import { FieldMetadata } from "../../entities/field-metadata.entity";
import { Media } from "../../entities/media.entity";
import { MediaStorageProvider } from "../../interfaces";
import { MediaRepository } from "../../repository/media.repository";
import { DiskFileService } from "../../services/file";
import { Readable } from "stream";
import { SettingService } from "../setting.service";
export declare class FileStorageProvider<T> implements MediaStorageProvider<T> {
    private readonly configService;
    readonly fileService: DiskFileService;
    readonly mediaRepository: MediaRepository;
    private readonly settingService;
    private logger;
    constructor(configService: ConfigService, fileService: DiskFileService, mediaRepository: MediaRepository, settingService: SettingService);
    retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;
    store(files: Express.Multer.File[], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;
    storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]>;
    delete(entity: T, mediaFieldMetadata: FieldMetadata): Promise<void>;
    deleteByMediaRecord(media: Media): Promise<void>;
    private getFullFilePath;
    private getFileName;
}
//# sourceMappingURL=file-storage-provider.d.ts.map