declare class File {
    _filepath: string;
    _content: any;
    constructor(filepath: string, content?: any);
    name(): string;
    dirname(): string;
    basename(): string;
    append(content: any): this;
    extension(): string;
    path(): string;
    content(): any;
}

declare class Storage {
    _rootDir: string;
    constructor(rootDir?: string);
    list(pattern?: string): Promise<string[]>;
    createDir(dir: string): Promise<void>;
    createDirSync(dir: string): void;
    load(filepath: string): Promise<string>;
    _read(filepath: string): Promise<string>;
    json(filepath: string): Promise<object | object[]>;
    exists(filepath: string): Promise<boolean>;
    existsSync(filepath: string): boolean;
    _write(filepath: string, data?: any): Promise<void>;
    _writeSync(filepath: string, data?: any): void;
    append(filepath: string, data?: string): Promise<void>;
    clear(filepath: string): Promise<void>;
    save(filepath: string, content: any): Promise<void>;
    saveSync(filepath: string, content: any): Promise<void>;
    saveFile(file: File): Promise<void>;
    createStream(filepath: string): Promise<NodeJS.WriteStream>;
    _getAbsFilepath(string: string): string;
}

export { File, Storage };
