/**
 * Commerce App Package (CAP) operations for B2C Commerce.
 *
 * This module provides functions for validating, packaging, installing, and
 * uninstalling Commerce App Packages (CAPs) on B2C Commerce instances.
 *
 * ## CAP Operations
 *
 * - {@link validateCap} - Validate CAP structure and manifest (local, no instance required)
 * - {@link commerceAppInstall} - Install a CAP via the sfcc-install-commerce-app job
 * - {@link commerceAppUninstall} - Uninstall a CAP via the sfcc-uninstall-commerce-app job
 * - {@link commerceAppPackage} - Package a CAP directory into a distributable .zip
 * - {@link discoverLocalApps} - Discover local CAPs by finding commerce-app.json files
 * - {@link listInstalledApps} - List installed apps on an instance via commerce_feature_states export
 *
 * ## Usage
 *
 * ```typescript
 * import {
 *   validateCap,
 *   commerceAppInstall,
 *   commerceAppUninstall,
 *   commerceAppPackage,
 *   discoverLocalApps,
 *   listInstalledApps,
 * } from '@salesforce/b2c-tooling-sdk/operations/cap';
 *
 * // Validate locally
 * const result = await validateCap('./my-commerce-app');
 * if (!result.valid) console.error(result.errors);
 *
 * // Package for distribution
 * const pkg = await commerceAppPackage('./my-commerce-app');
 *
 * // Install on an instance
 * await commerceAppInstall(instance, './my-commerce-app', { siteId: 'RefArch' });
 *
 * // Uninstall
 * await commerceAppUninstall(instance, 'my-app', 'tax', { siteId: 'RefArch' });
 * ```
 *
 * @module operations/cap
 */
export { validateCap } from './validate.js';
export type { CapValidationResult, CommerceAppManifest } from './validate.js';
export { JobExecutionError } from '../jobs/run.js';
export { commerceAppInstall, readManifest } from './install.js';
export type { CommerceAppInstallOptions, CommerceAppInstallResult } from './install.js';
export { commerceAppUninstall } from './uninstall.js';
export type { CommerceAppUninstallOptions, CommerceAppUninstallResult } from './uninstall.js';
export { commerceAppPackage } from './package.js';
export type { CommerceAppPackageOptions, CommerceAppPackageResult } from './package.js';
export { discoverLocalApps, listInstalledApps, parseCommerceFeatureStatesXml } from './list.js';
export { pullCommerceApps } from './pull.js';
export type { PullCommerceAppsOptions, PullCommerceAppsResult, PulledApp, PullSource } from './pull.js';
export type { CommerceFeatureState, LocalCommerceApp, ListInstalledAppsOptions, ListInstalledAppsResult, } from './list.js';
