import { z } from "zod";
export declare const DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE = 65;
export declare const EXECUTE_THRESHOLD_CAP_MESSAGE = "execute_threshold is capped at 80% for cache safety: a single large agent step can overflow the context window before Magic Context can compact between turns, forcing OpenCode's native compaction (hard to recover from). 80% also leaves headroom below the 85%/95% emergency bands. Use a value between 20 and 80.";
export declare const DEFAULT_HISTORIAN_TIMEOUT_MS = 300000;
export declare const DEFAULT_HISTORY_BUDGET_PERCENTAGE = 0.15;
export declare const DEFAULT_LOCAL_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2";
export declare const DREAMER_TASKS: readonly ["consolidate", "verify", "archive-stale", "improve", "maintain-docs"];
export declare const DreamingTaskSchema: z.ZodEnum<{
    consolidate: "consolidate";
    verify: "verify";
    "archive-stale": "archive-stale";
    improve: "improve";
    "maintain-docs": "maintain-docs";
}>;
export type DreamingTask = z.infer<typeof DreamingTaskSchema>;
export declare const DEFAULT_DREAMER_TASKS: DreamingTask[];
/** Valid thinking levels for Pi subagents. Maps to Pi's --thinking CLI flag.
 *  Off: disable reasoning. Minimal/low/medium/high/xhigh: increasing reasoning depth.
 *  Pi-only — OpenCode uses `variant` in agent config instead. */
export declare const PiThinkingLevelSchema: z.ZodOptional<z.ZodEnum<{
    off: "off";
    minimal: "minimal";
    low: "low";
    medium: "medium";
    high: "high";
    xhigh: "xhigh";
}>>;
export type PiThinkingLevel = z.infer<typeof PiThinkingLevelSchema>;
/** Combined dreamer agent + scheduling configuration */
export declare const DreamerConfigSchema: z.ZodObject<{
    model: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    top_p: z.ZodOptional<z.ZodNumber>;
    prompt: z.ZodOptional<z.ZodString>;
    tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
    disable: z.ZodOptional<z.ZodBoolean>;
    description: z.ZodOptional<z.ZodString>;
    mode: z.ZodOptional<z.ZodEnum<{
        subagent: "subagent";
        primary: "primary";
        all: "all";
    }>>;
    color: z.ZodOptional<z.ZodString>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    permission: z.ZodOptional<z.ZodObject<{
        edit: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>]>>;
        webfetch: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        doom_loop: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        external_directory: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
    }, z.core.$strip>>;
    maxTokens: z.ZodOptional<z.ZodNumber>;
    variant: z.ZodOptional<z.ZodString>;
    fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    schedule: z.ZodDefault<z.ZodString>;
    max_runtime_minutes: z.ZodDefault<z.ZodNumber>;
    tasks: z.ZodDefault<z.ZodArray<z.ZodEnum<{
        consolidate: "consolidate";
        verify: "verify";
        "archive-stale": "archive-stale";
        improve: "improve";
        "maintain-docs": "maintain-docs";
    }>>>;
    task_timeout_minutes: z.ZodDefault<z.ZodNumber>;
    inject_docs: z.ZodDefault<z.ZodBoolean>;
    user_memories: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        promotion_threshold: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    pin_key_files: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        token_budget: z.ZodDefault<z.ZodNumber>;
        min_reads: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    thinking_level: z.ZodOptional<z.ZodEnum<{
        off: "off";
        minimal: "minimal";
        low: "low";
        medium: "medium";
        high: "high";
        xhigh: "xhigh";
    }>>;
}, z.core.$strip>;
export type DreamerConfig = z.infer<typeof DreamerConfigSchema>;
export declare const SidekickConfigSchema: z.ZodOptional<z.ZodObject<{
    model: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    top_p: z.ZodOptional<z.ZodNumber>;
    prompt: z.ZodOptional<z.ZodString>;
    tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
    disable: z.ZodOptional<z.ZodBoolean>;
    description: z.ZodOptional<z.ZodString>;
    mode: z.ZodOptional<z.ZodEnum<{
        subagent: "subagent";
        primary: "primary";
        all: "all";
    }>>;
    color: z.ZodOptional<z.ZodString>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    permission: z.ZodOptional<z.ZodObject<{
        edit: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>]>>;
        webfetch: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        doom_loop: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        external_directory: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
    }, z.core.$strip>>;
    maxTokens: z.ZodOptional<z.ZodNumber>;
    variant: z.ZodOptional<z.ZodString>;
    fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    timeout_ms: z.ZodDefault<z.ZodNumber>;
    system_prompt: z.ZodOptional<z.ZodString>;
    thinking_level: z.ZodOptional<z.ZodEnum<{
        off: "off";
        minimal: "minimal";
        low: "low";
        medium: "medium";
        high: "high";
        xhigh: "xhigh";
    }>>;
}, z.core.$strip>>;
export type SidekickConfig = NonNullable<z.infer<typeof SidekickConfigSchema>>;
/** Historian agent configuration — includes all agent overrides plus two_pass mode.
 *  Two-pass mode runs a second editor pass after the initial historian pass to clean
 *  up low-signal U: lines and cross-compartment duplicates. Recommended for models
 *  without extended thinking; not needed for Claude Sonnet/Opus when reasoning is
 *  enabled via OpenCode variant config. */
