///
import { StreamableFile } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { FileDto } from './dto';
import { StorageAdapter } from './adapters';
import { StorageModuleOptions } from './storage.module';
import { FileProps } from './decorators';
import { FileMetadata, FileMetaService } from './file-meta';
import { AuthUser } from '../auth';
type AccessMeta = {
allowed: boolean;
meta: FileMetadata;
};
type StoredFile = {
fileName: string;
metaId?: string | number;
};
export declare class FileManager {
private storageModuleOptions;
private fileMetaService;
private storageAdapter;
private configService;
private readonly logger;
private readonly dirname;
private readonly tempDirname;
private readonly filesDirPattern;
private readonly filesNamePattern;
constructor(storageModuleOptions: StorageModuleOptions, fileMetaService: FileMetaService, storageAdapter: StorageAdapter, configService: ConfigService);
useWith(sessionManager: any): FileManager;
checkFileAccess(name: string, user: AuthUser): Promise;
storeFile(name: string, data: Buffer, meta?: FileMetadata, transformName?: boolean): Promise;
loadFile(name: string): Promise;
fileExists(name: string): Promise;
streamFile(name: string, start?: number, end?: number): Promise;
deleteFile(name: string): Promise;
moveFromTemp(name: string, meta?: FileMetadata, transformName?: boolean): Promise;
updateFilesMetaResourceIds(fileNames: string[], id: string | number): Promise;
deleteFileArray(fileNames: string[]): Promise;
deleteFiles(fileProps: Record, currentModel: any, newModel?: any): Promise;
getFilesToDelete(fileProps: Record, currentModel: any, newModel?: any): string[];
persistFile(file: FileDto, isUpdate?: boolean, meta?: FileMetadata): Promise;
persistFiles(fileProps: Record, newModel: any, currentModel?: any, isFileUpload?: boolean): Promise;
private directoryName;
private fileName;
private setFileMetaService;
}
export {};