/**
 * B2C Commerce configuration operations for Managed Runtime.
 *
 * Handles the connection between MRT targets/environments and B2C Commerce instances.
 *
 * @module operations/mrt/b2c-config
 */
import type { AuthStrategy } from '../../auth/types.js';
import { type B2COrgInfo, type B2CTargetInfo, type PatchedB2CTargetInfo } from '../../clients/mrt-b2c.js';
export type { B2COrgInfo, B2CTargetInfo, PatchedB2CTargetInfo };
/**
 * Options for getting B2C organization info.
 */
export interface GetB2COrgInfoOptions {
    /**
     * The organization slug.
     */
    organizationSlug: string;
    /**
     * MRT B2C API origin URL.
     * @default "https://cloud.mobify.com/api/cc/b2c"
     */
    origin?: string;
}
/**
 * Options for getting B2C target info.
 */
export interface GetB2CTargetInfoOptions {
    /**
     * The project slug.
     */
    projectSlug: string;
    /**
     * The target/environment slug.
     */
    targetSlug: string;
    /**
     * MRT B2C API origin URL.
     * @default "https://cloud.mobify.com/api/cc/b2c"
     */
    origin?: string;
}
/**
 * Options for setting B2C target info.
 */
export interface SetB2CTargetInfoOptions {
    /**
     * The project slug.
     */
    projectSlug: string;
    /**
     * The target/environment slug.
     */
    targetSlug: string;
    /**
     * ID of the B2C Commerce instance to connect.
     */
    instanceId: string;
    /**
     * List of site IDs associated with the B2C Commerce instance.
     * Pass null to clear the sites list.
     */
    sites?: string[] | null;
    /**
     * MRT B2C API origin URL.
     * @default "https://cloud.mobify.com/api/cc/b2c"
     */
    origin?: string;
}
/**
 * Options for updating B2C target info.
 */
export interface UpdateB2CTargetInfoOptions {
    /**
     * The project slug.
     */
    projectSlug: string;
    /**
     * The target/environment slug.
     */
    targetSlug: string;
    /**
     * ID of the B2C Commerce instance to connect.
     */
    instanceId?: string;
    /**
     * List of site IDs associated with the B2C Commerce instance.
     * Pass null to clear the sites list.
     */
    sites?: string[] | null;
    /**
     * MRT B2C API origin URL.
     * @default "https://cloud.mobify.com/api/cc/b2c"
     */
    origin?: string;
}
/**
 * Gets B2C Commerce info for an organization.
 *
 * Returns the list of B2C Commerce instances connected to the organization.
 *
 * @param options - Operation options
 * @param auth - Authentication strategy (ApiKeyStrategy)
 * @returns B2C organization info
 * @throws Error if request fails
 *
 * @example
 * ```typescript
 * import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
 * import { getB2COrgInfo } from '@salesforce/b2c-tooling-sdk/operations/mrt';
 *
 * const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
 *
 * const info = await getB2COrgInfo({
 *   organizationSlug: 'my-org'
 * }, auth);
 *
 * console.log(`B2C Customer: ${info.is_b2c_customer}`);
 * console.log(`Instances: ${info.instances.join(', ')}`);
 * ```
 */
export declare function getB2COrgInfo(options: GetB2COrgInfoOptions, auth: AuthStrategy): Promise<B2COrgInfo>;
/**
 * Gets B2C Commerce info for a target/environment.
 *
 * Returns the B2C Commerce instance and sites connected to the target.
 *
 * @param options - Operation options
 * @param auth - Authentication strategy (ApiKeyStrategy)
 * @returns B2C target info
 * @throws Error if request fails
 *
 * @example
 * ```typescript
 * import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
 * import { getB2CTargetInfo } from '@salesforce/b2c-tooling-sdk/operations/mrt';
 *
 * const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
 *
 * const info = await getB2CTargetInfo({
 *   projectSlug: 'my-storefront',
 *   targetSlug: 'production'
 * }, auth);
 *
 * console.log(`Instance: ${info.instance_id}`);
 * console.log(`Sites: ${info.sites?.join(', ')}`);
 * ```
 */
export declare function getB2CTargetInfo(options: GetB2CTargetInfoOptions, auth: AuthStrategy): Promise<B2CTargetInfo>;
/**
 * Sets (creates/replaces) B2C Commerce info for a target/environment.
 *
 * @param options - Operation options
 * @param auth - Authentication strategy (ApiKeyStrategy)
 * @returns Updated B2C target info
 * @throws Error if request fails
 *
 * @example
 * ```typescript
 * import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
 * import { setB2CTargetInfo } from '@salesforce/b2c-tooling-sdk/operations/mrt';
 *
 * const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
 *
 * const info = await setB2CTargetInfo({
 *   projectSlug: 'my-storefront',
 *   targetSlug: 'production',
 *   instanceId: 'aaaa_prd',
 *   sites: ['RefArch', 'SiteGenesis']
 * }, auth);
 *
 * console.log(`Connected to instance: ${info.instance_id}`);
 * ```
 */
export declare function setB2CTargetInfo(options: SetB2CTargetInfoOptions, auth: AuthStrategy): Promise<B2CTargetInfo>;
/**
 * Updates B2C Commerce info for a target/environment.
 *
 * @param options - Operation options
 * @param auth - Authentication strategy (ApiKeyStrategy)
 * @returns Updated B2C target info
 * @throws Error if request fails
 *
 * @example
 * ```typescript
 * import { ApiKeyStrategy } from '@salesforce/b2c-tooling-sdk/auth';
 * import { updateB2CTargetInfo } from '@salesforce/b2c-tooling-sdk/operations/mrt';
 *
 * const auth = new ApiKeyStrategy(process.env.MRT_API_KEY!, 'Authorization');
 *
 * // Update only the sites list
 * const info = await updateB2CTargetInfo({
 *   projectSlug: 'my-storefront',
 *   targetSlug: 'production',
 *   sites: ['RefArch', 'SiteGenesis', 'NewSite']
 * }, auth);
 *
 * console.log(`Updated sites: ${info.sites?.join(', ')}`);
 * ```
 */
export declare function updateB2CTargetInfo(options: UpdateB2CTargetInfoOptions, auth: AuthStrategy): Promise<B2CTargetInfo>;
