declare class FileSystem { targetDir: string filterPaths: string[] static fileExists (file: string): Promise relativeFileExists (file: string): Promise getFilterFiles (): string[] getFilterDirectories (): string[] findFirst ( globs: string | string[], nocase?: boolean ): Promise findFirstFile ( globs: string | string[], nocase?: boolean ): Promise findAllFiles ( globs: string | string[], nocase?: boolean ): Promise glob (globs: string | string[], options: any): Promise findAll ( globs: string | string[], nocase?: boolean ): Promise isBinaryFile (relativeFile: string): Promise shouldInclude (path: string): boolean getFileContents (relativeFile: string): Promise setFileContents (relativeFile: string, contents: string): Promise getFileLines (relativeFile: string, lineCount: number): Promise } declare class Result { message?: string targets: Array<{ path?: string pattern?: string passed: boolean message?: string }> passed: boolean } declare class RuleInfo { name: string level: 'off' | 'error' | 'warning' where: string[] ruleType: string ruleConfig: any fixType?: string fixConfig?: any policyInfo?: string policyUrl?: string } declare class FormatResult { status: string runMessage?: string lintResult?: Result fixResult?: Result ruleInfo: RuleInfo } declare class LintResult { params: { targetDir: string filterPaths: string[] rulesetPath?: string ruleset: any } passed: boolean errored: boolean errMsg?: string results: FormatResult[] targets: { [key: string]: Result } formatOptions?: { [key: string]: any } } declare interface Formatter { formatOutput(output: LintResult, dryRun: boolean): string } export declare function lint ( targetDir: string, filterPaths?: string[], ruleset?: any, dryRun?: boolean ): Promise export declare function runRuleset ( ruleset: RuleInfo[], targets: boolean | { [key: string]: Result }, dryRun: boolean ): Promise export declare function determineTargets ( axiomconfig: any, fs: FileSystem ): Promise<{ [key: string]: Result }> export declare function validateConfig ( config: any ): Promise<{ passed: boolean; error?: string }> export declare function parseConfig (config: any): RuleInfo[] export declare function shouldRuleRun ( validTargets: string[], ruleAxioms: string[] ): string[] export declare const defaultFormatter: Formatter export declare const jsonFormatter: Formatter export declare const markdownFormatter: Formatter export declare const resultFormatter: Formatter