type Pathname = string; interface TestResult { ignored: boolean; unignored: boolean; } export interface Ignore { /** * Adds one or several rules to the current manager. * @param {string[]} patterns * @returns IgnoreBase */ add(patterns: string | Ignore | readonly (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: readonly 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; } export interface Options { ignorecase?: boolean; // For compatibility ignoreCase?: boolean; allowRelativePaths?: boolean; } /** * Creates new ignore manager. */ declare function ignore(options?: Options): Ignore; declare namespace ignore { export function isPathValid(pathname: string): boolean; } export default ignore;