/** * Recovery guidance for plan, quota and rate-limit rejections. Without it an * agent cannot tell "upgrade or free a slot" from "retry later", and loops on * retries that can never succeed. */ export interface LimitRecovery { kind: "variant_limit" | "project_limit" | "keyword_limit" | "competitor_limit" | "translation_limit" | "plan_limit" | "api_export_quota" | "api_plan_required" | "rate_limit"; /** Whether repeating the same call later can succeed without user action. */ retryable: boolean; guidance: string; /** Where the user changes plan or billing (absolute dashboard URL). */ upgradeUrl?: string; retryAfterSeconds?: number; } /** Dashboard home: plans and billing are in its account menu. */ export declare function billingUrl(baseUrl: string | undefined): string | undefined; export declare function limitRecovery(error: unknown): LimitRecovery | null;