namespace JetBrains.TeamCity.ServiceMessages.Write.Special
{
using System;
///
/// Factory interface for specialized service messages generation
/// Create instance of to get the implementation of the interface.
///
public interface ITeamCityServiceMessages
{
///
/// Creates a writer that outputs service messages to Console.Out
///
///
[NotNull]
ITeamCityWriter CreateWriter();
///
/// Creates a writer that uses the provided delegate to output service messages
///
/// generated service messages processor
/// specifies whether messages written without explicitly opening a flow should be marked with a common flow id
///
[NotNull]
ITeamCityWriter CreateWriter(Action destination, bool addFlowIdsOnTopLevelMessages = true);
///
/// Adds user-specific service message updater to the list of service message updaters.
///
/// updater instance
void AddServiceMessageUpdater([NotNull] IServiceMessageUpdater updater);
}
}