/**
 * pi-cli routing policy — the STRUCTURAL subscription guard
 * (PI-HARNESS-INTEGRATION-SPEC §4.3; Justin's additive-only constraint,
 * topic 20390, 2026-06-06).
 *
 * THE RULE: Claude work stays on Claude Code. Anthropic counts only Claude
 * Code itself against plan limits — a third-party harness like pi bills
 * Claude Pro/Max usage as per-token EXTRA USAGE. Routing an instar component
 * through pi onto an Anthropic provider would therefore silently convert
 * subscription-covered work into billed work. That must be structurally
 * impossible by default, not a configuration accident.
 *
 * Enforcement point: every pi call-construction path (one-shot transport,
 * RPC session start, intelligence provider) calls `assertPiProviderAllowed`
 * BEFORE spawning. The check is deliberately conservative: it denies any
 * model pattern that names Anthropic or Claude in ANY segment — including
 * pass-through aggregators (`openrouter/anthropic/claude-*`), which would
 * bill an API key and violate the no-API-keys rule from the other side.
 *
 * Override: `piCli.allowAnthropicProviders: true` in config — explicit,
 * file-based, never via env var or per-call parameter. Even when allowed,
 * the call is audit-logged with a cost warning so the spend is visible.
 * A false positive costs one explicit config line; a false negative costs
 * silent real money. Deny wins ties.
 */
/**
 * Decide whether a pi `--model` pattern (a `provider/id` string, a bare
 * model id, or pi's pattern syntax with an optional `:<thinking>` suffix)
 * routes to an Anthropic/Claude target.
 *
 * Exported for tests; production callers use `assertPiProviderAllowed`.
 */
export declare function isAnthropicRoutedModelPattern(modelPattern: string | undefined): boolean;
/**
 * Throw `PiAnthropicRouteError` when the model pattern routes to Anthropic
 * and the explicit override is not set. On an allowed-by-override call, the
 * audit logger is invoked so the extra-usage spend stays visible.
 */
export declare function assertPiProviderAllowed(modelPattern: string | undefined, options?: {
    allowAnthropicProviders?: boolean;
    /** Audit sink for override-allowed calls. Defaults to console.warn. */
    auditLog?: (line: string) => void;
}): void;
//# sourceMappingURL=policy.d.ts.map