/**
 * Commerce App Package (CAP) uninstallation.
 *
 * Runs the sfcc-uninstall-commerce-app system job to remove an installed CAP.
 */
import { B2CInstance } from '../../instance/index.js';
import { type JobExecution, type WaitForJobOptions } from '../jobs/run.js';
/**
 * Options for CAP uninstallation.
 */
export interface CommerceAppUninstallOptions {
    /** Target site ID to uninstall the app from. */
    siteId: string;
    /** Wait options for job completion. */
    waitOptions?: WaitForJobOptions;
}
/**
 * Result of a CAP uninstallation.
 */
export interface CommerceAppUninstallResult {
    /** Job execution details. */
    execution: JobExecution;
    /** App name that was uninstalled. */
    appName: string;
}
/**
 * Uninstalls a Commerce App from a B2C Commerce instance.
 *
 * Executes the sfcc-uninstall-commerce-app system job which removes cartridges,
 * IMPEX data, and configuration associated with the app from the target site.
 *
 * @param instance - B2C instance to uninstall from
 * @param appName - App ID (from commerce-app.json "id" field, e.g. "avalara-tax")
 * @param appDomain - App domain (e.g. "tax", "shipping")
 * @param options - Uninstall options including required siteId
 * @returns Uninstall result with job execution details
 * @throws JobExecutionError if the uninstall job fails
 *
 * @example
 * ```typescript
 * const result = await commerceAppUninstall(instance, 'avalara-tax', 'tax', {
 *   siteId: 'RefArch',
 * });
 * ```
 */
export declare function commerceAppUninstall(instance: B2CInstance, appName: string, appDomain: string, options: CommerceAppUninstallOptions): Promise<CommerceAppUninstallResult>;
