/// <reference types="node" />
import { FilesAdapter } from '../adapters/files';
import { BFastOptions } from '../bfast-option';
import { Buffer } from "buffer";
import { Storage } from "../models/storage";
import { Request, Response } from "express";
import { ReadableStream } from "stream/web";
export declare class IpfsStorageFactory implements FilesAdapter {
    private domain;
    canHandleFileStream: boolean;
    isS3: boolean;
    createFile(name: string, size: number, data: Buffer, contentType: string, pN: boolean, options: BFastOptions): Promise<Storage<any>>;
    deleteFile(id: string, options: BFastOptions): Promise<any>;
    fileInfo(id: string, options: BFastOptions): Promise<Storage<any>>;
    getFileLocation(id: string, configAdapter: BFastOptions): Promise<string>;
    handleFileStream(id: string, req: Request, res: Response, contentType: string, options: BFastOptions): Promise<any>;
    listFiles(query: {
        prefix: string;
        size: number;
        skip: number;
    }, options: BFastOptions): Promise<any[]>;
    validateFilename(name: string): string;
    signedUrl(id: string, options: BFastOptions): Promise<string>;
    private _saveFile;
    init(options: BFastOptions): Promise<void>;
    getFileBuffer(file: Storage<any>, options: BFastOptions): Promise<Buffer>;
    getFileStream(file: Storage<any>, options: BFastOptions): Promise<ReadableStream>;
}
