/**
 * remote-pipeline.ts — Remote execution flow for `ailf run --remote`.
 *
 * Reads local `.ailf/tasks/` YAML, validates locally via Zod schemas,
 * submits to the AILF API, polls for completion, and writes the same
 * output artifacts as local mode (score-summary.json, report.md,
 * job-metadata.json).
 *
 * This module is the CLI-side counterpart of the API's POST /v1/pipeline
 * endpoint. The CLI and API are published from the same monorepo, so the
 * request/response shapes are always in sync.
 *
 * @see packages/eval/src/adapters/api-client/ — HTTP client + request builder
 * @see docs/design-docs/cli-as-api-client.md — design doc
 */
import { type RemoteConfigSlice } from "../adapters/api-client/index.js";
import type { ResolvedConfig } from "../_vendor/ailf-core/index.d.ts";
import type { ResolvedOptions } from "./pipeline-action.js";
/**
 * Run the evaluation pipeline in remote mode.
 *
 * 1. Validate we have an API key
 * 2. Find and validate local tasks (fail-fast with Zod errors)
 * 3. Build the PipelineRequest payload
 * 4. Submit to the AILF API
 * 5. Poll for completion with progress display
 * 6. Write output artifacts (score-summary.json, report.md, job-metadata.json)
 */
export declare function runRemotePipeline(opts: ResolvedOptions, rootDir: string): Promise<void>;
/**
 * Run the pipeline in remote mode from a file-resolved `ResolvedConfig`
 * (`ailf run --config <file|json> --remote`, D0090).
 *
 * The document scope (the widened `changedDocs` union and `injectContextDocs`)
 * comes straight off the resolved config — it cannot survive the flag path's
 * slug-only `changedDocsOption`. The caller envelope, auth, and the
 * CLI-flag-only `--sanity-document` / `--sanity-perspective` overrides come
 * from `opts` (resolved from flags/env), since an `EvalConfig` cannot express
 * them. Both entry points share `dispatchRemote`, so a committed config
 * produces the same remote run a local run would.
 */
export declare function runRemotePipelineFromConfig(config: ResolvedConfig, opts: ResolvedOptions, rootDir: string): Promise<void>;
/**
 * The fields a file `EvalConfig` cannot express, resolved from CLI flags / env
 * by `resolveOptions`: the D0037 caller envelope plus the CLI-flag-only
 * `--sanity-document` (`sanityDocumentArgs`) and `--sanity-perspective`
 * (`perspectiveOverride`) overrides.
 */
type RemoteEnvelopeOptions = Pick<ResolvedOptions, "sanityDocumentArgs" | "perspectiveOverride" | "classificationOption" | "ownerTeamOption" | "ownerIndividualOption" | "purposeOption" | "labelOptions">;
/**
 * Map a file-resolved `ResolvedConfig` to the wire `RemoteConfigSlice` (D0090).
 *
 * Run selectors, source overrides, and the robust document scope come from the
 * file config (the `--config` file is authoritative for *what runs*). The
 * envelope/auth and CLI-flag-only overrides come from `opts`. `injectContextDocs`
 * already has any `--inject-doc` flag refs merged in by the `--config` handler,
 * so it is taken from the config verbatim (no double-count).
 */
export declare function configToRemoteSlice(config: ResolvedConfig, opts: RemoteEnvelopeOptions): RemoteConfigSlice;
export {};
