import { ComponentType } from 'react'; /** * Icon component type used by the registry. * Intentionally wide so Lucide / Gravity icons and dual `@types/react` graphs assign cleanly. */ export type AthenaUiIconComponent = ComponentType & { className?: string; }>; export type AthenaUiIconSource = "gravity-ui" | "lucide"; export declare const athenaUiIconSourceLabels: { "gravity-ui": string; lucide: string; }; export type AthenaUiIconTone = "accent" | "current" | "danger" | "muted" | "success" | "warning"; export type AthenaUiIconButtonVariant = "danger" | "danger-soft" | "ghost" | "outline" | "primary" | "secondary" | "tertiary"; export type AthenaUiIconSize = "sm" | "md" | "lg"; export type AthenaUiIconCategory = "all" | "control" | "gravity-ui" | "lucide" | "navigation"; export declare const athenaUiIconToneClasses: { accent: string; current: string; danger: string; muted: string; success: string; warning: string; }; export declare const athenaUiIconSizeClasses: { lg: { controlIcon: string; icon: string; }; md: { controlIcon: string; icon: string; }; sm: { controlIcon: string; icon: string; }; }; export declare const athenaUiIconSizeOptions: readonly ["sm", "md", "lg"]; export declare const athenaUiIconToneOptions: readonly ["current", "muted", "accent", "success", "warning", "danger"]; export declare const athenaUiIconCategoryOptions: readonly [{ readonly id: "all"; readonly label: "All icons"; }, { readonly id: "navigation"; readonly label: "Navigation"; }, { readonly id: "control"; readonly label: "Controls"; }, { readonly id: "gravity-ui"; readonly label: "Gravity UI"; }, { readonly id: "lucide"; readonly label: "Lucide"; }]; export type AthenaUiNavigationIconKey = "agents" | "analytics" | "bell" | "billing" | "cloud" | "code" | "dashboard" | "database" | "docs" | "external" | "github" | "key" | "runtime" | "sandboxes" | "server" | "settings" | "terminal" | "tray"; export type AthenaUiControlIconKey = "activity" | "alert-circle" | "alert-triangle" | "archive" | "arrow-down-to-line" | "arrow-left" | "arrow-right" | "arrow-right-from-square" | "arrow-rotate-left" | "arrow-up" | "arrows-rotate-right" | "at" | "award" | "bar-chart-3" | "book" | "bot" | "calendar" | "chart-mixed" | "check" | "check-circle" | "check-circle-2" | "check-square" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "circle" | "circle-check" | "circle-dashed" | "circle-exclamation" | "circle-info" | "circle-play" | "circle-question" | "clock" | "comment" | "copy" | "download" | "edit" | "edit-3" | "ellipsis" | "ellipsis-vertical" | "envelope" | "external-link" | "eye" | "eye-off" | "eye-slash" | "file" | "file-text" | "file-zipper" | "flask" | "floppy-disk" | "funnel" | "grip-vertical" | "hammer" | "hash" | "heart" | "help-circle" | "history" | "image" | "info" | "external" | "layers" | "layout" | "layout-columns-3" | "layout-side-content-left" | "life-ring" | "link-2" | "list-check" | "loader-2" | "lock" | "mail" | "map-pin" | "maximize" | "message-square" | "minimize" | "monitor" | "more-horizontal" | "music" | "music-note" | "paintbrush" | "palette" | "paper-plane" | "paperclip" | "pause" | "pen-line" | "pencil" | "phone" | "picture" | "pie-chart" | "play" | "plus" | "qr-code" | "receipt" | "refresh-cw" | "ruler" | "save" | "search" | "send" | "share" | "share-2" | "shield" | "skip-back" | "skip-forward" | "sliders" | "square" | "square-check" | "square-exclamation" | "star" | "stopwatch" | "tags" | "target" | "thunderbolt" | "trash" | "trash-2" | "trending-up" | "triangle-exclamation" | "trophy" | "type" | "upload" | "user" | "user-check" | "users" | "video" | "volume-2" | "volume-x" | "x" | "x-circle" | "xmark" | "zap"; export type AthenaUiIconKey = AthenaUiNavigationIconKey | AthenaUiControlIconKey; export interface AthenaUiIconDefinition { defaultButtonVariant?: AthenaUiIconButtonVariant; defaultTone?: AthenaUiIconTone; Icon: AthenaUiIconComponent; label: string; source: AthenaUiIconSource; } export interface AthenaUiIconOption { id: AthenaUiIconKey; label: string; source: AthenaUiIconSource; sourceLabel: string; } /** * Unified Athena UI icon catalog. * Gravity covers the Gravity inventory; Lucide fills Lucide-only glyphs and * hugeicons inventory aliases (search, lock, refresh-cw, alert-circle, wifi → volume-x). */ export declare const athenaUiIconRegistry: Record; export declare const athenaUiNavigationIconKeys: Set; export declare const athenaUiNavigationIconOptions: AthenaUiIconOption[]; export declare const athenaUiControlIconOptions: AthenaUiIconOption[]; export declare const athenaUiIconOptions: AthenaUiIconOption[]; export declare function getAthenaUiIconDefinition(icon: AthenaUiIconKey): AthenaUiIconDefinition; export declare function getAthenaUiIconButtonVariant(icon: AthenaUiIconKey, fallback?: AthenaUiIconButtonVariant): AthenaUiIconButtonVariant; export declare function getAthenaUiIconCategory(icon: AthenaUiIconKey): Exclude; export declare function isAthenaUiNavigationIcon(icon: AthenaUiIconKey): icon is AthenaUiNavigationIconKey; export declare function isAthenaUiControlIcon(icon: AthenaUiIconKey): icon is AthenaUiControlIconKey; /** * Filter the icon catalog by category/source and free-text query. */ export declare function filterAthenaUiIconOptions(options: { category?: AthenaUiIconCategory; options?: readonly AthenaUiIconOption[]; query?: string; }): AthenaUiIconOption[]; /** * Merge extra definitions into a copy of the package registry (apps can extend). */ export declare function extendAthenaUiIconRegistry(extras: Partial>): Record; export declare function formatAthenaUiIconOptionLabel(value: string): string; export declare function getAthenaUiIconToneChipColor(tone: AthenaUiIconTone): "default" | "danger" | "warning" | "success" | "accent"; export declare function buildAthenaUiIconSnippet(icon: AthenaUiIconKey, size?: AthenaUiIconSize, tone?: AthenaUiIconTone): string; export declare function buildAthenaUiIconButtonSnippet(icon: AthenaUiIconKey, size?: AthenaUiIconSize): string;