// Type declarations for @hanzo/plans — the canonical Hanzo plan catalog. // JSON catalogs are data-first; the Plan shape mirrors plan.schema.json. export interface PlanLimits { channels?: number; posts?: number; team?: number; ai?: boolean; webhooks?: number; generation?: boolean; /** Agents the plan may run at once; -1 = unlimited. A capacity, not an hour allowance. */ agents?: number; /** Resident bots the plan may run; -1 = unlimited. A capacity, not an hour allowance. */ bots?: number; [key: string]: unknown; } /** * What agent compute costs, in `currency`. Billed by RUNTIME — every hour an * agent runs, whether coding, answering in a chat session, or resident as a * bot. PlanLimits.agents / PlanLimits.bots cap how many may exist; this prices * the hours they run. */ export interface Seats { currency: string; runtime: { agentHourUSD: number }; note: string; } export interface Plan { id: string; name: string; description?: string; priceMonthly: number | null; priceAnnual: number | null; category: string; popular?: boolean; contactSales?: boolean; features?: string[]; bundles?: string[]; includedIn?: string[]; limits?: PlanLimits; [key: string]: unknown; } export declare const cloudPlans: Plan[]; export declare const subscriptionPlans: Plan[]; export declare const blockchainPlans: Plan[]; export declare const dnsPlans: Plan[]; /** * Managed-service DISPLAY rate cards (Search, Crawl, Vector, Console, Managed). * What a product costs — carries no entitlement or limit fields, because nothing * bills off it and a number here must never become a grant. */ export declare const servicePricing: { version: string; currency: string; services: Record[]; }; export declare const gpuTiers: Record[]; export declare const regions: Record[]; export declare const seats: Seats; export declare const storage: Record[]; export declare const tools: Record[]; export declare const pricingPolicy: Record; export declare const entitlementSchema: Record; export declare const planSchema: Record; export declare const ENTITLEMENT_KEYS: readonly string[]; export declare const NAMESPACES: readonly string[]; export declare const ENGINE_FEATURES: readonly string[]; export declare const UNLIMITED: number; export declare function isEntitlementKey(key: string): boolean; export declare function keysIn(namespace: string): string[]; export declare function fromLegacy(legacy: Record): Record; export declare function toPriceRefStub(plan: Plan): Record; export declare function toLicenseFeatures(plan: Plan): Record; export declare function resolvePlan(id: string): Plan | undefined;