// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// A library containing an abstract documentation generator.
library dartdoc.generator;

import 'dart:async' show Stream, Future;

import 'package:dartdoc/src/model.dart' show PackageGraph;

/// An abstract class that defines a generator that generates documentation for
/// a given package.
///
/// Generators can generate documentation in different formats: html, json etc.
abstract class Generator {
  /// Generate the documentation for the given package in the specified
  /// directory. Completes the returned future when done.
  Future generate(PackageGraph packageGraph, String outputDirectoryPath);

  /// Fires when a file is created.
  Stream<void> get onFileCreated;

  /// Fetches all filenames written by this generator.
  Set<String> get writtenFiles;
}
