import * as react_jsx_runtime from 'react/jsx-runtime'; import React__default from 'react'; interface ExpenseSubCategory { id: string; name: string; /** Absolute dollar amount */ amount: number; /** Percentage of parent category 0–100 */ pct: number; } interface ExpenseCategoryItem { id: string; name: string; /** Absolute dollar amount */ amount: number; /** Percentage of total budget 0–100 */ pct: number; /** Optional lucide-react icon element */ icon?: React__default.ReactNode; subCategories?: ExpenseSubCategory[]; } interface DashboardExpenseCategoriesProps { categories?: ExpenseCategoryItem[]; title?: string; subtitle?: string; /** * Optional explanatory note shown as an info-icon tooltip next to the subtitle * (e.g. the Income bucket's internal-transfer caveat). Omit to hide the icon. */ tooltipText?: string; /** * Message shown when there are no categories to display. Lets each bucket give * a specific empty state (e.g. "No income categories available"). */ emptyMessage?: string; isLoading?: boolean; className?: string; /** Currently active filter category ID (parent or sub-category) */ selectedCategoryId?: string | null; /** Called with the category ID to filter by, or null to clear */ onCategorySelect?: (id: string | null) => void; /** * Color scheme for progress bars and active states. * Use "secondary" for the Expense tab to distinguish from Income (primary). * Defaults to "primary". */ colorScheme?: "primary" | "secondary"; } declare function DashboardExpenseCategories({ categories, title, subtitle, tooltipText, emptyMessage, isLoading, className, selectedCategoryId, onCategorySelect, colorScheme, }: DashboardExpenseCategoriesProps): react_jsx_runtime.JSX.Element; export { DashboardExpenseCategories, type DashboardExpenseCategoriesProps, type ExpenseCategoryItem, type ExpenseSubCategory };