/**
 * FileConfigAdapter — resolves pipeline config from a local config file.
 *
 * Enables `ailf run --config <path>` to load all pipeline options
 * from a file instead of CLI flags. Supports multiple formats in
 * priority order:
 *
 * 1. TypeScript (.ts) — loaded via jiti, validated through Zod
 * 2. JavaScript (.js) — loaded via jiti, validated through Zod
 * 3. YAML (.yaml/.yml) — parsed via js-yaml, validated through Zod
 * 4. JSON (.json) — parsed via JSON.parse, tries PipelineRequestSchema
 *    first (API contract), then EvalConfigSchema (developer config)
 * 5. Inline JSON — a `--config` value whose first non-whitespace character
 *    is `{` or `[` is parsed in place (no file read) and validated through
 *    the same dual JSON path (D0090). Such a value was never a valid path,
 *    so every existing `--config <path>` invocation is unaffected.
 *
 * Schemas:
 * - PipelineRequestSchema (JSON only) — the universal API contract.
 *   Used by: API gateway payloads, GitHub Actions dispatch.
 * - EvalConfigSchema (all formats) — the developer-facing config.
 *   Used by: local config files, manual --config usage.
 *
 * @see packages/core/src/schemas/pipeline-request.ts — PipelineRequestSchema
 * @see packages/core/src/schemas/eval-config.ts — EvalConfigSchema
 * @see docs/design-docs/architecture-overhaul/typescript-configuration.md
 */
import { EvalConfigSchema, type ConfigSource, type ResolvedConfig } from "../../_vendor/ailf-core/index.d.ts";
/**
 * A `--config` value is inline JSON when its first non-whitespace character
 * is `{` or `[`. A path never starts with either, so this heuristic never
 * misclassifies an existing `--config <path>` invocation (D0090).
 */
export declare function isInlineJson(value: string): boolean;
export declare class FileConfigAdapter implements ConfigSource {
    private readonly filePath;
    private readonly rootDir;
    readonly label: string;
    constructor(filePath: string, rootDir: string);
    resolve(): Promise<ResolvedConfig>;
    /**
     * Validate the raw config object through Zod and map to ResolvedConfig.
     */
    private validateAndMap;
}
/**
 * Map a validated `EvalConfig` to a `ResolvedConfig`.
 *
 * Exported so the `--config <file> --remote` dispatch path can reuse the
 * exact local resolution (D0090): the same `ResolvedConfig` that drives a
 * local run is mapped to the wire `RemoteConfigSlice` by `configToRemoteSlice`,
 * so a committed config produces an identical document scope locally and
 * remotely.
 */
export declare function mapEvalConfigToResolvedConfig(config: ReturnType<typeof EvalConfigSchema.parse>, rootDir: string): ResolvedConfig;
