type Pathname = string interface TestResult { ignored: boolean unignored: boolean } export interface Ignore { /** * Adds a rule rules to the current manager. * @param {string | Ignore} pattern * @returns IgnoreBase */ add(pattern: string | Ignore): this /** * Adds several rules to the current manager. * @param {string[]} patterns * @returns IgnoreBase */ add(patterns: (string | Ignore)[]): this /** * Filters the given array of pathnames, and returns the filtered array. * NOTICE that each path here should be a relative path to the root of your repository. * @param paths the array of paths to be filtered. * @returns The filtered array of paths */ filter(pathnames: Pathname[]): Pathname[] /** * Creates a filter function which could filter * an array of paths with Array.prototype.filter. */ createFilter(): (pathname: Pathname) => boolean /** * Returns Boolean whether pathname should be ignored. * @param {string} pathname a path to check * @returns boolean */ ignores(pathname: Pathname): boolean /** * Returns whether pathname should be ignored or unignored * @param {string} pathname a path to check * @returns TestResult */ test(pathname: Pathname): TestResult } interface Options { ignorecase?: boolean } /** * Creates new ignore manager. */ declare function ignore(options?: Options): Ignore declare namespace ignore { export function isPathValid (pathname: string): boolean } export default ignore