import { type HandoffLevel } from './handoff-level.js';
import type { Preferences } from './registry.js';
import type { StartAgentOptions } from './dashboard/types.js';
import type { FrameworkFileConfig } from './config.js';
/**
 * Turning the user's preferences into the options an agent starts with (#858).
 *
 * This lived in the dashboard client, which was fine while the browser was the only thing that
 * started runs. Auto PM (#685) starts them too, and passed nothing at all — so an unattended agent
 * ignored the driver, the model and every other per-project setting (#840) that an agent started from
 * the launcher would have honoured.
 *
 * It lives here, in pure code with no Node imports, so both callers share one mapping rather than
 * keeping two copies of rules that are not a plain field copy: autopilot defaults on, browser is
 * Claude-only, the eco drops are suppressed under vanilla/transparent, and the four eco
 * preferences collapse into one object. Re-exported from the browser-safe `./client` entry (#431)
 * so the dashboard can go on importing it at runtime.
 */
/**
 * A repo's committed `the-framework.yml` as the preference keys it speaks for (#842), so the
 * launcher and the daemon can layer it under the user's own options the same way. Only the keys
 * the file set come back, since an unset key must leave the tier below it alone.
 *
 * `preset` and `event` have no preference counterpart (there is no preset picker) and stay on the
 * raw file config for display.
 */
export declare function preferencesFromFileConfig(file: FrameworkFileConfig): Preferences;
/**
 * How far a set of preferences publishes a finished session (#1102/B5). Defaults to `pr`, which is
 * what makes it zero-config: a session left alone pushes its branch and opens a draft PR.
 *
 * A ladder, not three switches (#1379): the rungs are nested, so "PR without push" was never a
 * state a session could honour — `gh` will not open a PR for a branch the remote has never seen.
 * As an ordinal that combination is not representable at all, rather than repaired by turning the
 * push back on, which is what made a launcher offering "publish nothing" unable to deliver it.
 */
export declare function handoffFromPreferences(preferences: Preferences): HandoffLevel;
/**
 * The agent options a set of already-resolved preferences implies.
 *
 * Takes the merged view, not the two tiers: who wins between the global and the project setting is
 * `resolvePreferences`' job, and this stays a pure mapping of one settled answer.
 */
export declare function agentOptionsFromPreferences(preferences: Preferences, context?: string[]): StartAgentOptions;
//# sourceMappingURL=agent-options.d.ts.map