// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System.Collections.Generic;
namespace autoShell;
///
/// Registry of known applications, mapping friendly names to executable paths,
/// AppUserModelIDs, and startup metadata. Shared across handlers that need
/// to resolve, launch, or manipulate applications by friendly name.
///
internal interface IAppRegistry
{
///
/// Gets the executable path for a friendly app name, or null if unknown.
///
string GetExecutablePath(string friendlyName);
///
/// Gets the AppUserModelID for a friendly app name, or null if unknown.
/// Used as a fallback to launch apps via the shell AppsFolder.
///
string GetAppUserModelId(string friendlyName);
///
/// Resolves a friendly name to a process name (filename without extension).
/// Returns the input unchanged if the friendly name is not in the registry.
///
string ResolveProcessName(string friendlyName);
///
/// Gets the working directory environment variable for a friendly app name, or null.
/// The caller should expand it via Environment.ExpandEnvironmentVariables.
///
string GetWorkingDirectoryEnvVar(string friendlyName);
///
/// Gets extra command-line arguments for a friendly app name, or null.
///
string GetArguments(string friendlyName);
///
/// Returns all known installed application names (from the shell AppsFolder).
///
IEnumerable GetAllAppNames();
}