/**
 * Bridge from legacy ResolvedOptions to the new AppContext.
 *
 * This mapping function exists during the Phase 3→7 migration. It converts
 * the old ResolvedOptions shape to ResolvedConfig, then delegates to
 * createAppContext() (the composition root).
 *
 * Once all commands construct ResolvedConfig directly (or use --config),
 * this bridge can be deleted.
 */
import type { AppContext, ResolvedConfig } from "../_vendor/ailf-core/index.d.ts";
import type { ResolvedOptions } from "../commands/pipeline-action.js";
/**
 * Map legacy ResolvedOptions to ResolvedConfig.
 *
 * This is a mechanical mapping — every field in ResolvedConfig has a
 * corresponding field in ResolvedOptions. Fields that don't map directly
 * are derived (e.g., areas from areaOption).
 */
export declare function mapToResolvedConfig(opts: ResolvedOptions, rootDir: string): ResolvedConfig;
/**
 * Parse the AILF_ARTIFACT_UPLOAD env var into a tri-state.
 *
 * - "0" | "false" → false (force-disable)
 * - "1" | "true"  → true  (force-enable; still a no-op without credentials)
 * - unset | other → undefined (auto-detect from credentials)
 */
export declare function parseArtifactUploadEnv(value: string | undefined): boolean | undefined;
/**
 * Build an AppContext from legacy ResolvedOptions.
 *
 * Delegates to createAppContext() (composition root) after mapping
 * ResolvedOptions → ResolvedConfig.
 */
export declare function buildAppContext(opts: ResolvedOptions, rootDir: string): AppContext;
