--- /dev/null
+/// <reference types="node" />\r
+import * as fs from 'fs';\r
+import { FilterFunction } from '@mrmlnc/readdir-enhanced';\r
+import { IOptions } from '../managers/options';\r
+import { Entry } from '../types/entries';\r
+import { Pattern } from '../types/patterns';\r
+export default abstract class FileSystem<T> {\r
+ private readonly options;\r
+ constructor(options: IOptions);\r
+ /**\r
+ * The main logic of reading the entries that must be implemented by each adapter.\r
+ */\r
+ abstract read(filepaths: string[], filter: FilterFunction): T;\r
+ /**\r
+ * Return full path to entry.\r
+ */\r
+ getFullEntryPath(filepath: string): string;\r
+ /**\r
+ * Return an implementation of the Entry interface.\r
+ */\r
+ makeEntry(stat: fs.Stats, pattern: Pattern): Entry;\r
+}\r