/// <reference types="node" />
import { FilesAdapter } from '../adapters/files.adapter';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { DatabaseAdapter } from "../adapters/database.adapter";
export declare class IpfsStorageFactory implements FilesAdapter {
    private domain;
    private readonly ipfsFactory;
    constructor();
    canHandleFileStream: boolean;
    isS3: boolean;
    createFile(name: string, size: number, data: Buffer, contentType: any, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<string>;
    deleteFile(name: string, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<any>;
    fileInfo(name: string, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<{
        name: string;
        size: number;
    }>;
    getFileData(name: string, asStream: any, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<{
        size: number;
        data: Buffer | ReadableStream;
        type: string;
    }>;
    getFileLocation(name: string, configAdapter: BFastDatabaseOptions): Promise<string>;
    handleFileStream(name: string, req: any, res: any, contentType: any, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<any>;
    listFiles(query: {
        prefix: string;
        size: number;
        skip: number;
    }, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<any[]>;
    validateFilename(name: string): Promise<void>;
    signedUrl(name: string, options: BFastDatabaseOptions): Promise<string>;
    private _saveFile;
    private static sanitize4Saving;
    private static sanitize4User;
    init(options: BFastDatabaseOptions): Promise<void>;
}
