/**
 * ClaudeCliIntelligenceProvider — IntelligenceProvider using the Claude CLI.
 *
 * Uses `claude -p` (print mode) to route judgment calls through the Agent SDK
 * credit path (prepaid as part of the Max subscription) and, by extension, the
 * subscription floor when credits exhaust. This is the only IntelligenceProvider
 * implementation in Instar — direct Anthropic API calls are forbidden per
 * Rule 2 of the path constraints
 * (specs/provider-portability/04-anthropic-path-constraints.md).
 */
import type { IntelligenceProvider, IntelligenceOptions } from './types.js';
export declare class ClaudeCliIntelligenceProvider implements IntelligenceProvider {
    private claudePath;
    constructor(claudePath: string);
    evaluate(prompt: string, options?: IntelligenceOptions): Promise<string>;
}
/**
 * Parse `claude -p --output-format json` stdout into the response text, and
 * surface token usage via onUsage. The CLI emits a single JSON object shaped
 * `{ result: string, usage: { input_tokens, cache_creation_input_tokens,
 * cache_read_input_tokens, output_tokens, ... }, ... }`.
 *
 * Defensive by design — usage observability must never break the LLM path:
 *  - If stdout isn't valid JSON, or has no string `result`, fall back to the
 *    raw trimmed stdout (degraded, but non-crashing — same shape as the old
 *    text path would have produced).
 *  - tokensIn sums the input components actually processed (fresh + cache
 *    creation + cache read), since each is a real cost; tokensOut is
 *    output_tokens. Missing fields count as 0. onUsage fires only when at least
 *    one token count is present, and never throws into the caller.
 *  - cachedTokens (token-audit-completeness) is cache_read_input_tokens ONLY —
 *    a SUBSET of tokensIn (tokensIn's meaning unchanged). Cache CREATION costs
 *    ~1.25× fresh and stays plain input; cache READS cost ~0.1× — collapsing
 *    them would point the cost signal in two directions at once.
 */
export declare function parseJsonResult(stdout: string, onUsage?: (usage: {
    inputTokens: number;
    outputTokens: number;
    cachedTokens?: number;
}) => void): string;
//# sourceMappingURL=ClaudeCliIntelligenceProvider.d.ts.map