import { GeneratorFile } from './File';
import { GeneratorFileOptions, GeneratorContract, CommandContract } from '../Contracts';
/**
 * Exposes the API to generate entity files, like project
 * `Controllers`, `Models` and so on.
 */
export declare class Generator implements GeneratorContract {
    private command;
    private destinationDir?;
    private files;
    constructor(command: CommandContract, destinationDir?: string | undefined);
    /**
     * Add a new file to the files generator. You can add multiple files
     * together and they will be created when `run` is invoked.
     */
    addFile(name: string, options?: GeneratorFileOptions): GeneratorFile;
    /**
     * Run the generator and create all files registered using `addFiles`
     */
    run(): Promise<GeneratorFile[]>;
    /**
     * Clear the registered files from the generator
     */
    clear(): void;
}
