export interface Fs { /** * An implementation should return a negative value if the first argument is * 'less' than the second, zero if they are 'equal', and a positive value if * the first argument is 'greater'. */ compare(path1: string, path2: string): number; exists(path: string): boolean; isGlob(pattern: string): boolean; resolvePaths(pattern: string): string[]; } export interface ValidatableRule { phony?: boolean; prereqs?: string[]; } export interface ValidatableRules { [target: string]: ValidatableRule; } export interface ValidationResult { newerPrereqs: string[]; } export interface ValidationResults { [invalidTarget: string]: ValidationResult; } export declare class Validator { private readonly fs; constructor(fs: Fs); validate(goal: string, rules: ValidatableRules): ValidationResults; private validateNonterminal; private validateTerminal; private resolve; }