/** * LiteLLM budget-policy widget. Renders the enforcement hierarchy as a * numbered flow — key → personal → team → global — and, against each level * the signed-in user actually has a limit on, a live meter showing how close * they are to the cap. Intended for at-a-glance use on a homepage card next * to `LiteLLMHomeWidget`, but works anywhere. * * The policy text mirrors the LiteLLM proxy behaviour: * - every request is checked against stacked limits, in order; * - a key bound to a team is capped by the team budgets, not the owner's * personal budget; * - a limit with a `budget_duration` resets its spend when the window * closes; without one it never resets. * * Two knobs shrink it for use as a secondary column: * - `compact` drops the numbered rail and the policy footnote, showing * only the limits the user actually has as a tight tagged meter list; * - `collapsible` folds the body under a one-line summary header. * `action` renders a host-supplied node (e.g. a button) pinned to the card * bottom, always visible. */ import React from 'react'; export interface LiteLLMBudgetWidgetProps { /** Optional title override. Defaults to 'Budget Policy'. */ title?: string; /** Max key budgets to show, closest to the cap first. Defaults to 3. */ maxKeys?: number; /** * Drop the numbered key→personal→team→global rail and the policy * footnote; show only the limits the user actually has. Defaults to false. */ compact?: boolean; /** Fold the body under a clickable one-line summary header. Defaults to false. */ collapsible?: boolean; /** Initial expanded state when `collapsible`. Defaults to true. */ defaultExpanded?: boolean; /** * Node rendered at the card bottom, below a divider and outside the * collapsible region so it stays visible when collapsed — e.g. a * "create key" button. */ action?: React.ReactNode; } export declare const LiteLLMBudgetWidget: React.FC;