/// <reference types="node" />
import { PassThrough } from 'stream';
import { BFastDatabaseOptions } from '../bfast-database.option';
export declare abstract class FilesAdapter {
    canHandleFileStream: boolean;
    isS3: boolean;
    abstract createFile(filename: string, data: PassThrough, contentType: string, options: any): Promise<string>;
    abstract deleteFile(filename: string): Promise<any>;
    abstract getFileData<T>(filename: string, asStream: boolean): Promise<T>;
    abstract getFileLocation(filename: string, config: BFastDatabaseOptions): Promise<string>;
    abstract handleFileStream(filename: any, request: any, response: any, contentType: any): any;
    abstract signedUrl(filename: string): Promise<string>;
    abstract listFiles(query: {
        prefix: string;
        size: number;
        skip: number;
        after: string;
    }): Promise<any>;
    abstract validateFilename(filename: string): Promise<any>;
}
