/**
 * Config reader — loads `.planning/config.json` and merges with defaults.
 *
 * Mirrors the default structure from `get-shit-done/bin/lib/config.cjs`
 * `buildNewProjectConfig()`.
 */
export interface GitConfig {
    branching_strategy: string;
    phase_branch_template: string;
    milestone_branch_template: string;
    quick_branch_template: string | null;
}
export interface WorkflowConfig {
    research: boolean;
    plan_check: boolean;
    verifier: boolean;
    nyquist_validation: boolean;
    /** Mirrors gsd-tools flat `config.tdd_mode` (from `workflow.tdd_mode`). */
    tdd_mode: boolean;
    /**
     * Issue #3309. `end-of-phase` (default) suppresses mid-flight
     * `<task type="checkpoint:human-verify">` task emission; the planner
     * embeds verification details into the relevant `auto` task's
     * `<verify><human-check>` block and the verifier harvests them at
     * end-of-phase into the existing HUMAN-UAT.md path. `mid-flight`
     * restores the pre-#3309 behavior where the executor halts at each
     * `checkpoint:human-verify` task and pays a full executor cold-start
     * cost (CLAUDE.md, MEMORY.md, STATE.md, plan re-read on respawn) per
     * round-trip.
     */
    human_verify_mode: 'mid-flight' | 'end-of-phase';
    auto_advance: boolean;
    /** Internal auto-chain flag used by workflow routing. */
    _auto_chain_active?: boolean;
    node_repair: boolean;
    node_repair_budget: number;
    ui_phase: boolean;
    ui_safety_gate: boolean;
    text_mode: boolean;
    research_before_questions: boolean;
    discuss_mode: string;
    skip_discuss: boolean;
    /** Maximum self-discuss passes in auto/headless mode before forcing proceed. Default: 3. */
    max_discuss_passes: number;
    /** Subagent timeout in ms (matches `get-shit-done/bin/lib/core.cjs` default 300000). */
    subagent_timeout: number;
    /**
     * Issue #2492. When true (default), enforces that every trackable decision in
     * CONTEXT.md `<decisions>` is referenced by at least one plan (translation
     * gate, blocking) and reports decisions not honored by shipped artifacts at
     * verify-phase (validation gate, non-blocking). Set false to disable both.
     */
    context_coverage_gate: boolean;
}
export interface HooksConfig {
    context_warnings: boolean;
}
export interface GSDConfig {
    model_profile: string;
    commit_docs: boolean;
    parallelization: boolean;
    search_gitignored: boolean;
    brave_search: boolean;
    firecrawl: boolean;
    exa_search: boolean;
    git: GitConfig;
    workflow: WorkflowConfig;
    hooks: HooksConfig;
    agent_skills: Record<string, unknown>;
    /** Project slug for branch templates; mirrors gsd-tools `config.project_code`. */
    project_code?: string | null;
    /** Interactive vs headless; mirrors gsd-tools flat `config.mode`. */
    mode?: string;
    [key: string]: unknown;
}
export declare const CONFIG_DEFAULTS: GSDConfig;
/**
 * Load project config from `.planning/config.json`, merging with defaults.
 * When project config is missing or empty, this returns `mergeDefaults({})`
 * (built-in defaults only; no `~/.gsd/defaults.json` layering).
 * Throws on malformed JSON with a helpful error message.
 */
export declare function loadConfig(projectDir: string, workstream?: string): Promise<GSDConfig>;
//# sourceMappingURL=config.d.ts.map