// 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.Extensibility
{
using System.Collections.Generic;
using WixToolset.Data;
using WixToolset.Data.Tuples;
using WixToolset.Data.WindowsInstaller;
using WixToolset.Extensibility.Data;
///
/// Interface all binder extensions implement.
///
public interface IWindowsInstallerBackendBinderExtension
{
IEnumerable TableDefinitions { get; }
///
/// Called before binding occurs.
///
void PreBackendBind(IBindContext context);
IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable files);
string ResolveMedia(MediaTuple mediaRow, string mediaLayoutDirectory, string layoutDirectory);
bool TryAddTupleToOutput(IntermediateTuple tuple, WindowsInstallerData output);
///
/// Called after all output changes occur and right before the output is bound into its final format.
///
void PostBackendBind(IBindResult result, WixOutput wixout);
}
}