/// <reference types="node" />
import fsSystem from 'fs';
export declare class Utils {
    private buckets;
    private rootFolder;
    private metadata;
    private trash;
    private backup;
    constructor(buckets: Function | null, rootFolder: string, metadata: string, trash: string);
    setRootFolder(folder: string): this;
    setMetaData(meta: string): this;
    safelyParseJSON: (v: string) => any;
    removeDir: (path: string) => Promise<void>;
    remove(path: string, { delayMs }?: {
        delayMs?: number;
    }): void;
    trashed({ path, bucket }: {
        path: string;
        bucket: string;
    }): Promise<void>;
    normalizeFolder(folder: string): string;
    normalizeDirectory({ bucket, folder }: {
        bucket: string;
        folder?: string | null;
    }): string;
    normalizePath({ directory, path, full }: {
        directory?: string | null;
        path: string;
        full?: boolean;
    }): string;
    makeStream({ bucket, filePath, range, download }: {
        bucket: string;
        filePath: string;
        range?: string;
        download: boolean;
    }): Promise<{
        stream: fsSystem.ReadStream;
        header: {
            'Content-Length': number;
            'Content-Type': string;
        };
        set: (res: any) => void;
    }>;
    private _getContentType;
    getMetadata: (bucket: string) => Promise<any>;
    trashedWithFolder({ path, bucket }: {
        path: string;
        bucket: string;
    }): Promise<void>;
    fileExists(path: string): Promise<boolean>;
    removeOldDirInTrash: (bucket: string) => Promise<void>;
    syncMetadata: (syncBuckets?: string) => Promise<void>;
    files(dir: string, { ignore }?: {
        ignore?: string | null;
    }): Promise<never[]>;
    fileStructure: (dirPath: string, { includeFiles, bucket }: {
        includeFiles?: boolean | undefined;
        bucket: string;
    }) => Promise<any[]>;
}
