/**
 * Unified VerticalPack registry.
 *
 * A "vertical" is a use-case domain advertised on the marketing site
 * (`/use-cases`, formerly `/verticals`) and used as the unit of activation.
 * Each `VerticalPack` may bind to:
 *
 *   - a sandbox manifest under `tests/fixtures/sandbox/verticals/<slug>/manifest.json`
 *     replayed when a hosted sandbox session boots with `pack_id=<slug>`.
 *   - a schema manifest under `src/services/verticals/schemas/<slug>.json` that
 *     extends `ENTITY_SCHEMAS` with vertical-specific entity types when the pack
 *     is installed (via `installVerticalPack(slug)` or activation Stage 0.5).
 *
 * Both bindings are optional: `crm` ships with both, while `personal-agent`
 * has only a sandbox manifest because all of its entity types are already
 * baseline (`agent_session`, `agent_task`, `agent_outcome`, `agent_artifact`)
 * plus one new schema (`tool_handoff`) that lives in its schema manifest.
 *
 * ## Naming rules
 *
 * - Slugs are stable, kebab-case, and used in URLs, manifest paths, and
 *   `EntitySchemaMetadata.verticals`. Renaming a slug requires a 301 redirect
 *   and a code-search; prefer adding aliases over renaming.
 * - Chip labels are sentence case (e.g. "Customer development", "Personal life")
 *   matching the public-facing copy on `VerticalsIndexPage`.
 * - The internal vocabulary is "vertical" / `VerticalPack`; the public surface
 *   uses "use case". The split is intentional and matches industry practice
 *   (cf. confirmed trade-off #9 in the v0.8.0 release plan).
 *
 * ## Natural-minimum rule (trade-off #7)
 *
 * Each vertical declares a "natural minimum" entity-type count, not a fixed
 * floor. Six verticals were expanded from 4 to 5 entity types because a fifth
 * is genuinely native to the domain:
 *
 *   - compliance + finding
 *   - diligence + ic_memo
 *   - cases + ruling
 *   - healthcare + medication
 *   - government + appeal
 *   - logistics + exception
 *
 * Six verticals stay at 4 (crm, contracts, portfolio, financial-ops,
 * procurement, customer-ops) because a fifth would be forced. Four verticals
 * already ship 5+ entries (agent-auth, personal-data, trading, crypto-engineering).
 * Future PRs should resist inflating these counts artificially; any expansion
 * MUST justify the new entity type by domain-native usage and not by symmetry.
 *
 * ## Cross-vertical entity sharing
 *
 * Some entity types appear in multiple packs by design — e.g. `interview` and
 * `meeting_transcription` are equally native to `customer-development` and
 * `meetings`. The schema registry de-dupes on `entity_type`, so multiple packs
 * may declare the same type. Their schema definitions MUST be compatible
 * (identical canonical_name_fields, compatible field shapes); install lifecycle
 * trusts the first registration and warns on conflicts during the second.
 *
 * ## Personal-agent meta-vertical
 *
 * The `personal-agent` slug is a meta-vertical: it captures *how* the agent
 * stack itself runs across tools (Claude Code, Cursor, Codex, OpenCode), not
 * *what* the operator works on per domain. It is offered as a Stage 0.5
 * fallback only when filesystem signals show multi-tool agent config but no
 * domain vertical scores above the confidence threshold. It is never installed
 * by default and never installed in enterprise deployments where a specialized
 * vertical was selected.
 */
export type VerticalSlug = (typeof VERTICAL_SLUGS)[number];
export declare const VERTICAL_SLUGS: readonly ["compliance", "crm", "contracts", "diligence", "portfolio", "cases", "financial-ops", "procurement", "agent-auth", "healthcare", "government", "customer-ops", "logistics", "personal-data", "trading", "crypto-engineering", "engineering", "customer-development", "content-ops", "meetings", "personal-agent"];
export interface VerticalPack {
    /** Stable kebab-case identifier used in URLs, schema metadata, and manifests. */
    slug: string;
    /** Sentence-case label rendered in marketing chips and the records-index tabs. */
    label: string;
    /** Page title on the corresponding landing page. */
    title: string;
    /** Single-sentence pitch shown beneath the title and on the index card. */
    tagline: string;
    /**
     * Representative entity types a user will encounter inside this vertical.
     * MUST match the schemas declared in `schema_manifest_path` (when present)
     * plus any baseline entity types shared from `ENTITY_SCHEMAS`.
     */
    entityExamples: string[];
    /** Diagnostic narrative question rendered on the index card. */
    thenQuestion: string;
    /** Lucide icon name used by the index card. Must exist in `lucide-react`. */
    icon: string;
    /** Tailwind text-color tokens for accent rendering (light + dark variants). */
    accent: string;
    /** Tailwind background-color tokens for the chip pill. */
    accentBg: string;
    /** Tailwind border-color tokens for the chip pill. */
    accentBorder: string;
    /** Marketing href for the landing page (without origin). */
    marketingHref: string;
    /**
     * Repo-relative path to a sandbox seed manifest. Omitted when no fixtures
     * have been authored yet. Consumed by `scripts/seed_sandbox.ts`.
     */
    sandbox_manifest_path?: string;
    /**
     * Repo-relative path to a schema manifest declaring vertical-specific
     * entity types. Omitted when the vertical relies entirely on baseline
     * `ENTITY_SCHEMAS` entries. Consumed by `installVerticalPack(slug)`.
     */
    schema_manifest_path?: string;
    /**
     * When true, this slug is offered as a meta-fallback during Stage 0.5
     * activation — only when operator signals are present and no domain
     * vertical wins. Currently set on `personal-agent` only.
     */
    meta_fallback?: boolean;
    /**
     * Aliases recognized by `findVerticalPack()`; useful during the slug-rename
     * window (e.g. `research` -> `customer-development`).
     */
    aliases?: string[];
}
export declare const VERTICAL_PACKS: readonly VerticalPack[];
/** Default vertical when no slug is provided. */
export declare const DEFAULT_VERTICAL_SLUG = "personal-agent";
/** Lookup a pack by slug or alias. Returns null when not found. */
export declare function findVerticalPack(slug: string | null | undefined): VerticalPack | null;
/** Lookup a pack by slug or alias; throws when not found. */
export declare function resolveVerticalPack(slug: string): VerticalPack;
/** All packs with a `schema_manifest_path` (i.e. installable schema overlays). */
export declare function listInstallablePacks(): VerticalPack[];
/** All packs with a `sandbox_manifest_path` (i.e. seedable in the hosted sandbox). */
export declare function listSeedablePacks(): VerticalPack[];
//# sourceMappingURL=registry.d.ts.map