/**
 * Cost-tier metadata for CLI subcommands.
 *
 * Top-level `vibe --help` shows the four-tier table at the bottom; this
 * module attaches the tier *per subcommand* so users see the cost
 * directly on each `vibe <group> <sub> --help` page. The schema
 * generator also reads it back via the symbol stamped on each Command,
 * exposing the tier as `--describe` JSON for agents.
 *
 * The command modules apply the actual tier values near their command
 * registration so schema/help output stays close to the implementation.
 */
import type { Command } from "commander";
export type CostTier = "free" | "low" | "high" | "very-high";
export declare const TIER_DESCRIPTION: Record<CostTier, string>;
/**
 * Tier → chalk colorizer. Cool colors for safe tiers, warm for paid ones.
 * Used in `--help` footers (here) and in `vibe schema --list` human output.
 */
export declare const TIER_COLOR: Record<CostTier, (s: string) => string>;
/**
 * Conservative USD midpoint estimate per tier — used for budget caps
 * where we'd rather over-count than under-count and blow past the
 * ceiling. Pick the upper third of each tier's published range so a
 * `--budget-usd 1` agent session denies a `very-high` tool before it
 * fires (`$25 > $1`), but a string of `low` calls fits comfortably.
 *
 * Note: the agent's tool registry has a 5-tier vocabulary
 * (`free|low|medium|high|very-high`); the CLI catalog uses 4 (no
 * `medium`). When estimating from a tool's tier, fall back to `medium
 * ≈ $0.50` for the in-between case.
 */
export declare const TIER_USD_ESTIMATE: Record<CostTier, number>;
/**
 * Attach a cost tier to a Command — adds a footer to its `--help`
 * output and stamps a private symbol so the schema generator can emit
 * `cost: "<tier>"`.
 *
 * Returns the command for chaining.
 */
export declare function applyTier<T extends Command>(cmd: T, tier: CostTier): T;
/**
 * Read back the cost tier from a Command, if `applyTier` was called.
 * Returns `undefined` for commands that haven't opted in (e.g. utility
 * commands like `setup`, `doctor`, `init`).
 */
export declare function getCostTier(cmd: Command): CostTier | undefined;
/**
 * Bulk-apply tiers to a parent's already-registered subcommands by name.
 * Convenient for groups whose subcommands are registered via helper
 * functions (e.g. `registerHighlightsCommands(parent)` adds two
 * subcommands at once) — the caller doesn't have to track which slot
 * was filled most recently.
 *
 * Subcommands not present in `tiers` are left untiered. Names in
 * `tiers` that don't match any subcommand are silently ignored.
 */
export declare function applyTiers(parent: Command, tiers: Record<string, CostTier>): void;
