import { AIRunner, AIRunResult } from './base';
/**
 * Reads `ANTHROPIC_SDK_MAX_RETRIES` from the environment, defaulting to 3.
 * Non-numeric or negative values fall back to the default. The count is the
 * number of retries *after* the initial attempt, so total attempts equal
 * `maxRetries + 1`.
 */
export declare function getAnthropicSdkMaxRetries(): number;
/**
 * Runs Claude in-process via the official `@anthropic-ai/claude-agent-sdk`
 * package rather than shelling out to the `claude` CLI. The SDK is ESM-only,
 * so we load it lazily with a dynamic `import()` from this CJS module.
 *
 * Honors a comma-separated pool of `ANTHROPIC_API_KEY` values via round-robin
 * rotation across `run()` calls — and also across retries, so a flaky token
 * gets swapped out on the next attempt. Forwards `ANTHROPIC_BASE_URL` when set
 * and selects the model via `ANTHROPIC_MODEL` (kept separate from the Claude
 * CLI's `CLAUDE_MODEL` so each runner can target a different model). The
 * `claude_code` system prompt preset combined with `cwd: process.cwd()` is
 * what makes the SDK pick up `.claude/skills`, `.claude/commands`, and
 * `.claude/agents` from the project — do not override.
 *
 * Transient SDK errors (connection drops, mid-stream failures) are retried up
 * to `ANTHROPIC_SDK_MAX_RETRIES` times (default 3) with capped exponential
 * backoff. Watchdog timeouts are surfaced immediately — they mean the run
 * already burned its budget, so a retry would only burn another.
 */
export declare class AnthropicSdkRunner implements AIRunner {
    readonly name = "anthropic-sdk";
    private tokenCursor;
    isAvailable(): boolean;
    loadSdk(): Promise<unknown>;
    retryDelayMs(attempt: number): number;
    run(prompt: string, notes?: string): Promise<AIRunResult>;
    private runOnce;
}
//# sourceMappingURL=anthropicSdk.d.ts.map