/// <reference types="node" />
import { FilesAdapter } from '../adapters/files.adapter';
import { FileModel } from '../model/file-model';
import { ContextBlock } from '../model/rules.model';
import { PassThrough } from 'stream';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { SecurityController } from './security.controller';
export declare class StorageController {
    constructor(files: FilesAdapter, securityController: SecurityController, configAdapter: BFastDatabaseOptions);
    private static getSource;
    save(fileModel: FileModel, context: ContextBlock): Promise<string>;
    isFileStreamable(req: any, filesController: FilesAdapter): boolean;
    getFileData(request: any, response: any, thumbnail?: boolean): void;
    _getFileData(filename: any, contentType: any, request: any, response: any): void;
    listFiles(data: {
        prefix: string;
        size: number;
        skip: number;
        after: string;
    }): Promise<any[]>;
    saveFromBuffer(fileModel: {
        filename: string;
        data: PassThrough;
        type: string;
    }, context: ContextBlock): Promise<string>;
    delete(data: {
        filename: string;
    }, context: ContextBlock): Promise<string>;
    isS3(): boolean;
    handleGetFileBySignedUrl(request: any, response: any, thumbnail?: boolean): void;
}