export declare const HistorianConfigSchema: z.ZodOptional<z.ZodObject<{
    model: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    top_p: z.ZodOptional<z.ZodNumber>;
    prompt: z.ZodOptional<z.ZodString>;
    tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
    disable: z.ZodOptional<z.ZodBoolean>;
    description: z.ZodOptional<z.ZodString>;
    mode: z.ZodOptional<z.ZodEnum<{
        subagent: "subagent";
        primary: "primary";
        all: "all";
    }>>;
    color: z.ZodOptional<z.ZodString>;
    maxSteps: z.ZodOptional<z.ZodNumber>;
    permission: z.ZodOptional<z.ZodObject<{
        edit: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>]>>;
        webfetch: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        doom_loop: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
        external_directory: z.ZodOptional<z.ZodEnum<{
            deny: "deny";
            allow: "allow";
            ask: "ask";
        }>>;
    }, z.core.$strip>>;
    maxTokens: z.ZodOptional<z.ZodNumber>;
    variant: z.ZodOptional<z.ZodString>;
    fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    two_pass: z.ZodDefault<z.ZodBoolean>;
    thinking_level: z.ZodOptional<z.ZodEnum<{
        off: "off";
        minimal: "minimal";
        low: "low";
        medium: "medium";
        high: "high";
        xhigh: "xhigh";
    }>>;
}, z.core.$strip>>;
export type HistorianConfig = NonNullable<z.infer<typeof HistorianConfigSchema>>;
export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
    provider: z.ZodDefault<z.ZodEnum<{
        off: "off";
        local: "local";
        "openai-compatible": "openai-compatible";
    }>>;
    model: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    api_key: z.ZodOptional<z.ZodString>;
    input_type: z.ZodOptional<z.ZodString>;
    truncate: z.ZodOptional<z.ZodString>;
    max_input_tokens: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>, z.ZodTransform<{
    max_input_tokens?: number | undefined;
    provider: "local";
    model: string;
} | {
    max_input_tokens?: number | undefined;
    truncate?: string | undefined;
    input_type?: string | undefined;
    api_key?: string | undefined;
    provider: "openai-compatible";
    model: string;
    endpoint: string;
} | {
    provider: "off";
}, {
    provider: "off" | "local" | "openai-compatible";
    model?: string | undefined;
    endpoint?: string | undefined;
    api_key?: string | undefined;
    input_type?: string | undefined;
    truncate?: string | undefined;
    max_input_tokens?: number | undefined;
}>>;
export type EmbeddingConfig = z.infer<typeof EmbeddingConfigSchema>;
export interface MagicContextConfig {
    enabled: boolean;
    /** Auto-update the cached OpenCode plugin wrapper when a newer npm version is available.
     *  USER config only; project configs cannot disable it. Default: true. */
    auto_update?: boolean;
    /** When false, ctx_reduce tool is not registered, all nudges are disabled,
     *  and prompt guidance about ctx_reduce is stripped. Heuristic cleanup,
     *  compartments, memory, and other features continue to work. Default: true. */
    ctx_reduce_enabled: boolean;
    historian?: HistorianConfig;
    dreamer?: DreamerConfig;
    cache_ttl: string | {
        default: string;
        [modelKey: string]: string;
    };
    execute_threshold_percentage: number | {
        default: number;
        [modelKey: string]: number;
    };
    /** Absolute token thresholds per model. When set for a given model (or via `default`),
     *  this overrides `execute_threshold_percentage` for that model. Useful for hard caps
     *  matching provider input limits. Values above 80% × context_limit are clamped with a warning. */
    execute_threshold_tokens?: {
        default?: number;
        [modelKey: string]: number | undefined;
    };
    protected_tags: number;
    clear_reasoning_age: number;
    history_budget_percentage: number;
    historian_timeout_ms: number;
    commit_cluster_trigger: {
        enabled: boolean;
        min_clusters: number;
    };
    /** Per-connection SQLite tuning for Magic Context's own context.db. */
    sqlite: {
        cache_size_mb: number;
        mmap_size_mb: number;
    };
    /**
     * Controls whether and where Magic Context augments the system prompt
     * (`## Magic Context` guidance, `<project-docs>`, `<user-profile>`,
     * `<key-files>`, sticky date) inside `experimental.chat.system.transform`.
     *
     * Internal OpenCode hidden agents (title, summary, compaction) are
     * always skipped automatically — that's a separate code path.
     */
    system_prompt_injection: {
        /** When false, NO injection happens for ANY agent — global escape hatch. */
        enabled: boolean;
        /**
         * If the agent's system prompt contains any of these substrings,
         * skip ALL Magic Context injection for that call. Lets users opt
         * specific agents out (e.g. read-only QA agents that deny our
         * `ctx_*` tools and don't need the guidance). The default marker
         * `<!-- magic-context: skip -->` is meant to be added inside the
         * user's custom agent prompt.
         */
        skip_signatures: string[];
    };
    /** Inject elapsed-time markers between user messages and date ranges on
     *  compartments so the agent has a wall-clock sense of the session.
     *  Graduated from `experimental.temporal_awareness`; default: true. */
    temporal_awareness: boolean;
    /** Debug: when true, keep the child sessions Magic Context spawns for its
     *  own subagents (historian, dreamer, sidekick, memory-migration) instead
     *  of deleting them on success. For short-term inspection/data collection;
     *  kept sessions accumulate until manually cleared. Default false. */
    keep_subagents: boolean;
    /**
     * Age-tier caveman compression for long user/assistant text parts.
     * Graduated from `experimental.caveman_text_compression`; opt-in, default off.
     *
     * Only active when `ctx_reduce_enabled: false`. Buckets eligible
     * (outside-protected-tail) messages into four age tiers by tag
     * position — oldest 20% → ultra, next 20% → full, next 20% → lite,
     * newest 40% → untouched — and rewrites the text part in place.
     * Always compresses from the original source (source_contents), so
     * tier shifts produce the same result as if the target depth were
     * applied directly to the original text.
     *
     * Disabled by default because it rewrites agent-visible history.
     */
    caveman_text_compression: {
        enabled: boolean;
        /** Text parts shorter than this (characters) are left untouched. */
        min_chars: number;
    };
    embedding: EmbeddingConfig;
    memory: {
        enabled: boolean;
        injection_budget_tokens: number;
        auto_promote: boolean;
        retrieval_count_promotion_threshold: number;
        /** Appends a compact hint to new user messages when ctx_search finds
         *  highly-related memories, conversation, or git commits. Does NOT
         *  inject full content — just vague fragments that nudge the agent to
         *  run ctx_search for full context if relevant. Graduated from
         *  `experimental.auto_search`; enabled by default. Independent of
         *  `memory.enabled` — it can still surface conversation/git hints when
         *  the memory store is off. */
        auto_search: {
            enabled: boolean;
            /** Top hit score must exceed this threshold for the hint to fire. */
            score_threshold: number;
            /** Minimum user message length in characters (skip short prompts). */
            min_prompt_chars: number;
        };
        /** Index git commit messages from HEAD into a new ctx_search source so
         *  agents can recall recent regressions, fixes, and decisions from
         *  commit history without running git log manually. Graduated from
         *  `experimental.git_commit_indexing`; opt-in, default off. Independent
         *  of `memory.enabled`. */
        git_commit_indexing: {
            enabled: boolean;
            /** Days of history to index (default: 365) */
            since_days: number;
            /** Max commits kept per project; oldest evicted (default: 2000) */
            max_commits: number;
        };
    };
    sidekick?: SidekickConfig;
}
export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
    enabled: z.ZodDefault<z.ZodBoolean>;
    auto_update: z.ZodOptional<z.ZodBoolean>;
    ctx_reduce_enabled: z.ZodDefault<z.ZodBoolean>;
    historian: z.ZodOptional<z.ZodObject<{
        model: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        top_p: z.ZodOptional<z.ZodNumber>;
        prompt: z.ZodOptional<z.ZodString>;
        tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
        disable: z.ZodOptional<z.ZodBoolean>;
        description: z.ZodOptional<z.ZodString>;
        mode: z.ZodOptional<z.ZodEnum<{
            subagent: "subagent";
            primary: "primary";
            all: "all";
        }>>;
        color: z.ZodOptional<z.ZodString>;
        maxSteps: z.ZodOptional<z.ZodNumber>;
        permission: z.ZodOptional<z.ZodObject<{
            edit: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>]>>;
            webfetch: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            doom_loop: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            external_directory: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
        }, z.core.$strip>>;
        maxTokens: z.ZodOptional<z.ZodNumber>;
        variant: z.ZodOptional<z.ZodString>;
        fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
        two_pass: z.ZodDefault<z.ZodBoolean>;
        thinking_level: z.ZodOptional<z.ZodEnum<{
            off: "off";
            minimal: "minimal";
            low: "low";
            medium: "medium";
            high: "high";
            xhigh: "xhigh";
        }>>;
    }, z.core.$strip>>;
    dreamer: z.ZodOptional<z.ZodObject<{
        model: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        top_p: z.ZodOptional<z.ZodNumber>;
        prompt: z.ZodOptional<z.ZodString>;
        tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
        disable: z.ZodOptional<z.ZodBoolean>;
        description: z.ZodOptional<z.ZodString>;
        mode: z.ZodOptional<z.ZodEnum<{
            subagent: "subagent";
            primary: "primary";
            all: "all";
        }>>;
        color: z.ZodOptional<z.ZodString>;
        maxSteps: z.ZodOptional<z.ZodNumber>;
        permission: z.ZodOptional<z.ZodObject<{
            edit: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>]>>;
            webfetch: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            doom_loop: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            external_directory: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
        }, z.core.$strip>>;
        maxTokens: z.ZodOptional<z.ZodNumber>;
        variant: z.ZodOptional<z.ZodString>;
        fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
        schedule: z.ZodDefault<z.ZodString>;
        max_runtime_minutes: z.ZodDefault<z.ZodNumber>;
        tasks: z.ZodDefault<z.ZodArray<z.ZodEnum<{
            consolidate: "consolidate";
            verify: "verify";
            "archive-stale": "archive-stale";
            improve: "improve";
            "maintain-docs": "maintain-docs";
        }>>>;
        task_timeout_minutes: z.ZodDefault<z.ZodNumber>;
        inject_docs: z.ZodDefault<z.ZodBoolean>;
        user_memories: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            promotion_threshold: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        pin_key_files: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            token_budget: z.ZodDefault<z.ZodNumber>;
            min_reads: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        thinking_level: z.ZodOptional<z.ZodEnum<{
            off: "off";
            minimal: "minimal";
            low: "low";
            medium: "medium";
            high: "high";
            xhigh: "xhigh";
        }>>;
    }, z.core.$strip>>;
    cache_ttl: z.ZodDefault<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        default: z.ZodString;
    }, z.core.$catchall<z.ZodString>>]>>;
    execute_threshold_percentage: z.ZodDefault<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
        default: z.ZodNumber;
    }, z.core.$catchall<z.ZodNumber>>]>>;
    execute_threshold_tokens: z.ZodOptional<z.ZodObject<{
        default: z.ZodOptional<z.ZodNumber>;
    }, z.core.$catchall<z.ZodNumber>>>;
    protected_tags: z.ZodOptional<z.ZodNumber>;
    clear_reasoning_age: z.ZodDefault<z.ZodNumber>;
    history_budget_percentage: z.ZodDefault<z.ZodNumber>;
    historian_timeout_ms: z.ZodDefault<z.ZodNumber>;
    commit_cluster_trigger: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        min_clusters: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    system_prompt_injection: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        skip_signatures: z.ZodDefault<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    sqlite: z.ZodDefault<z.ZodObject<{
        cache_size_mb: z.ZodDefault<z.ZodNumber>;
        mmap_size_mb: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    embedding: z.ZodDefault<z.ZodPipe<z.ZodObject<{
        provider: z.ZodDefault<z.ZodEnum<{
            off: "off";
            local: "local";
            "openai-compatible": "openai-compatible";
        }>>;
        model: z.ZodOptional<z.ZodString>;
        endpoint: z.ZodOptional<z.ZodString>;
        api_key: z.ZodOptional<z.ZodString>;
        input_type: z.ZodOptional<z.ZodString>;
        truncate: z.ZodOptional<z.ZodString>;
        max_input_tokens: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>, z.ZodTransform<{
        max_input_tokens?: number | undefined;
        provider: "local";
        model: string;
    } | {
        max_input_tokens?: number | undefined;
        truncate?: string | undefined;
        input_type?: string | undefined;
        api_key?: string | undefined;
        provider: "openai-compatible";
        model: string;
        endpoint: string;
    } | {
        provider: "off";
    }, {
        provider: "off" | "local" | "openai-compatible";
        model?: string | undefined;
        endpoint?: string | undefined;
        api_key?: string | undefined;
        input_type?: string | undefined;
        truncate?: string | undefined;
        max_input_tokens?: number | undefined;
    }>>>;
    temporal_awareness: z.ZodDefault<z.ZodBoolean>;
    keep_subagents: z.ZodDefault<z.ZodBoolean>;
    caveman_text_compression: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        min_chars: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    memory: z.ZodDefault<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        injection_budget_tokens: z.ZodDefault<z.ZodNumber>;
        auto_promote: z.ZodDefault<z.ZodBoolean>;
        retrieval_count_promotion_threshold: z.ZodDefault<z.ZodNumber>;
        auto_search: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            score_threshold: z.ZodDefault<z.ZodNumber>;
            min_prompt_chars: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
        git_commit_indexing: z.ZodDefault<z.ZodObject<{
            enabled: z.ZodDefault<z.ZodBoolean>;
            since_days: z.ZodDefault<z.ZodNumber>;
            max_commits: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    sidekick: z.ZodOptional<z.ZodObject<{
        model: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        top_p: z.ZodOptional<z.ZodNumber>;
        prompt: z.ZodOptional<z.ZodString>;
        tools: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
        disable: z.ZodOptional<z.ZodBoolean>;
        description: z.ZodOptional<z.ZodString>;
        mode: z.ZodOptional<z.ZodEnum<{
            subagent: "subagent";
            primary: "primary";
            all: "all";
        }>>;
        color: z.ZodOptional<z.ZodString>;
        maxSteps: z.ZodOptional<z.ZodNumber>;
        permission: z.ZodOptional<z.ZodObject<{
            edit: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>, z.ZodRecord<z.ZodString, z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>]>>;
            webfetch: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            doom_loop: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
            external_directory: z.ZodOptional<z.ZodEnum<{
                deny: "deny";
                allow: "allow";
                ask: "ask";
            }>>;
        }, z.core.$strip>>;
        maxTokens: z.ZodOptional<z.ZodNumber>;
        variant: z.ZodOptional<z.ZodString>;
        fallback_models: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
        timeout_ms: z.ZodDefault<z.ZodNumber>;
        system_prompt: z.ZodOptional<z.ZodString>;
        thinking_level: z.ZodOptional<z.ZodEnum<{
            off: "off";
            minimal: "minimal";
            low: "low";
            medium: "medium";
            high: "high";
            xhigh: "xhigh";
        }>>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodTransform<MagicContextConfig, {
    enabled: boolean;
    ctx_reduce_enabled: boolean;
    cache_ttl: string | {
        [x: string]: string;
        default: string;
    };
    execute_threshold_percentage: number | {
        [x: string]: number;
        default: number;
    };
    clear_reasoning_age: number;
    history_budget_percentage: number;
    historian_timeout_ms: number;
    commit_cluster_trigger: {
        enabled: boolean;
        min_clusters: number;
    };
    system_prompt_injection: {
        enabled: boolean;
        skip_signatures: string[];
    };
    sqlite: {
        cache_size_mb: number;
        mmap_size_mb: number;
    };
    embedding: {
        max_input_tokens?: number | undefined;
        provider: "local";
        model: string;
    } | {
        max_input_tokens?: number | undefined;
        truncate?: string | undefined;
        input_type?: string | undefined;
        api_key?: string | undefined;
        provider: "openai-compatible";
        model: string;
        endpoint: string;
    } | {
        provider: "off";
    };
    temporal_awareness: boolean;
    keep_subagents: boolean;
    caveman_text_compression: {
        enabled: boolean;
        min_chars: number;
    };
    memory: {
        enabled: boolean;
        injection_budget_tokens: number;
        auto_promote: boolean;
        retrieval_count_promotion_threshold: number;
        auto_search: {
            enabled: boolean;
            score_threshold: number;
            min_prompt_chars: number;
        };
        git_commit_indexing: {
            enabled: boolean;
            since_days: number;
            max_commits: number;
        };
    };
    auto_update?: boolean | undefined;
    historian?: {
        two_pass: boolean;
        model?: string | undefined;
        temperature?: number | undefined;
        top_p?: number | undefined;
        prompt?: string | undefined;
        tools?: Record<string, boolean> | undefined;
        disable?: boolean | undefined;
        description?: string | undefined;
        mode?: "subagent" | "primary" | "all" | undefined;
        color?: string | undefined;
        maxSteps?: number | undefined;
        permission?: {
            edit?: "deny" | "allow" | "ask" | undefined;
            bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
            webfetch?: "deny" | "allow" | "ask" | undefined;
            doom_loop?: "deny" | "allow" | "ask" | undefined;
            external_directory?: "deny" | "allow" | "ask" | undefined;
        } | undefined;
        maxTokens?: number | undefined;
        variant?: string | undefined;
        fallback_models?: string | string[] | undefined;
        thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
    } | undefined;
    dreamer?: {
        schedule: string;
        max_runtime_minutes: number;
        tasks: ("consolidate" | "verify" | "archive-stale" | "improve" | "maintain-docs")[];
        task_timeout_minutes: number;
        inject_docs: boolean;
        user_memories: {
            enabled: boolean;
            promotion_threshold: number;
        };
        pin_key_files: {
            enabled: boolean;
            token_budget: number;
            min_reads: number;
        };
        model?: string | undefined;
        temperature?: number | undefined;
        top_p?: number | undefined;
        prompt?: string | undefined;
        tools?: Record<string, boolean> | undefined;
        disable?: boolean | undefined;
        description?: string | undefined;
        mode?: "subagent" | "primary" | "all" | undefined;
        color?: string | undefined;
        maxSteps?: number | undefined;
        permission?: {
            edit?: "deny" | "allow" | "ask" | undefined;
            bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
            webfetch?: "deny" | "allow" | "ask" | undefined;
            doom_loop?: "deny" | "allow" | "ask" | undefined;
            external_directory?: "deny" | "allow" | "ask" | undefined;
        } | undefined;
        maxTokens?: number | undefined;
        variant?: string | undefined;
        fallback_models?: string | string[] | undefined;
        thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
    } | undefined;
    execute_threshold_tokens?: {
        [x: string]: number;
        default?: number | undefined;
    } | undefined;
    protected_tags?: number | undefined;
    sidekick?: {
        timeout_ms: number;
        model?: string | undefined;
        temperature?: number | undefined;
        top_p?: number | undefined;
        prompt?: string | undefined;
        tools?: Record<string, boolean> | undefined;
        disable?: boolean | undefined;
        description?: string | undefined;
        mode?: "subagent" | "primary" | "all" | undefined;
        color?: string | undefined;
        maxSteps?: number | undefined;
        permission?: {
            edit?: "deny" | "allow" | "ask" | undefined;
            bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
            webfetch?: "deny" | "allow" | "ask" | undefined;
            doom_loop?: "deny" | "allow" | "ask" | undefined;
            external_directory?: "deny" | "allow" | "ask" | undefined;
        } | undefined;
        maxTokens?: number | undefined;
        variant?: string | undefined;
        fallback_models?: string | string[] | undefined;
        system_prompt?: string | undefined;
        thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
    } | undefined;
}>>;
//# sourceMappingURL=magic-context.d.ts.map