/**
 * `--inject-doc <id>` flag resolution + flag-plus-config merge (D0090).
 *
 * The flag is the simple convenience for the trivial one-off case: a bare id
 * mapped to `injectContextDocs`. It deliberately does NOT encode the source in
 * argv (no `drive:fileId` gymnastics). A bare id is resolved against the run's
 * **active `--source`**: a Google Drive source means the id is a Drive
 * `fileId`, a content-lake source means it is a Sanity `_id`. Complex,
 * multi-source, or full-locator references go through the JSON `--config`
 * payload instead (each ref carries its own `kind` / locator there).
 *
 * Every produced ref is a bare `IdDocRef` (`{ id }`) validated through the
 * SAME shared schema the `--config` file and the API body use
 * (`GeneralizedDocRefSchema`), so the three surfaces cannot drift (D0045).
 */
import { type GeneralizedDocRef } from "../../_vendor/ailf-core/index.d.ts";
/**
 * Map bare `--inject-doc <id>` argv values to validated `GeneralizedDocRef`s.
 *
 * Each id becomes an `IdDocRef` (`{ id }`) — the authoritative-`_id` arm of the
 * union — and is parsed through `GeneralizedDocRefSchema` so a malformed entry
 * (e.g. an empty id) fails the same way a `--config` ref would. The active
 * source interprets the id at fetch time; the flag never encodes the source.
 *
 * @param ids - Repeatable `--inject-doc` values, already collected by Commander.
 * @returns One validated `GeneralizedDocRef` per non-empty id, in input order.
 * @throws if an id is empty / blank — surfaced to the CLI as a config error.
 */
export declare function injectDocIdsToRefs(ids: readonly string[]): GeneralizedDocRef[];
/**
 * Merge config-file `injectContextDocs` with `--inject-doc` flag refs (D0090).
 *
 * `injectContextDocs` is an additive list, so flag entries and config entries
 * **merge** (concatenate, then dedupe per resolution key) rather than the flag
 * overriding the config — this avoids a flag-vs-config override ambiguity for a
 * list field while respecting the spirit of the D0086 cascade. Config entries
 * come first (the config is the recommended, reviewable, authoritative form per
 * the design doc), so a duplicate flag id does not displace a config ref that
 * already carries richer fields (slug / path / locator). Dedupe reuses
 * `refKey` from the injection adapter, so the merge dedupes by exactly the key
 * the adapter dedupes by.
 *
 * @returns the merged list, or `undefined` when both inputs are empty (so an
 *   absent `injectContextDocs` stays absent on `ResolvedConfig`).
 */
export declare function mergeInjectContextDocs(configDocs: readonly GeneralizedDocRef[] | undefined, flagDocs: readonly GeneralizedDocRef[] | undefined): GeneralizedDocRef[] | undefined;
