/**
 * Adapter-specific error helpers for pi-cli.
 *
 * Maps raw failures (pi CLI non-zero exit, timeout/abort) to the canonical
 * ProviderError hierarchy. Mirrors gemini-cli/errors.ts 1:1 but scoped to pi,
 * plus the one pi-specific error class the subscription guard needs
 * (`PiAnthropicRouteError`, PI-HARNESS-INTEGRATION-SPEC §4.3 — thrown by
 * policy.ts, NOT this file).
 */
import { AuthError, ProviderError } from '../../errors.js';
import { type ProviderId } from '../../types.js';
/** Stable provider id for the pi coding agent adapter. */
export declare const PI_CLI_ID: ProviderId;
/**
 * The subscription-guard error (PI-HARNESS-INTEGRATION-SPEC §4.3).
 *
 * Thrown by `policy.ts` (`assertPiProviderAllowed`) — NOT by this file's
 * `mapExecError` — when a pi call is constructed against an Anthropic/Claude
 * provider without the explicit `piCli.allowAnthropicProviders` override.
 * Routing Claude work through pi bills as per-token EXTRA USAGE rather than
 * counting against plan limits, so the default is structural DENY. It lives
 * in the error hierarchy (an `AuthError` subclass — a credential/route
 * authorization refusal, distinct from a quota/rate failure) so callers that
 * already branch on `AuthError` surface it uniformly.
 */
export declare class PiAnthropicRouteError extends AuthError {
    /** The offending `--model` pattern (a `provider/id` string or bare id). */
    readonly modelPattern?: string;
    constructor(modelPattern?: string);
}
/**
 * Map a raw spawn-style error from spawning `pi` into a canonical provider
 * error. Stderr is inspected for auth / rate-limit / quota / network
 * signatures (the same classification shape gemini/codex use) so the circuit
 * breaker's rate-limit classifier can see usage/limit language.
 */
export declare function mapExecError(err: Error & {
    code?: string | number;
    signal?: string;
    killed?: boolean;
    path?: string;
}, stderr?: string): ProviderError;
//# sourceMappingURL=errors.d.ts.map