--- /dev/null
+import micromatch = require('micromatch');\r
+import { IOptions } from '../../managers/options';\r
+import { FilterFunction } from '@mrmlnc/readdir-enhanced';\r
+import { Pattern } from '../../types/patterns';\r
+export default class EntryFilter {\r
+ private readonly options;\r
+ private readonly micromatchOptions;\r
+ readonly index: Map<string, undefined>;\r
+ constructor(options: IOptions, micromatchOptions: micromatch.Options);\r
+ /**\r
+ * Returns filter for directories.\r
+ */\r
+ getFilter(positive: Pattern[], negative: Pattern[]): FilterFunction;\r
+ /**\r
+ * Returns true if entry must be added to result.\r
+ */\r
+ private filter;\r
+ /**\r
+ * Return true if the entry already has in the cross reader index.\r
+ */\r
+ private isDuplicateEntry;\r
+ /**\r
+ * Create record in the cross reader index.\r
+ */\r
+ private createIndexRecord;\r
+ /**\r
+ * Returns true for non-files if the «onlyFiles» option is enabled.\r
+ */\r
+ private onlyFileFilter;\r
+ /**\r
+ * Returns true for non-directories if the «onlyDirectories» option is enabled.\r
+ */\r
+ private onlyDirectoryFilter;\r
+ /**\r
+ * Return true when `absolute` option is enabled and matched to the negative patterns.\r
+ */\r
+ private isSkippedByAbsoluteNegativePatterns;\r
+ /**\r
+ * Return true when entry match to provided patterns.\r
+ *\r
+ * First, just trying to apply patterns to the path.\r
+ * Second, trying to apply patterns to the path with final slash (need to micromatch to support «directory/**» patterns).\r
+ */\r
+ private isMatchToPatterns;\r
+}\r