import type { Config } from '../types/index.js'; /** * The five effective "defaults for everyone" PR-hygiene booleans, resolved from * (in precedence order) an explicit flag override, the repo config's `defaults` * block, and the built-in default (all `true`). */ export interface ResolvedDefaults { /** Survey the repo's dominant idioms before writing and match the majority style. */ styleSurvey: boolean; /** Touch only the files the fix needs — no drive-by changes. */ scopeLock: boolean; /** Read and obey `CONTRIBUTING.md` and any PR template. */ contributingDocs: boolean; /** Record a diagnosed environment failure once instead of looping. */ environmentFailureOnce: boolean; /** Emit Windows-safe (colon-free) plan/lessons filenames. */ windowsSafeNames: boolean; } /** * Per-behaviour flag overrides. Phase 1 passes `{}` (no CLI flags added yet); * the parameter exists so Phase 2 can forward `--contribution`-derived values. * An override of `undefined` for a key falls through to the config/default. */ export type DefaultsOverrides = Partial; /** * Resolve the effective `defaults` booleans using `flag ?? config ?? default` * precedence — the same chain `resolveProviderCredentials` and * `resolveSandboxProfile` already use. Pure and side-effect free. * * - Absent/partial `config.defaults` yields `true` for every unspecified key. * - A `flagOverrides` entry (when not `undefined`) wins over the config value. */ export declare function resolveDefaults(config: Pick | undefined, flagOverrides?: DefaultsOverrides): ResolvedDefaults; /** * True when every resolved default is on. Used by the CLI to decide whether to * omit the `defaults` block from a request body (backward-compatible: an all-on * block is equivalent to sending nothing). */ export declare function isAllDefaultsOn(resolved: ResolvedDefaults): boolean; /** * Resolve the `defaults` block to forward on a launch/plan request, or * `undefined` when every behaviour is on. Forwarding an all-on block is * equivalent to sending nothing, so the common case stays byte-identical to * legacy request bodies (same omit-when-absent discipline as `mergePolicy`). */ export declare function resolveForwardedDefaults(config: Pick | undefined, flagOverrides?: DefaultsOverrides): ResolvedDefaults | undefined; //# sourceMappingURL=defaults-resolver.d.ts.map