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