import { Fs } from './validator'; export declare type Command = string | null | undefined | (() => Promise); export interface Cp { execute(command: string): Promise; } export declare type Recipe = (target: string, newerPrereqs: string[]) => Command[]; export interface Rule { phony?: boolean; prereqs?: string[]; recipe?: Recipe; } export interface Rules { [target: string]: Rule; } export declare class Generator { private readonly cp; private readonly fs; private readonly log; constructor(cp: Cp, fs: Fs, log: (message: string) => void); generate(goal: string, rules: Rules): Promise; private sortTargets; }