/**
 * resolve-missing-inputs.ts — interactive resolution of a required run input
 * that is missing. Covers owner.team for both local runs
 * (`resolveMissingInputs`) and remote dispatch (`resolveRemoteOwnerTeam`),
 * built around one shared need → prompt → persist → apply helper. No registry
 * framework yet — see the spec.
 *
 * See docs/design-docs/cli-interactive-input-resolution.md.
 */
import type { ResolvedOptions } from "../pipeline-action.js";
/**
 * True when a LOCAL run will actually need an owner team and none is resolved.
 * Mirrors the provenance gate's `willPublish` — a publish is intended only
 * when publishing is enabled AND a report store is configured.
 */
export declare function ownerTeamNeeded(o: ResolvedOptions): boolean;
/** Where to persist a chosen team. */
export type PersistScope = "global" | "run";
/**
 * Thrown when a remote run needs an owner team but the user declined to pick
 * one. Remote dispatch always requires a team (the API gateway rejects a
 * teamless run) and — unlike a local run — there is no publish to downgrade, so
 * the run cannot continue. The CLI layer catches this and exits cleanly.
 */
export declare class RemoteOwnerTeamRequiredError extends Error {
    readonly name = "RemoteOwnerTeamRequiredError";
    constructor();
}
/**
 * Injectable seams. Defaults are the real implementations; tests inject fakes
 * so no real TTY or config file is touched.
 */
export interface ResolveDeps {
    promptOwnerTeam: () => Promise<string | undefined>;
    promptPersistScope: () => Promise<PersistScope>;
    persistTeam: (team: string) => void;
}
/**
 * Fill in a required-but-missing LOCAL run input interactively. Mutates `o` in
 * place (sets `ownerTeamOption`, may flip `publishEnabled`). No-op when the
 * session is non-interactive or `--yes` is set, or when the team is not needed.
 * On skip, downgrades the run to no-publish.
 */
export declare function resolveMissingInputs(o: ResolvedOptions, env: {
    isTty: boolean;
    yes: boolean;
}, deps?: ResolveDeps): Promise<void>;
/**
 * Resolve the owner team for a REMOTE dispatch. A remote run always needs a
 * team (the API gateway rejects a teamless run), so this prompts whenever none
 * is resolved — independent of the local publish signal. No-op when a team is
 * already set, or when the session is non-interactive / `--yes` (those fall
 * through to the gateway, which the CLI surfaces as a clean error). Throws
 * `RemoteOwnerTeamRequiredError` when the user skips, since a remote run cannot
 * continue without one.
 */
export declare function resolveRemoteOwnerTeam(o: ResolvedOptions, env: {
    isTty: boolean;
    yes: boolean;
}, deps?: ResolveDeps): Promise<void>;
