import type { B2CInstance } from '../instance/index.js'; import type { ScaffoldChoice, ScaffoldParameter, DynamicParameterSource, SourceResult } from './types.js'; /** * SCAPI/OCAPI hook extension points for basket, order, customer, auth, and product resources. * Each choice includes a hook value and display label suitable for parameter selection. */ export declare const SCAPI_OCAPI_HOOK_POINTS: ScaffoldChoice[]; /** * System hook extension points. * Verified against Script API: CalculateHooks, PaymentHooks, OrderHooks, * BasketMergeHooks, CheckoutHooks, ReturnHooks, ShippingOrderHooks, RequestHooks */ export declare const SYSTEM_HOOK_POINTS: ScaffoldChoice[]; /** * All hook extension points (combined). */ export declare const HOOK_POINTS: ScaffoldChoice[]; /** * Resolve a local (non-remote) parameter source. * Does not require authentication. * * @param source - The source type to resolve * @param projectRoot - Project root directory for cartridge discovery * @returns Resolved choices and optional path mapping */ export declare function resolveLocalSource(source: DynamicParameterSource, projectRoot: string): SourceResult; /** * Resolve a remote parameter source. * Requires authenticated B2CInstance (follows SDK operation pattern). * * @param source - The source type * @param instance - Authenticated B2C instance * @returns Promise resolving to choices array * @throws Error if API call fails */ export declare function resolveRemoteSource(source: DynamicParameterSource, instance: B2CInstance): Promise; /** * Check if a source requires remote API access. * * @param source - The source type to check * @returns True if the source requires remote access */ export declare function isRemoteSource(source: DynamicParameterSource): boolean; /** * Validate a value against a dynamic source (local only). * Used for non-interactive validation of provided values. * * @param source - The source type * @param value - The value to validate * @param projectRoot - Project root for local sources * @returns Object with valid status and available choices if invalid */ export declare function validateAgainstSource(source: DynamicParameterSource, value: string, projectRoot: string): { valid: boolean; availableChoices?: string[]; }; /** * Path to use for scaffold destination so files are generated under outputDir (e.g. working directory). * Returns a path relative to projectRoot when the cartridge is under projectRoot, so the executor * joins with outputDir instead of ignoring it. Otherwise returns the absolute path. */ export declare function cartridgePathForDestination(absolutePath: string, projectRoot: string): string; /** * Result of detecting a source parameter value from a filesystem path. */ export interface SourceDetectionResult { /** The resolved parameter value (e.g., cartridge name) */ value: string; /** Companion variables to set (e.g., { cartridgeNamePath: "cartridges/app_custom" }) */ companionVariables: Record; } /** * Detect a parameter's source value from a filesystem context path. * * For `cartridges` source: walks up from `contextPath` looking for a `.project` file * (cartridge marker), stopping at projectRoot. On match returns the cartridge name and * companion path variable. * * @param param - The scaffold parameter with a `source` field * @param contextPath - Filesystem path providing context (e.g., right-clicked folder) * @param projectRoot - Project root directory * @returns Detection result, or undefined if the source could not be detected */ export declare function detectSourceFromPath(param: ScaffoldParameter, contextPath: string, projectRoot: string): SourceDetectionResult | undefined;