/// <reference types="node" />
import { FilesAdapter } from '../adapters/files.adapter';
import { FileModel } from '../model/file-model';
import { ContextBlock } from '../model/rules.model';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { DatabaseAdapter } from "../adapters/database.adapter";
import { SecurityController } from "./security.controller";
import { Request, Response } from 'express';
export declare class StorageController {
    constructor();
    private static getSource;
    save(fileModel: FileModel, _: ContextBlock, filesAdapter: FilesAdapter, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<string>;
    checkStreamCapability(req: Request, filesController: FilesAdapter): boolean;
    handleGetFileRequest(request: Request, response: Response, thumbnail: boolean, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): void;
    getFileData(name: any, contentType: any, request: any, response: any, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): void;
    listFiles(data: {
        prefix: string;
        size: number;
        skip: number;
        after: string;
    }, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): Promise<any[]>;
    saveFromBuffer(fileModel: {
        data: Buffer;
        name: string;
        type: string;
        size: number;
    }, context: ContextBlock, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, securityController: SecurityController, options: BFastDatabaseOptions): Promise<string>;
    delete(data: {
        name: string;
    }, _: ContextBlock, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): Promise<string>;
    isS3(filesAdapter: FilesAdapter): boolean;
    handleGetFileBySignedUrl(request: any, response: any, thumbnail: any, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): void;
    fileInfo(request: Request, response: Response, databaseAdapter: DatabaseAdapter, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): void;
}
