import storageService from "./StorageService.js";
import type { FileData, FileMetadata, InternalUploadedFile } from '../types/index.js';
declare class FilesService {
    protected accountability?: any;
    protected storageService: typeof storageService;
    private itemService;
    private tempDir;
    constructor(params?: {
        accountability?: any;
    });
    /**
     * Coerce metadata values to correct types
     * Form data sends booleans as strings, need to convert them
     */
    private coerceMetadataTypes;
    createOne(fileData: FileData, metadata?: FileMetadata): Promise<string | number>;
    uploadToTemp(file: any): Promise<string>;
    handleFileUpload(tempPath: string, originalFilename: string, storage: string, uniqueid: string | number): Promise<InternalUploadedFile>;
    getFileDetails(file: InternalUploadedFile, tempPath: string, { storage, folder, filename, title, description, type, originalFilename }: FileMetadata): Promise<any>;
    getFileType(filePath: string): Promise<string>;
    readByQuery(query: any): Promise<any>;
    readOne(id: string | number, query?: any, bypassPermissions?: boolean): Promise<any>;
    updateOne(id: string | number, fileData: FileData, metadata?: FileMetadata): Promise<string | number>;
    deleteOne(id: string | number): Promise<string | number>;
    deleteFile(file: any): Promise<void>;
    /**
     * Delete processed/resized versions of an image file.
     * Override in AssetsService for the actual implementation.
     */
    protected deleteProcessedVersions(_file: any): Promise<void>;
    uploadFromUrl(fileUrl: string, metadata?: FileMetadata): Promise<string | number>;
    downloadFile(url: string, outputLocationPath: string): Promise<void>;
}
export default FilesService;
//# sourceMappingURL=FilesService.d.ts.map