import type { Provider, ThinkingLevel } from "@kenkaiiii/gg-ai";
export interface JsonModeOptions {
    message: string;
    provider: Provider;
    model: string;
    baseUrl?: string;
    systemPrompt?: string;
    cwd: string;
    thinkingLevel?: ThinkingLevel;
    maxTurns?: number;
    /**
     * Tool allow-list forwarded from an agent definition's `tools:` frontmatter.
     * When set, the sub-agent session registers ONLY these tool names, so a
     * read-only agent (e.g. `tools: read, grep`) physically cannot call
     * write/edit/bash. Empty/undefined → full toolset (backward compatible).
     */
    allowedTools?: string[];
    /**
     * Stable prompt-cache routing key inherited from the parent ggcoder
     * process. Without this, each sub-agent session generates a unique
     * sessionId-derived cache key and starts with a cold cache on providers
     * that route caching by key (OpenAI Codex, OpenAI Chat, Moonshot).
     */
    promptCacheKey?: string;
}
export declare function runJsonMode(options: JsonModeOptions): Promise<void>;
//# sourceMappingURL=json-mode.d.ts.map