import { AgentBase, type SpawnPlan } from '../../../core/agent-base.js';
import type { AgentSendOpts } from '../../../core/types.js';
export declare class ClaudeCodeAdapter extends AgentBase {
    readonly name = "claude-code";
    readonly aliases: string[];
    readonly kind: "cli";
    protected get commandName(): string;
    /**
     * Legacy/fallback args — used when approval routing is disabled or not
     * applicable (no IM context, bus down, IMHUB_APPROVAL_DISABLED=1).
     *
     * planMode override: when opts.planMode is true we hand claude
     * `--permission-mode plan` regardless of fallback path. plan is read-only
     * by design so the IM approval bus has nothing to gate, and dontAsk would
     * silently re-allow mutations the user explicitly opted out of.
     */
    protected buildArgs(prompt: string, opts: AgentSendOpts): string[];
    protected prepareCommand(prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
    protected extractText(event: unknown): string;
    /**
     * v1.3 — surface Claude Code's own cost + token usage so the audit-log
     * actually records non-zero numbers for claude invocations. Claude Code
     * CLI 2.x emits a `result` event at the end of each run with
     * `total_cost_usd` (already priced) and `usage` (token counts). We pipe
     * both through `opts.onUsage`, which the router accumulates and writes
     * into invocations.cost.
     */
    protected inspectEvent(event: unknown, opts: AgentSendOpts): void;
}
export declare const claudeCodeAdapter: ClaudeCodeAdapter;
export declare const _testInternals: {
    prepareCommand(adapter: ClaudeCodeAdapter, prompt: string, opts: AgentSendOpts): Promise<SpawnPlan>;
    buildArgs(adapter: ClaudeCodeAdapter, prompt: string, opts?: AgentSendOpts): string[];
};
//# sourceMappingURL=index.d.ts.map