/**
 * vertical-group-catalog.ts — Vertical group pack catalog computation.
 *
 * Thomas Layer 0 directive 2026-05-22 00:10 (FINAL canonical pricing model):
 *
 * Customers MUST buy a vertical group pack first.
 * A "group" = vertical × jurisdiction derived from the ACTIVE_PACKS registry.
 *
 * Group pricing is tiered by pack count:
 *   4 packs in group  → $4,000 / yr
 *   5 packs in group  → $5,000 / yr
 *   6 packs in group  → $6,000 / yr
 *   7+ packs in group → $7,000 / yr (auto-cap, includes full 143-pack catalog)
 *
 * After group purchase, individual add-ons from packs OUTSIDE the customer's
 * group are available at $400 / yr each.
 *
 * Hard billing cap: $7,000 / yr per customer. At-cap → full 143-pack catalog unlocked.
 *
 * @connexum/ai-governance
 */
import { type CompliancePackDefinition } from './registry-expanded.js';
/**
 * Active packs + draft packs — the source of truth for group computation.
 *
 * Draft packs are content-complete packs pending Vera (Legal & Compliance) citation
 * review before promotion to ACTIVE. They appear in the catalog and in the
 * healthcare-us group (so the $7,000/yr group pricing is correct) but the
 * dashboard surfaces them with a "Coming Soon — In Verification" badge.
 * Draft-vs-active badge UI is Phase 2 of SE Blocker #1 RFC.
 *
 * SE Blocker #2 (2026-05-24): 6 Hospital pack drafts added to healthcare-us group.
 */
export declare const ACTIVE_PACKS: CompliancePackDefinition[];
export interface VerticalGroup {
    /** Stable slug key, e.g. 'healthcare-us', 'financial-eu'. */
    groupKey: string;
    vertical: string;
    jurisdiction: string;
    /** Human-readable label, e.g. "US Healthcare". */
    displayName: string;
    description: string;
    packs: CompliancePackDefinition[];
    /** Annual group price in USD — computed from pack count via priceForGroupSize(). */
    priceAnnualUsd: number;
    /**
     * Baseline pack IDs auto-included with this group at no extra cost.
     * Always contains 'iso27001'. Also contains 'gdpr' when the group's
     * jurisdiction is EU / Global / International or an EU member state.
     * Packs already in the primary packs[] are filtered out (no duplicates).
     *
     * Thomas Layer 0 directive 2026-05-21 23:45 + bundled-license decision 2026-05-22.
     */
    includedBaselinePacks: string[];
}
/** Hard annual billing cap per customer. At-cap → full 143-pack catalog unlocked. */
export declare const BILLING_CAP_USD = 7000;
/** Per-pack add-on annual price (packs OUTSIDE the customer's purchased group). */
export declare const ADDON_PRICE_ANNUAL_USD = 400;
/**
 * Compute the annual group price given the number of packs in the group.
 *
 * Thomas directive 2026-05-22 00:10:
 *   - 1-3 packs: $1,000/pack (smaller groups, linear)
 *   - 4 packs: $4,000
 *   - 5 packs: $5,000
 *   - 6 packs: $6,000
 *   - 7+:       $7,000 (auto-cap)
 */
export declare function priceForGroupSize(packCount: number): number;
/**
 * Compute all vertical groups from the ACTIVE_PACKS catalog.
 *
 * Groups are keyed on (vertical × jurisdiction). Each group carries:
 *  - the full list of packs in that group
 *  - the computed annual price based on pack count
 *
 * Sorted descending by pack count so the largest (most value) groups appear first.
 */
export declare function computeVerticalGroups(): VerticalGroup[];
/**
 * Returns true for every group — ISO 27001 is a universal baseline licensed
 * with every group pack purchase.
 *
 * **Licensing-layer only.** The customer still must explicitly bind ISO 27001
 * to a specific agent and verify per-rule actions in the wizard.
 */
export declare function groupBundlesIso27001(_group: VerticalGroup): boolean;
/**
 * Returns true when the group's jurisdiction covers the EU or an EU member
 * state, in which case GDPR is bundled with the group license at no extra cost.
 *
 * **Licensing-layer only.** The customer still must explicitly bind GDPR
 * to a specific agent and verify per-rule actions in the wizard.
 */
export declare function groupBundlesGdpr(group: VerticalGroup): boolean;
/**
 * Returns the list of pack IDs that are licensed for free with the given
 * group pack purchase.
 *
 * Always includes 'iso27001'. Also includes 'gdpr' when the group's
 * jurisdiction is EU / Global / International or an EU member state.
 *
 * Filters out any pack IDs already present in group.packs[] so that primary
 * group packs are never listed again as bundled extras.
 *
 * **Licensing-layer only.** Customer who licenses this group gets these packs
 * licensed too (free, capability-bundling). Per-agent BINDING + per-rule
 * VERIFICATION remain explicit customer actions in the wizard.
 */
export declare function bundledLicensedPacks(group: VerticalGroup): string[];
/**
 * Given a pack ID, find the group it belongs to.
 * Returns null if the pack is not found in any group.
 */
export declare function findGroupForPack(packId: string, groups?: VerticalGroup[]): VerticalGroup | null;
//# sourceMappingURL=vertical-group-catalog.d.ts.map