// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. namespace WixToolset.Harvesters.Extensibility { using Wix = WixToolset.Harvesters.Serialize; /// /// Interface for a mutator. /// public interface IMutator { /// /// Gets or sets the harvester core for the extension. /// /// The harvester core for the extension. IHarvesterCore Core { get; } /// /// Gets or sets the value of the extension argument passed to heat. /// /// The extension argument. string ExtensionArgument { get; } /// /// Adds a mutator extension. /// /// The mutator extension to add. void AddExtension(IMutatorExtension mutatorExtension); /// /// Mutate a WiX document. /// /// The Wix document element. /// true if mutation was successful bool Mutate(Wix.Wix wix); /// /// Mutate a WiX document. /// /// The Wix document as a string. /// The mutated Wix document as a string if mutation was successful, else null. string Mutate(string wixString); } }