export interface AgentSettings {
    /** @deprecated Use localMcpConfigDir / remoteMcpConfigDir instead. Kept as fallback. */
    mcpConfigDir?: string;
    /** Absolute path to the .drawlatch.local/ directory for local mode */
    localMcpConfigDir?: string;
    /** Absolute path to the .drawlatch.remote/ directory for remote mode */
    remoteMcpConfigDir?: string;
    /** Proxy mode: 'local' runs in-process, 'remote' connects to external server */
    proxyMode?: "local" | "remote";
    /** URL of the remote MCP secure proxy server (used in 'remote' mode only) */
    remoteServerUrl?: string;
    /** Enable cloudflared tunnel for webhook event ingestion (local mode only) */
    tunnelEnabled?: boolean;
    /** Default local MCP config directory path (read-only, computed by backend) */
    defaultLocalMcpConfigDir?: string;
    /** Default remote MCP config directory path (read-only, computed by backend) */
    defaultRemoteMcpConfigDir?: string;
    /** ANTHROPIC_BASE_URL — override the API endpoint (proxy / gateway). */
    apiBaseUrl?: string;
    /** ANTHROPIC_API_KEY — raw API key sent as X-Api-Key. */
    apiKey?: string;
    /** ANTHROPIC_AUTH_TOKEN — Bearer token (mutually exclusive with apiKey in practice). */
    authToken?: string;
    /** ANTHROPIC_MODEL — primary model alias or full ID for the session. */
    model?: string;
    /** ANTHROPIC_DEFAULT_OPUS_MODEL — model the `opus` alias resolves to. */
    defaultOpusModel?: string;
    /** ANTHROPIC_DEFAULT_SONNET_MODEL — model the `sonnet` alias resolves to. */
    defaultSonnetModel?: string;
    /** ANTHROPIC_DEFAULT_HAIKU_MODEL — model the `haiku` alias resolves to. */
    defaultHaikuModel?: string;
    /** CLAUDE_CODE_SUBAGENT_MODEL — model used by spawned subagents. */
    subagentModel?: string;
    /** Path to the Claude Code executable. Overrides the SDK's bundled binary. */
    pathToClaudeCodeExecutable?: string;
    /** OPENROUTER_API_KEY — required to enable the OpenRouter provider. */
    openRouterApiKey?: string;
    /** OPENROUTER_BASE_URL — override the OR API endpoint. */
    openRouterBaseUrl?: string;
    /** Default model alias for new OR chats. Defaults to `~anthropic/claude-sonnet-latest`. */
    openRouterModel?: string;
    /** Absolute path to write OR session logs into. Defaults to `~/.openrouter-agent-harness/logs`. */
    openRouterLogsRoot?: string;
    /**
     * Per-session OpenRouter spend cap in USD. When omitted, the OR library's
     * own default (currently $1.00) applies — which historically surprised
     * users with an unexplained "Agent reached the maximum budget limit." after
     * a couple dozen turns. Surfacing this knob lets users opt into a higher
     * ceiling for long-running coding sessions.
     */
    openRouterMaxBudgetUsd?: number;
    /**
     * User-defined model aliases — maps a custom name (e.g. "low coder") to a
     * real OpenRouter model slug (e.g. "deepseek/deepseek-chat"). Aliases are
     * accepted anywhere an OpenRouter model is configured (new chats, per-chat
     * overrides, the global default above, cron/trigger actions, MCP tools)
     * and resolve to the target slug when the session starts. Lookup is
     * case-insensitive; an alias shadows a real model slug of the same name.
     * Targets must be real slugs, never other aliases (keeps resolution one
     * hop and cycle-free).
     */
    openRouterModelAliases?: Record<string, string>;
    /**
     * Max callback-chain depth. A re-invoked parent that spawns another
     * onComplete child increments depth; once a new child would exceed this, it
     * still runs but does not register a callback. Guards against runaway
     * parent↔child recursion. Default: 10.
     */
    maxCallbackChainDepth?: number;
    /**
     * Max number of outstanding (undelivered) completion callbacks across the
     * whole instance. New onComplete registrations beyond this are skipped (the
     * session still starts). Caps fan-out breadth. Default: 25.
     */
    maxPendingCallbacks?: number;
}
export interface KeyAliasInfo {
    /** Directory name under keys/callers/ */
    alias: string;
    /** Whether signing.pub.pem exists in the alias directory */
    hasSigningPub: boolean;
    /** Whether exchange.pub.pem exists in the alias directory */
    hasExchangePub: boolean;
}
//# sourceMappingURL=agentSettings.d.ts.map